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) |