IWDFDevice::P ostEvent 方法 (wudfddi.h)
[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 未將新功能新增至 UMDF 1,且較新版本的 #D30745EE1E10C4C62B93C4259718CCFD9 上不支援 UMDF 1。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用 UMDF 使用者入門。]
PostEvent 方法會以異步方式通知正在從驅動程式等候指定事件的應用程式。
語法
HRESULT PostEvent(
[in] REFGUID EventGuid,
[in] WDF_EVENT_TYPE EventType,
[in] BYTE *pbData,
[in] DWORD cbDataSize
);
參數
[in] EventGuid
事件的 GUID。 GUID 是由應用程式和驅動程序決定,而且與架構不透明。
[in] EventType
識別事件類型的 WDF_EVENT_TYPE型別值。 在目前的UMDF版本中,驅動程式必須將 EventType 設定為 WdfEventBroadcast (1) 。 WdfEventBroadcast 表示事件是廣播的。 應用程式可以訂閱 WdfEventBroadcast-type 事件。 若要接收廣播事件,應用程式必須透過 Microsoft Win32 RegisterDeviceNotification 函式註冊通知。 WdfEventBroadcast-type 事件會公開為應用程式DBT_CUSTOMEVENT類型事件。
[in] pbData
緩衝區的指標,其中包含與事件相關聯的數據。 NULL 是有效的值。
[in] cbDataSize
pbData 指向的數據大小,以位元組為單位。 如果 pbData 設定為 NULL,則零是有效的大小值。
事件數據的大小上限稍微小於 MAXUSHORT (64 KB) 。 精確的上限為 (0xFFFF - FIELD_OFFSET (TARGET_DEVICE_CUSTOM_NOTIFICATION、CustomDataBuffer) ) 。
傳回值
PostEvent 會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
|
事件數據已成功傳送至作業系統。 |
|
cbDataSize 參數指定的數據大小大於允許的大小上限。 |
|
EventType 參數未設定為 WdfEventBroadcast (1) 。 |
|
PostEvent 無法配置完成所需的記憶體。 |
PostEvent 也可能傳回其他 HRESULT 值。
備註
當驅動程式呼叫 IWDFDevice::P ostEvent 以通知要求的應用程式有關事件時,UMDF 會將事件傳送至操作系統。 操作系統會將 事件傳送至異步操作中的要求應用程式。 如果操作系統一開始沒有傳回任何錯誤,驅動程式就會收到任何錯誤 (S_OK) 。 不過,之後,如果操作系統在嘗試傳遞事件時收到錯誤 (,可能是因為記憶體不足的情況而) ,操作系統就無法通知驅動程序錯誤。 由於此事件通知的異步本質,因此不保證將事件傳遞至要求的應用程式。 如果事件資訊在要求應用程式為止遺失,應用程式應該能夠從遺失的事件中復原。
如需建立裝置事件的相關信息,請參閱 在 UMDF 驅動程式中使用裝置介面。
規格需求
需求 | 值 |
---|---|
終止支援 | UMDF 2.0 和更新版本中無法使用。 |
目標平台 | 桌面 |
最低UMDF版本 | 1.5 |
標頭 | wudfddi.h (包括 Wudfddi.h) |
Dll | WUDFx.dll |