Condividi tramite


Funzione WdfWmiInstanceFireEvent (wdfwmi.h)

[Si applica solo a KMDF]

Il metodo WdfWmiInstanceFireEvent invia un evento WMI ai client WMI registrati per ricevere la notifica degli eventi.

Sintassi

NTSTATUS WdfWmiInstanceFireEvent(
  [in]           WDFWMIINSTANCE WmiInstance,
  [in, optional] ULONG          EventDataSize,
  [in, optional] PVOID          EventData
);

Parametri

[in] WmiInstance

Handle a un oggetto istanza WMI ottenuto dal driver da una chiamata precedente a WdfWmiInstanceCreate.

[in, optional] EventDataSize

Dimensioni, in byte, dei dati dell'evento a cui EventData punta.

[in, optional] EventData

Puntatore ai dati dell'evento o NULL se non sono presenti dati di evento.

Valore restituito

WdfWmiInstanceFireEvent restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES
Memoria insufficiente.
STATUS_UNSUCCESSFUL
Il tentativo del framework di comunicare con WMI non è riuscito.
STATUS_BUFFER_OVERFLOW
Il buffer dei dati dell'evento è troppo grande.
 

Questo metodo potrebbe restituire anche altri valori NTSTATUS.

Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.

Commenti

Il driver deve chiamare WdfWmiInstanceFireEvent solo se un client WMI ha registrato per la notifica degli eventi. Il driver può determinare se deve chiamare WdfWmiInstanceFireEvent fornendo una funzione di callback EvtWmiProviderFunctionControl o chiamando WdfWmiProviderIsEnabled.

Il driver deve inserire i dati specifici dell'evento, se presenti, nel buffer a cui punta il parametro EventData . Il framework aggiunge tutte le informazioni di intestazione WMI necessarie.

Per altre informazioni sul metodo WdfWmiInstanceFireEvent , vedere Supporto di WMI in Framework-Based Driver.

Esempio

Nell'esempio di codice seguente viene inviato un evento WMI ai client WMI.

MY_WMI_EVENT_DATA eventData;
NTSTATUS  status;

status = WdfWmiInstanceFireEvent(
                                 WmiInstance,
                                 sizeof(eventData),
                                 (PVOID)&eventData
                                 );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Intestazione wdfwmi.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Framework Library Versioning).
IRQL <= APC_LEVEL
Regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedi anche

EvtWmiProviderFunctionControl

WdfWmiInstanceCreate

WdfWmiProviderIsEnabled