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 di 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 dell'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
Tentativo del framework di comunicare con WMI non riuscito.
STATUS_BUFFER_OVERFLOW
Il buffer dei dati dell'evento è troppo grande.
 

Questo metodo potrebbe anche restituire altri valori NTSTATUS .

Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.

Osservazioni

Il driver deve chiamare WdfWmiInstanceFireEvent solo se un client WMI è registrato per la notifica degli eventi. Il driver può determinare se deve chiamare WdfWmiInstanceFireEvent fornendo un EvtWmiProviderFunctionControl funzione di callback 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 necessarie sull'intestazione WMI.

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

Esempi

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
                                 );

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
versione minima di KMDF 1.0
intestazione wdfwmi.h (include Wdf.h)
libreria Wdf01000.sys (vedere Controllo delle versioni della libreria framework).
IRQL <= APC_LEVEL
regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedere anche

EvtWmiProviderFunctionControl

WdfWmiInstanceCreare

WdfWmiProviderIsEnabled