Compartilhar via


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 de GuidCount WMIGUIDREGINFO que contêm informações de registro para cada bloco.

QueryWmiRegInfo

Ponteiro para a rotina de 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 de 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 de DpWmiSetDataBlock 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_INSTANCE.

SetWmiDataItem

Ponteiro para a rotina de 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 IRP_MN_CHANGE_SINGLE_ITEM.

ExecuteWmiMethod

Ponteiro para a rotina de DpWmiExecuteMethod 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_INVALID_DEVICE_REQUEST ao chamador em resposta a qualquer solicitação de IRP_MN_EXECUTE_METHOD.

WmiFunctionControl

Ponteiro para a rotina de DpWmiFunctionControl 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_SUCCESS ao chamador em resposta a qualquer IRP_MN_ENABLE_ XXX ou IRP_MN_DISABLE_solicitação de XXX.

Observações

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 pode 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 IRP_MJ_SYSTEM_CONTROL, ele chama WmiSystemControl com um ponteiro para sua estrutura WMILIB_CONTEXT, um ponteiro para o objeto do dispositivo e um ponteiro para o IRP. WmiSystemControl determina se o IRP contém uma solicitação WMI e, em caso afirmativo, manipula a solicitação chamando a rotina de DpWmiXxx apropriada do driver.

A memória dessa estrutura pode ser alocada do pool de páginas.

Requisitos

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

Consulte também

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl