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 に設定されている場合、0 は有効なサイズ値です。
戻り値
操作が成功した場合、 WdfDevicePostEvent はSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
WdfEventType が WdfEventBroadcast に設定されていません。 |
メソッドは、他の 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 |