Freigeben über


WMIREGGUIDW-Struktur (wmistr.h)

Die WMIREGGUID Struktur enthält neue oder aktualisierte Registrierungsinformationen für einen Datenblock oder Ereignisblock.

Syntax

typedef struct {
  GUID  Guid;
  ULONG Flags;
  ULONG InstanceCount;
  union {
    ULONG     InstanceNameList;
    ULONG     BaseNameOffset;
    ULONG_PTR Pdo;
    ULONG_PTR InstanceInfo;
  } DUMMYUNIONNAME;
} WMIREGGUIDW, *PWMIREGGUIDW;

Angehörige

Guid

Gibt die GUID an, die den zu registrierenden oder aktualisierenden Block darstellt.

Flags

Gibt Die Merkmale des zu registrierenden oder aktualisierenden Blocks an.

Wenn ein Block mit statischen Instanznamen registriert wird, legt ein Treiber eins der folgenden Flags fest:

WMIREG_FLAG_INSTANCE_LIST

Gibt an, dass der Treiber statische Instanznamen für diesen Block in einer statischen Liste nach der WMIREGINFO- Struktur im Puffer an IrpStack->Parameters.WMI.Bufferbereitstellt. Wenn dieses Flag festgelegt ist, ist InstanceNameList- der Offset in Byte vom Anfang der WMIREGINFO- Struktur, die diese WMIREGGUID- enthält, einer zusammenhängenden Reihe von InstanceCount gezählten Unicode-Zeichenfolgen.

WMIREG_FLAG_INSTANCE_BASENAME

Fordert WMI an, statische Instanznamen aus einem Basisnamen zu generieren, der vom Treiber nach der WMIREGINFO Struktur im Puffer bei IrpStack->Parameters.WMI.Bufferangegeben wird. WMI generiert Instanznamen durch Anfügen eines Zählers an den Basisnamen. Wenn dieses Flag festgelegt ist, ist BaseNameOffset- der Offset in Byte vom Anfang der WMIREGINFO--Struktur, die diese WMIREGGUID- enthält, auf eine einzelne gezählte Unicode-Zeichenfolge, die als Basisname dient.

WMIREG_FLAG_INSTANCE_PDO

Fordert WMI an, statische Instanznamen aus der Geräteinstanz-ID für die PDO zu generieren. Wenn dieses Flag festgelegt ist, verweist InstanceInfo auf den PDO, der an die AddDevice- Routine des Treibers übergeben wird. WMI generiert Instanznamen aus dem Geräteinstanzpfad des PDO. Die Verwendung des Geräteinstanzpfads als Basis für statische Instanzennamen ist effizient, da solche Namen garantiert eindeutig sind. WMI stellt automatisch einen "anzeige"-Namen für die Instanz als Element in einem Datenblock zur Auswahl, der von Datenkunden abgefragt werden kann.

Wenn ein Block mit namen dynamischer Instanz registriert wird, müssen WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_BASENAME und WMIREG_FLAG_INSTANCE_PDO klar sein.

Ein Treiber kann auch eine oder mehrere der folgenden Flags 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 Kennzeichen deaktiviert 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 Datenanwender 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 Datenanwender sie explizit durch Öffnen des Blocks anfordert.

WMIREG_FLAG_REMOVE_GUID

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

WMIREG_FLAG_TRACED_GUID

Der Block kann nur in eine Protokolldatei geschrieben werden und kann nur über in evntrace.h deklarierte Benutzermodusroutinen aufgerufen werden. Nur NT-Kernelmodus-Datenanbieter legen dieses Flag fest.

WMIREG_FLAG_TRACE_CONTROL_GUID

Die GUID fungiert als Steuerelement-GUID zum Aktivieren oder Deaktivieren der ablaufverfolgungs-GUIDs, die dieser in der MOF-Datei zugeordnet sind. Dieses Kennzeichen ist nur gültig, wenn WMIREG_FLAG_TRACED_GUID ebenfalls festgelegt ist. Nur NT-Kernelmodus-Datenanbieter legen dieses Flag fest.

InstanceCount

Gibt die Anzahl der namen statischer Instanzen an, die für diesen Block definiert werden sollen. Wenn der Block mit Namen dynamischer Instanzen registriert wird, ignoriert WMI InstanceCount-.

DUMMYUNIONNAME

DUMMYUNIONNAME.InstanceNameList

Gibt den Offset in Bytes vom Anfang der WMIREGINFO--Struktur an, die diese WMIREGGUID- einer zusammenhängenden Reihe von InstanceCount- gezählten Unicode-Zeichenfolgen enthält. Dieses Element ist nur gültig, wenn WMIREG_FLAG_INSTANCE_LIST in Flagsfestgelegt ist. Wenn der Block mit Namen dynamischer Instanzen registriert wird, ignoriert WMI InstanceNameList-.

DUMMYUNIONNAME.BaseNameOffset

Gibt den Offset in Byte vom Anfang der WMIREGINFO- Struktur an, die diese WMIREGGUID- zu einer einzelnen gezählten Unicode-Zeichenfolge enthält, die als Basis für WMI dient, um statische Instanznamen zu generieren. Dieses Element ist nur gültig, wenn WMIREG_FLAG_INSTANCE_BASENAME in Flagsfestgelegt ist. Wenn der Block mit namen dynamischer Instanz registriert wird, ignoriert WMI BaseNameOffset-.

DUMMYUNIONNAME.Pdo

Zeiger auf das physische Geräteobjekt (PDO), das an die AddDevice-Routine des Treibers übergeben wird. WMI verwendet den Geräteinstanzpfad dieses PDO als Basis, aus der statische Instanznamen generiert werden. Dieses Element ist nur gültig, wenn WMIREG_FLAG_INSTANCE_PDO in Flagsfestgelegt ist. Wenn der Block mit namen dynamischer Instanz registriert wird, ignoriert WMI Pdo-.

DUMMYUNIONNAME.InstanceInfo

Reserviert für die Verwendung durch WMI.

Bemerkungen

Ein Treiber erstellt eine oder mehrere WMIREGGUID- Strukturen als Reaktion auf eine IRP_MN_REGINFO oder IRP_MN_REGINFO_EX Anforderung zum Registrieren oder Aktualisieren der Blöcke. Der Treiber übergibt ein Array solcher Strukturen an der WmiRegGuid Member einer WMIREGINFO Struktur, die der Treiber in den Puffer bei IrpStack->Parameters.WMI.Bufferschreibt.

Ein Treiber kann einen Block mit statischen oder dynamischen Instanznamen registrieren oder aktualisieren. Statische Instanznamen bieten eine optimale Leistung; Dynamische Instanznamen werden jedoch für Datenblöcke bevorzugt, wenn sich die Anzahl der Instanzen oder Instanznamen häufig ändern. Weitere Informationen zu Instanznamen finden Sie unter Definieren von WMI-Instanznamen.

Anforderungen

Anforderung Wert
Header- wmistr.h (include Wmistr.h)

Siehe auch

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMIREGINFO-