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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Feedback senden und anzeigen für