Поделиться через


Функция 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. Чтобы получать широковещательные события, приложение должно зарегистрироваться для получения уведомлений с помощью функции Microsoft Win32 RegisterDeviceNotification . События типа WdfEventBroadcast предоставляются приложениям как события типа 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)
Библиотека WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

См. также раздел

IWDFDevice::P ostEvent

WDF_EVENT_TYPE