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
STATUS_INSUFFICIENT_RESOURCES
Não havia memória suficiente.
STATUS_UNSUCCESSFUL
Falha na tentativa da estrutura de se comunicar com o WMI.
STATUS_BUFFER_OVERFLOW
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)

Confira também

EvtWmiProviderFunctionControl

WdfWmiInstanceCreate

WdfWmiProviderIsEnabled