次の方法で共有


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 の現在のバージョンでは、ドライバーは EventTypeWdfEventBroadcast (1) に設定する必要があります。 WdfEventBroadcast は、イベントがブロードキャストされていることを示します。 アプリケーションは WdfEventBroadcast 型のイベントをサブスクライブできます。 ブロードキャスト イベントを受信するには、アプリケーションが Microsoft Win32 RegisterDeviceNotification 関数を通じて通知用に登録する必要があります。 WdfEventBroadcast 型のイベントは、DBT_CUSTOMEVENT 型のイベントとしてアプリケーションに公開されます。

[in] Data

イベントに関連付けられているデータを含むバッファーへのポインター。 NULL は有効な値です。

[in] DataSizeCb

データが指すデータのサイズ (バイト単位)。 DataNULL に設定されている場合、0 は有効なサイズ値です。

戻り値

操作が成功した場合、 WdfDevicePostEvent はSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER
WdfEventTypeWdfEventBroadcast に設定されていません。
 

メソッドは、他の NTSTATUS 値を返す場合があります。

注釈

ドライバーが WdfDevicePostEvent を呼び出してイベントについて要求側のアプリケーションに通知すると、UMDF はオペレーティング システムにイベントを送信します。 オペレーティング システムは、非同期操作で要求側アプリケーションに イベントを送信します。 オペレーティング システムが最初にエラーを返さない場合、 WdfDevicePostEvent はSTATUS_SUCCESSを返します。

ただし、後で、オペレーティング システムがイベントの配信中にエラーを受け取った場合 (メモリ不足の状態が原因である可能性があります)、オペレーティング システムはエラーについてドライバーに通知できません。 このイベント通知は非同期の性質上、要求側アプリケーションへのイベントの配信は保証されません。

要求元のアプリケーションまでの途中でイベント情報が失われた場合、アプリケーションは失われたイベントから回復できる必要があります。

要件

要件
サポートされている最小のクライアント Windows 8.1
対象プラットフォーム ユニバーサル
最小 UMDF バージョン 2.0
Header wdfdevice.h (Wdf.h を含む)
Library WUDFx02000.lib
[DLL] WUDFx02000.dll
IRQL PASSIVE_LEVEL

こちらもご覧ください

IWDFDevice::P ostEvent

WDF_EVENT_TYPE