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 设置为 NULL,则零是有效的大小值。

返回值

如果操作成功, WdfDevicePostEvent 将返回STATUS_SUCCESS。 其他返回值包括:

返回代码 说明
STATUS_INVALID_PARAMETER
WdfEventType 未设置为 WdfEventBroadcast
 

方法可能会返回其他 NTSTATUS 值

注解

当驱动程序调用 WdfDevicePostEvent 以通知请求应用程序有关事件时,UMDF 会将事件发送到操作系统。 操作系统在异步操作中将事件发送到请求应用程序。 如果操作系统最初未返回错误, 则 WdfDevicePostEvent 返回STATUS_SUCCESS。

但是,以后,如果操作系统在尝试传递事件时收到错误, (可能是由于) 内存不足,则操作系统无法通知驱动程序错误。 由于此事件通知的异步性质,无法保证将事件传送到请求应用程序。

如果事件信息在请求应用程序前丢失,应用程序应能够从丢失的事件中恢复。

要求

要求
最低受支持的客户端 Windows 8.1
目标平台 通用
最低 UMDF 版本 2.0
标头 wdfdevice.h (包括 Wdf.h)
Library WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

另请参阅

IWDFDevice::P ostEvent

WDF_EVENT_TYPE