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
数据 指向的数据的大小(以字节为单位)。 如果 数据 设置为 NULL,则零是有效大小值。
返回值
如果作成功,WdfDevicePostEvent 返回STATUS_SUCCESS。 其他返回值包括:
返回代码 | 描述 |
---|---|
|
WdfEventType 未设置为 WdfEventBroadcast。 |
此方法可能会返回其他 NTSTATUS 值。
言论
当驱动程序调用 WdfDevicePostEvent 以通知请求应用程序有关事件时,UMDF 会将事件发送到作系统。 作系统在异步作中将事件发送到请求的应用程序。 如果作系统最初未返回错误,WdfDevicePostEvent 返回STATUS_SUCCESS。
但是,以后,如果作系统在尝试传递事件时收到错误(可能是内存不足),则作系统无法通知驱动程序有关该错误的信息。 由于此事件通知的异步性质,无法保证将事件传送到请求应用程序。
如果事件信息在请求应用程序之后丢失,则应用程序应能够从丢失的事件中恢复。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8.1 |
目标平台 | 普遍 |
最低 UMDF 版本 | 2.0 |
标头 | wdfdevice.h (包括 Wdf.h) |
库 | WUDFx02000.lib |
DLL | WUDFx02000.dll |
IRQL | PASSIVE_LEVEL |