Condividi tramite


Metodo IWDFDevice::P ostEvent (wudfddi.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedi Introduzione a UMDF.]

Il metodo PostEvent notifica in modo asincrono alle applicazioni in attesa dell'evento specificato da un driver.

Sintassi

HRESULT PostEvent(
  [in] REFGUID        EventGuid,
  [in] WDF_EVENT_TYPE EventType,
  [in] BYTE           *pbData,
  [in] DWORD          cbDataSize
);

Parametri

[in] EventGuid

GUID per l'evento. Il GUID è determinato dall'applicazione e dal driver ed è opaco per il framework.

[in] EventType

Valore WDF_EVENT_TYPEtipizzato che identifica il tipo di evento. Nella versione corrente di UMDF, il driver deve impostare EventType su WdfEventBroadcast (1). WdfEventBroadcast indica che l'evento è trasmesso. Le applicazioni possono sottoscrivere eventi WdfEventBroadcast-type. Per ricevere eventi di trasmissione, l'applicazione deve registrarsi per la notifica tramite la funzione RegisterDeviceNotification di Microsoft Win32. eventi WdfEventBroadcast-type vengono esposti come eventi di tipo DBT_CUSTOMEVENT alle applicazioni.

[in] pbData

Puntatore a un buffer che contiene dati associati all'evento. NULL è un valore valido.

[in] cbDataSize

Dimensioni, in byte, di dati a cui pbData punta. Zero è un valore di dimensione valido se pbData è impostato su NULL.

Le dimensioni massime dei dati dell'evento sono leggermente inferiori a MAXUSHORT (64 KB). Il limite massimo preciso è (0xFFFF - FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)).

Valore restituito

PostEvent restituisce uno dei valori seguenti:

Codice restituito Descrizione
S_OK
I dati dell'evento sono stati inviati correttamente al sistema operativo.
HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY)
Le dimensioni dei dati specificate dal parametro cbDataSize sono maggiori delle dimensioni massime consentite.
E_INVALIDARG
Il parametro EventType non è impostato su WdfEventBroadcast (1).
E_OUTOFMEMORY

il PostEvent non è riuscito ad allocare memoria necessaria per il completamento.

 

PostEvent potrebbe restituire anche altri valori HRESULT.

Osservazioni

Quando il driver chiama IWDFDevice::P ostEvent per notificare all'applicazione richiedente un evento, UMDF invia l'evento al sistema operativo. Il sistema operativo invia l'evento all'applicazione richiedente in un'operazione asincrona. Se inizialmente il sistema operativo non restituisce alcun errore, il driver non riceve alcun errore (S_OK). Tuttavia, in un secondo momento, se il sistema operativo riceve un errore mentre tenta di recapitare l'evento (probabilmente a causa di una condizione di memoria insufficiente), il sistema operativo non è in grado di informare il driver sull'errore. A causa della natura asincrona di questa notifica di evento, il recapito dell'evento all'applicazione richiedente non è garantito. Se le informazioni sugli eventi vengono perse fino all'applicazione richiedente, l'applicazione deve essere in grado di eseguire il ripristino dall'evento perso.

Per informazioni sulla creazione di eventi del dispositivo, vedere Using Device Interfaces in UMDF Drivers.For information about creating device events, see Using Device Interfaces in UMDF Drivers.

Fabbisogno

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
piattaforma di destinazione Desktop
versione minima di UMDF 1.5
intestazione wudfddi.h (include Wudfddi.h)
dll WUDFx.dll

Vedere anche

FIELD_OFFSET

IWDFDevice

TARGET_DEVICE_CUSTOM_NOTIFICATION

WdfDevicePostEvent