Função WdfWmiInstanceFireEvent (wdfwmi.h)
[Aplica-se somente ao KMDF]
O método WdfWmiInstanceFireEvent envia um evento WMI para clientes WMI que se registraram para receber notificação de evento.
Sintaxe
NTSTATUS WdfWmiInstanceFireEvent(
[in] WDFWMIINSTANCE WmiInstance,
[in, optional] ULONG EventDataSize,
[in, optional] PVOID EventData
);
Parâmetros
[in] WmiInstance
Um identificador para um objeto de instância WMI que o driver obteve de uma chamada anterior para WdfWmiInstanceCreate.
[in, optional] EventDataSize
O tamanho, em bytes, dos dados de evento para os quais EventData aponta.
[in, optional] EventData
Um ponteiro para os dados do evento ou NULL se não houver dados de evento.
Retornar valor
WdfWmiInstanceFireEvent retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
Não havia memória suficiente. |
|
Falha na tentativa da estrutura de se comunicar com o WMI. |
|
O buffer de dados de evento era muito grande. |
Esse método também pode retornar outros valores NTSTATUS.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
Seu driver deve chamar WdfWmiInstanceFireEvent somente se um cliente WMI tiver se registrado para notificação de evento. O driver pode determinar se deve chamar WdfWmiInstanceFireEvent fornecendo uma função de retorno de chamada EvtWmiProviderFunctionControl ou chamando WdfWmiProviderIsEnabled.
O driver deve colocar seus dados específicos do evento, se houver, no buffer para o qual o parâmetro EventData aponta. A estrutura adiciona todas as informações de cabeçalho WMI necessárias.
Para obter mais informações sobre o método WdfWmiInstanceFireEvent , consulte Supporting WMI in Framework-Based Drivers.
Exemplos
O exemplo de código a seguir envia um evento WMI para clientes WMI.
MY_WMI_EVENT_DATA eventData;
NTSTATUS status;
status = WdfWmiInstanceFireEvent(
WmiInstance,
sizeof(eventData),
(PVOID)&eventData
);
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Cabeçalho | wdfwmi.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.) |
IRQL | <= APC_LEVEL |
Regras de conformidade de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |