estrutura WMILIB_CONTEXT (wmilib.h)

A estrutura WMILIB_CONTEXT fornece informações de registro para blocos de dados e blocos de eventos de um driver e define pontos de entrada para as rotinas de retorno de chamada da biblioteca WMI do driver.

Sintaxe

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;

Membros

GuidCount

Especifica o número de blocos registrados pelo driver.

GuidList

Ponteiro para uma matriz de estruturas WMIGUIDREGINFOguidCount que contêm informações de registro para cada bloco.

QueryWmiRegInfo

Ponteiro para a rotina DpWmiQueryReginfo do driver, que é um ponto de entrada necessário para drivers que chamam rotinas de suporte da biblioteca WMI.

QueryWmiDataBlock

Ponteiro para a rotina DpWmiQueryDataBlock do driver, que é um ponto de entrada necessário para drivers que chamam rotinas de suporte da biblioteca WMI.

SetWmiDataBlock

Ponteiro para a rotina DpWmiSetDataBlock do driver, que é um ponto de entrada opcional para drivers que chamam rotinas de suporte da biblioteca WMI. Se o driver não implementar essa rotina, ele deverá definir esse membro como NULL. Nesse caso, o WMI retorna STATUS_WMI_READ_ONLY ao chamador em resposta a qualquer solicitação de IRP_MN_CHANGE_SINGLE_INSTANCE .

SetWmiDataItem

Ponteiro para a rotina DpWmiSetDataItem do driver, que é um ponto de entrada opcional para drivers que chamam rotinas de suporte à biblioteca WMI. Se o driver não implementar essa rotina, ele deverá definir esse membro como NULL. Nesse caso, o WMI retorna STATUS_WMI_READ_ONLY ao chamador em resposta a qualquer solicitação de IRP_MN_CHANGE_SINGLE_ITEM .

ExecuteWmiMethod

Ponteiro para a rotina DpWmiExecuteMethod do driver, que é um ponto de entrada opcional para drivers que chamam rotinas de suporte da biblioteca WMI. Se o driver não implementar essa rotina, ele deverá definir esse membro como NULL. Nesse caso, o WMI retorna STATUS_INVALID_DEVICE_REQUEST ao chamador em resposta a qualquer solicitação de IRP_MN_EXECUTE_METHOD .

WmiFunctionControl

Ponteiro para a rotina DpWmiFunctionControl do driver, que é um ponto de entrada opcional para drivers que chamam rotinas de suporte à biblioteca WMI. Se o driver não implementar essa rotina, ele deverá definir esse membro como NULL. Nesse caso, o WMI retorna STATUS_SUCCESS ao chamador em resposta a qualquer solicitação IRP_MN_ENABLE_XXX ou IRP_MN_DISABLE_XXX .

Comentários

Um driver que lida com IRPs WMI chamando rotinas de suporte da biblioteca WMI armazena uma estrutura de WMILIB_CONTEXT inicializada (ou um ponteiro para essa estrutura) em sua extensão de dispositivo. Um driver poderá usar a mesma estrutura WMILIB_CONTEXT para vários objetos de dispositivo se cada objeto de dispositivo fornecer o mesmo conjunto de blocos de dados.

Quando o driver recebe uma solicitação de IRP_MJ_SYSTEM_CONTROL , ele chama WmiSystemControl com um ponteiro para sua estrutura de WMILIB_CONTEXT , um ponteiro para seu objeto de dispositivo e um ponteiro para o IRP. WmiSystemControl determina se o IRP contém uma solicitação WMI e, em caso afirmativo, lida com a solicitação chamando a rotina DpWmiXxx apropriada do driver.

A memória dessa estrutura pode ser alocada do pool paginado.

Requisitos

Requisito Valor
Cabeçalho wmilib.h (inclua Wmilib.h)

Confira também

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl