WMILIB_CONTEXT-Struktur (wmilib.h)

Die WMILIB_CONTEXT-Struktur stellt Registrierungsinformationen für die Daten- und Ereignisblöcke eines Treibers bereit und definiert Einstiegspunkte für die Rückrufroutinen der WMI-Bibliothek des Treibers.

Syntax

typedef struct _WMILIB_CONTEXT {
  ULONG                 GuidCount;
  PWMIGUIDREGINFO       GuidList;
  PWMI_QUERY_REGINFO    QueryWmiRegInfo;
  PWMI_QUERY_DATABLOCK  QueryWmiDataBlock;
  PWMI_SET_DATABLOCK    SetWmiDataBlock;
  PWMI_SET_DATAITEM     SetWmiDataItem;
  PWMI_EXECUTE_METHOD   ExecuteWmiMethod;
  PWMI_FUNCTION_CONTROL WmiFunctionControl;
} WMILIB_CONTEXT, *PWMILIB_CONTEXT;

Member

GuidCount

Gibt die Anzahl der vom Treiber registrierten Blöcke an.

GuidList

Zeiger auf ein Array von GuidCountWMIGUIDREGINFO-Strukturen , die Registrierungsinformationen für jeden Block enthalten.

QueryWmiRegInfo

Zeiger auf die DpWmiQueryReginfo-Routine des Treibers, die ein erforderlicher Einstiegspunkt für Treiber ist, die WMI-Bibliotheksunterstützungsroutinen aufrufen.

QueryWmiDataBlock

Zeiger auf die DpWmiQueryDataBlock-Routine des Treibers, die ein erforderlicher Einstiegspunkt für Treiber ist, die WMI-Bibliotheksunterstützungsroutinen aufrufen.

SetWmiDataBlock

Zeiger auf die DpWmiSetDataBlock-Routine des Treibers, die ein optionaler Einstiegspunkt für Treiber ist, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss er diesen Member auf NULL festlegen. In diesem Fall gibt WMI als Antwort auf eine IRP_MN_CHANGE_SINGLE_INSTANCE Anforderung STATUS_WMI_READ_ONLY an den Aufrufer zurück.

SetWmiDataItem

Zeiger auf die DpWmiSetDataItem-Routine des Treibers, die ein optionaler Einstiegspunkt für Treiber ist, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss er diesen Member auf NULL festlegen. In diesem Fall gibt WMI als Antwort auf IRP_MN_CHANGE_SINGLE_ITEM Anforderung STATUS_WMI_READ_ONLY an den Aufrufer zurück.

ExecuteWmiMethod

Zeiger auf die DpWmiExecuteMethod-Routine des Treibers, die ein optionaler Einstiegspunkt für Treiber ist, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss er diesen Member auf NULL festlegen. In diesem Fall gibt WMI als Antwort auf eine IRP_MN_EXECUTE_METHOD Anforderung STATUS_INVALID_DEVICE_REQUEST an den Aufrufer zurück.

WmiFunctionControl

Zeiger auf die DpWmiFunctionControl-Routine des Treibers, die ein optionaler Einstiegspunkt für Treiber ist, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss er diesen Member auf NULL festlegen. In diesem Fall gibt WMI als Antwort auf eine IRP_MN_ENABLE_XXX- oder IRP_MN_DISABLE_XXX-Anforderung STATUS_SUCCESS an den Aufrufer zurück.

Hinweise

Ein Treiber, der WMI-IRPs durch Aufrufen von WMI-Bibliotheksunterstützungsroutinen verarbeitet, speichert eine initialisierte WMILIB_CONTEXT-Struktur (oder einen Zeiger auf eine solche Struktur) in seiner Geräteerweiterung. Ein Treiber kann dieselbe WMILIB_CONTEXT-Struktur für mehrere Geräteobjekte verwenden, wenn jedes Geräteobjekt denselben Satz von Datenblöcken bereitstellt.

Wenn der Treiber eine IRP_MJ_SYSTEM_CONTROL-Anforderung empfängt, ruft er WmiSystemControl mit einem Zeiger auf seine WMILIB_CONTEXT-Struktur , einem Zeiger auf sein Geräteobjekt und einem Zeiger auf das IRP auf. WmiSystemControl bestimmt, ob der IRP eine WMI-Anforderung enthält, und verarbeitet die Anforderung, indem die entsprechende DpWmiXxx-Routine des Treibers aufgerufen wird.

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

Anforderungen

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

Weitere Informationen

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl