WdfDevicePostEvent 函式 (wdfdevice.h)
[僅適用於 UMDF]
WdfDevicePostEvent 方法會以異步方式通知應用程式正在等候驅動程式中的指定事件。
語法
NTSTATUS WdfDevicePostEvent(
[in] WDFDEVICE Device,
[in] REFGUID EventGuid,
[in] WDF_EVENT_TYPE WdfEventType,
[in] BYTE *Data,
[in] ULONG DataSizeCb
);
參數
[in] Device
架構裝置物件的句柄。
[in] EventGuid
事件的 GUID。 GUID 是由應用程式和驅動程式所決定,而且與架構不透明。
[in] WdfEventType
識別事件類型的 WDF_EVENT_TYPE型別值。 在目前版本的 UMDF 中,驅動程式必須將 EventType 設定為 WdfEventBroadcast (1) 。 WdfEventBroadcast 表示事件正在廣播。 應用程式可以訂閱 WdfEventBroadcast-type 事件。 若要接收廣播事件,應用程式必須透過 Microsoft Win32 RegisterDeviceNotification 函式註冊通知。 WdfEventBroadcast-type 事件會公開為應用程式DBT_CUSTOMEVENT類型事件。
[in] Data
緩衝區的指標,其中包含與事件相關聯的數據。 NULL 是有效的值。
[in] DataSizeCb
Data 指向的數據大小,以位元組為單位。 如果 Data 設定為 NULL,則零是有效的大小值。
傳回值
如果作業成功, WdfDevicePostEvent 會傳回STATUS_SUCCESS。 其他傳回值包括:
傳回碼 | Description |
---|---|
|
WdfEventType 未設定為 WdfEventBroadcast。 |
方法可能會傳回其他 NTSTATUS值。
備註
當驅動程式呼叫 WdfDevicePostEvent 以通知要求應用程式有關事件時,UMDF 會將事件傳送至操作系統。 操作系統會在異步操作中將 事件傳送至要求的應用程式。 如果操作系統一開始沒有傳回錯誤, WdfDevicePostEvent 會傳回STATUS_SUCCESS。
不過,之後,如果操作系統在嘗試傳遞事件時收到錯誤,可能是因為記憶體不足) 而 (事件,則操作系統無法通知驅動程序錯誤。 由於此事件通知的異步本質,因此不保證會將事件傳遞至要求的應用程式。
如果事件資訊在要求應用程式期間遺失,則應用程式應該能夠從遺失的事件中復原。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1 |
目標平台 | Universal |
最低UMDF版本 | 2.0 |
標頭 | wdfdevice.h (包含 Wdf.h) |
程式庫 | WUDFx02000.lib |
Dll | WUDFx02000.dll |
IRQL | PASSIVE_LEVEL |