Freigeben über


WMIREGGUIDW-Struktur (wmistr.h)

Die WMIREGGUID-Struktur enthält neue oder aktualisierte Registrierungsinformationen für einen Daten- 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;

Member

Guid

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

Flags

Gibt die Merkmale des zu registrierenden oder zu aktualisierenden Blocks an.

Wenn ein Block mit statischen instance Namen registriert wird, legt ein Treiber eines der folgenden Flags fest:

WMIREG_FLAG_INSTANCE_LIST

Gibt an, dass der Treiber statische instance Namen für diesen Block in einer statischen Liste nach der WMIREGINFO-Struktur im Puffer unter IrpStack-Parameters.WMI.Buffer> bereitstellt. Wenn dieses Flag festgelegt ist, ist InstanceNameList der Offset in Bytes vom Anfang der WMIREGINFO-Struktur , die diese WMIREGGUID enthält, auf eine zusammenhängende Reihe von InstanceCount-gezählten Unicode-Zeichenfolgen.

WMIREG_FLAG_INSTANCE_BASENAME

Fordert WMI an, statische instance Namen aus einem Basisnamen zu generieren, der vom Treiber nach der WMIREGINFO-Struktur im Puffer unter IrpStack-Parameters.WMI.Buffer> bereitgestellt wird. WMI generiert instance Namen durch Anfügen eines Zählers an den Basisnamen. Wenn dieses Flag festgelegt ist, ist BaseNameOffset der Offset in Bytes 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 instance Namen vom Gerät instance-ID für das PDO zu generieren. Wenn dieses Flag festgelegt ist, verweist InstanceInfo auf die PDO, die an die AddDevice-Routine des Treibers übergeben wurde. 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.

Wenn ein Block mit dynamischen instance Namen registriert wird, müssen WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_BASENAME und WMIREG_FLAG_INSTANCE_PDO klar sein.

Ein Treiber kann auch eines 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 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).

WMIREG_FLAG_TRACED_GUID

Der Block kann nur in eine Protokolldatei geschrieben werden und kann nur über Benutzermodusroutinen zugegriffen werden, die in evntrace.h deklariert wurden. Nur NT-Kernelmodusdatenanbieter legen dieses Flag fest.

WMIREG_FLAG_TRACE_CONTROL_GUID

Die GUID fungiert als Steuerelement-GUID zum Aktivieren oder Deaktivieren der ihr zugeordneten Ablaufverfolgungs-GUIDs in der MOF-Datei. Dieses Flag ist nur gültig, wenn auch WMIREG_FLAG_TRACED_GUID festgelegt ist. Nur NT-Kernelmodusdatenanbieter legen dieses Flag fest.

InstanceCount

Gibt die Anzahl der statischen instance Namen an, die für diesen Block definiert werden sollen. Wenn der Block mit dynamischen instance Namen registriert wird, ignoriert WMI InstanceCount.

DUMMYUNIONNAME

DUMMYUNIONNAME.InstanceNameList

Gibt den Offset in Bytes vom Anfang der WMIREGINFO-Struktur , die diesen WMIREGGUID enthält, zu einer zusammenhängenden Reihe von InstanceCount-gezählten Unicode-Zeichenfolgen an. Dieser Member ist nur gültig, wenn WMIREG_FLAG_INSTANCE_LIST in Flags festgelegt ist. Wenn der Block mit dynamischen instance Namen registriert wird, ignoriert WMI InstanceNameList.

DUMMYUNIONNAME.BaseNameOffset

Gibt den Offset in Bytes vom Anfang der WMIREGINFO-Struktur an, die diese WMIREGGUID enthält, bis zu einer einzelnen gezählten Unicode-Zeichenfolge, die als Basis für WMI zum Generieren statischer instance Namen dient. Dieser Member ist nur gültig, wenn WMIREG_FLAG_INSTANCE_BASENAME in Flags festgelegt ist. Wenn der Block mit dynamischen instance Namen 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 das Gerät instance Pfad dieses PDO als Basis, um statische instance Namen zu generieren. Dieser Member ist nur gültig, wenn WMIREG_FLAG_INSTANCE_PDO in Flags festgelegt ist. Wenn der Block mit dynamischen instance Namen registriert wird, ignoriert WMI Pdo.

DUMMYUNIONNAME.InstanceInfo

Reserviert für die Verwendung durch WMI.

Hinweise

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 seiner Blöcke. Der Treiber übergibt ein Array solcher Strukturen am WmiRegGuid-Member einer WMIREGINFO-Struktur, das der Treiber in den Puffer unter IrpStack-Parameters.WMI.Buffer> schreibt.

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

Anforderungen

Anforderung Wert
Header wmistr.h (einschließlich Wmistr.h)

Weitere Informationen

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMIREGINFO