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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de