WMIGUIDREGINFO-Struktur (wmilib.h)

Die WMIGUIDREGINFO-Struktur enthält Registrierungsinformationen für einen bestimmten Daten- oder Ereignisblock, der von einem Treiber verfügbar gemacht wird, der die Unterstützungsroutinen der WMI-Bibliothek verwendet.

Syntax

typedef struct _WMIGUIDREGINFO {
  LPCGUID Guid;
  ULONG   InstanceCount;
  ULONG   Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;

Member

Guid

Zeiger auf die GUID, die den Block identifiziert. Der Arbeitsspeicher, der die GUID enthält, kann ausgelagert werden, es sei denn, er wird auch zum Aufrufen von WmiFireEvent verwendet.

InstanceCount

Gibt die Anzahl der für den Block definierten Instanzen an.

Flags

Flagbits, die Merkmale des Blocks angeben. Diese Flagbits werden in der Headerdatei Wmistr.h definiert. WMI-ORs der Flags-Parameterwert mit den vom Treiber im RegFlags-Parameter seiner DpWmiQueryReginfo-Routine festgelegten Flagbits, die für alle vom Treiber registrierten Daten- und Ereignisblöcke gelten. Flags ergänzen daher die Standardeinstellungen des Treibers für einen bestimmten Block.

Ein Treiber kann das folgende Flagbit in Flags festlegen:

WMIREG_FLAG_INSTANCE_PDO

Fordert WMI an, statische instance Namen vom Gerät instance-ID für das PDO zu generieren. Wenn dieses Flag festgelegt ist, verweist der Pdo-Parameter der DpWmiQueryReginfo-Routine des Treibers auf das PDO, das an die AddDevice-Routine des Treibers übergeben wird. WMI generiert instance Namen vom Gerät instance Pfad des PDO. Die Verwendung des Geräte-instance-Pfads als Basis für statische instance-Namen ist effizient, da solche Namen garantiert eindeutig sind. WMI stellt automatisch einen "Anzeigenamen" für die instance als Element in einem Datenblock bereit, das von Datenverbrauchern abgefragt werden kann.

Ein Treiber kann auch eines oder mehrere der folgenden Flagbits festlegen:

WMIREG_FLAG_EVENT_ONLY_GUID

Der Block kann nur als Ereignis aktiviert oder deaktiviert werden und kann nicht abgefragt oder festgelegt werden. Wenn dieses Flag eindeutig ist, kann der Block auch abgefragt oder festgelegt werden.

WMIREG_FLAG_EXPENSIVE

Fordert WMI an, eine IRP_MN_ENABLE_COLLECTION-Anforderung zu senden, wenn ein Daten consumer den Datenblock zum ersten Mal öffnet, und eine IRP_MN_DISABLE_COLLECTION Anforderung, wenn der letzte Datenverbraucher den Datenblock schließt. Dies wird empfohlen, wenn sich das Sammeln solcher Daten auf die Leistung auswirkt, da ein Treiber die Daten erst sammeln muss, wenn ein Datenconsumer sie explizit anfordert, indem er den Block öffnet.

WMIREG_FLAG_REMOVE_GUID

Fordert WMI auf, die Unterstützung für diesen Block zu entfernen. Dieses Flag ist nur als Reaktion auf eine Anforderung zum Aktualisieren von Registrierungsinformationen gültig (IRP_MN_REGINFO oder IRP_MN_REGINFO_EX , wenn Parameters.WMI.DataPath auf WMIUPDATE festgelegt ist).

Hinweise

Ein Treiber, der WMI IRPs durch Aufrufen von WMI-Bibliotheksunterstützungsroutinen verarbeitet, erstellt ein Array von WMIGUIDREGINFO-Strukturen , eines für jeden zu registrierenden Datenblock und Ereignisblock. Der Treiber legt das GuidList-Element seiner WMILIB_CONTEXT-Struktur so fest, dass er auf das erste WMIGUIDREGINFO in der Reihe verweist.

Arbeitsspeicher für diese Struktur kann aus einem ausgelagerten Pool zugewiesen werden.

Anforderungen

Anforderung Wert
Header wmilib.h (einschließen wmilib.h)

Weitere Informationen

DpWmiQueryReginfo

IRP_MN_DISABLE_COLLECTION

IRP_MN_ENABLE_COLLECTION

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMILIB_CONTEXT

WmiFireEvent