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. Nessuna nuova funzionalità viene aggiunta 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, vedere Introduzione con 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 al framework.
[in] EventType
Valore WDF_EVENT_TYPE tipizzato che identifica il tipo di evento. Nella versione corrente di UMDF, il driver deve impostare EventType su WdfEventBroadcast (1). WdfEventBroadcast indica che l'evento viene trasmesso. Le applicazioni possono sottoscrivere eventi di tipo WdfEventBroadcast. Per ricevere eventi di trasmissione, l'applicazione deve registrarsi per la notifica tramite la funzione Microsoft Win32 RegisterDeviceNotification . Gli eventi di tipo WdfEventBroadcast 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 superiore preciso è ( 0xFFFF - FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)).
Valore restituito
PostEvent restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
I dati dell'evento sono stati inviati correttamente al sistema operativo. |
|
Le dimensioni dei dati specificate dal parametro cbDataSize sono maggiori delle dimensioni massime consentite. |
|
Il parametro EventType non è impostato su WdfEventBroadcast (1). |
|
PostEvent non è riuscito a allocare memoria necessaria per il completamento. |
PostEvent potrebbe anche restituire altri valori HRESULT.
Commenti
Quando il driver chiama IWDFDevice::P ostEvent per notificare all'applicazione richiesta di un evento, UMDF invia l'evento al sistema operativo. Il sistema operativo invia l'evento all'applicazione di richiesta in un'operazione asincrona. Se il sistema operativo non restituisce inizialmente alcun errore, il driver non riceve alcun errore (S_OK). Tuttavia, in seguito, se il sistema operativo riceve un errore mentre tenta di recapitare l'evento (probabilmente a causa di una condizione di memoria ridotta), il sistema operativo non riesce a informare il driver sull'errore. A causa della natura asincrona di questa notifica evento, il recapito dell'evento all'applicazione di richiesta non è garantito. Se le informazioni sugli eventi si perdono fino all'applicazione richiesta, l'applicazione deve essere in grado di recuperare dall'evento perso.
Per informazioni sulla creazione di eventi del dispositivo, vedere Uso di interfacce dispositivo nei driver UMDF.
Requisiti
Requisito | Valore |
---|---|
Fine del supporto | Non disponibile in UMDF 2.0 e versioni successive. |
Piattaforma di destinazione | Desktop |
Versione UMDF minima | 1.5 |
Intestazione | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |