Condividi tramite


Funzione WmiFireEvent (wmilib.h)

La routine WmiFireEvent invia un evento a WMI per il recapito ai consumer di dati che hanno richiesto la notifica dell'evento.

Sintassi

NTSTATUS WmiFireEvent(
  [in]           PDEVICE_OBJECT DeviceObject,
  [in]           LPCGUID        Guid,
  [in]           ULONG          InstanceIndex,
  [in]           ULONG          EventDataSize,
  [in, optional] PVOID          EventData
);

Parametri

[in] DeviceObject

Puntatore alla DEVICE_OBJECT del conducente.

[in] Guid

Puntatore al GUID che rappresenta il blocco eventi.

[in] InstanceIndex

Se il blocco di eventi ha più istanze, specifica l'indice dell'istanza.

[in] EventDataSize

Specifica il numero di byte di dati in EventData. Se non vengono generati dati per un evento, EventData deve essere zero.

[in, optional] EventData

Puntatore a un buffer non a pagina allocato driver contenente i dati generati dal driver per l'evento. Se non vengono generati dati per un evento, EventData deve essere NULL. WMI libera il buffer senza ulteriore intervento dal driver.

Valore restituito

WmiFireEvent propaga lo stato restituito da IoWmiWriteEvent oppure restituisce STATUS_INSUFFICIENT_RESOURCES se non è stato possibile allocare memoria per l'evento.

Commenti

Un driver chiama WmiFireEvent per inviare un evento a WMI per il recapito a tutti i consumer di dati che hanno richiesto la notifica dell'evento. Tutti i puntatori passati a WmiFireEvent devono puntare alla memoria nonpagable, ad esempio il pool non di pagine.

Il driver invia un evento solo se è stato abilitato in precedenza dalla routine DpWmiFunctionControl del driver, che WMI chiama per elaborare una richiesta di IRP_MN_ENABLE_EVENT .

Il driver scrive tutti i dati associati all'evento nel buffer in EventData. WMI riempie una struttura WNODE_SINGLE_INSTANCE con i dati e chiama IoWmiWriteEvent per recapitare l'evento.

Per altre informazioni sulla traccia degli eventi, vedere Traccia eventi WMI.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wmilib.h (includere Wmilib.h)
Libreria Wmilib.lib
IRQL <= DISPATCH_LEVEL

Vedi anche

DpWmiFunctionControl

IRP_MN_ENABLE_EVENTS

WmiSystemControl