WMILIB_CONTEXT Struktur (wmilib.h)
Die WMILIB_CONTEXT Struktur stellt Registrierungsinformationen für die Datenblöcke und Ereignisblöcke eines Treibers bereit und definiert Einstiegspunkte für die WMI-Bibliotheksrückrufroutinen 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;
Angehörige
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, bei der es sich um einen erforderlichen Einstiegspunkt für Treiber handelt, die WMI-Bibliotheksunterstützungsroutinen aufrufen.
SetWmiDataBlock
Zeiger auf die DpWmiSetDataBlock- Routine des Treibers, ein optionaler Einstiegspunkt für Treiber, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss dieses Element auf NULL-festgelegt werden. In diesem Fall gibt WMI STATUS_WMI_READ_ONLY als Reaktion auf eine beliebige IRP_MN_CHANGE_SINGLE_INSTANCE Anforderung an den Aufrufer zurück.
SetWmiDataItem
Zeiger auf die DpWmiSetDataItem Routine des Treibers, ein optionaler Einstiegspunkt für Treiber, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss dieses Element auf NULL-festgelegt werden. In diesem Fall gibt WMI STATUS_WMI_READ_ONLY als Reaktion auf eine beliebige IRP_MN_CHANGE_SINGLE_ITEM Anforderung an den Aufrufer zurück.
ExecuteWmiMethod
Zeiger auf die DpWmiExecuteMethod Routine des Treibers, ein optionaler Einstiegspunkt für Treiber, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss dieses Element auf NULL-festgelegt werden. In diesem Fall gibt WMI STATUS_INVALID_DEVICE_REQUEST als Reaktion auf eine beliebige IRP_MN_EXECUTE_METHOD Anforderung an den Aufrufer zurück.
WmiFunctionControl
Zeiger auf die DpWmiFunctionControl--Routine des Treibers, bei der es sich um einen optionalen Einstiegspunkt für Treiber handelt, die WMI-Bibliotheksunterstützungsroutinen aufrufen. Wenn der Treiber diese Routine nicht implementiert, muss dieses Element auf NULL-festgelegt werden. In diesem Fall gibt WMI STATUS_SUCCESS als Reaktion auf eine IRP_MN_ENABLE_XXX-- oder IRP_MN_DISABLE_XXX--Anforderung an den Aufrufer zurück.
Bemerkungen
Ein Treiber, der WMI-IRPs behandelt, indem WMI-Bibliotheksunterstützungsroutinen aufrufen, speichert eine initialisierte WMILIB_CONTEXT Struktur (oder ein Zeiger auf eine solche Struktur) in der Geräteerweiterung. Ein Treiber kann dieselbe WMILIB_CONTEXT Struktur für mehrere Geräteobjekte verwenden, wenn jedes Geräteobjekt dieselbe Gruppe 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, einen Zeiger auf das Geräteobjekt und einen Zeiger auf das IRP auf. WmiSystemControl bestimmt, ob das IRP eine WMI-Anforderung enthält, und verarbeitet die Anforderung, wenn dies der Richtige DpWmiXxx Routine des Treibers ist.
Speicher für diese Struktur kann aus dem ausgelagerten Pool zugewiesen werden.
Anforderungen
Anforderung | Wert |
---|---|
Header- | wmilib.h (einschließen Wmilib.h) |