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) |