WdfIoTargetWdmGetTargetDeviceObject 関数 (wdfiotarget.h)
[KMDF にのみ適用]
WdfIoTargetWdmGetTargetDeviceObject メソッドは、指定されたローカルまたはリモートの I/O ターゲットに関連付けられている Windows ドライバー モデル (WDM) デバイス オブジェクトへのポインターを返します。
構文
PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
[in] WDFIOTARGET IoTarget
);
パラメーター
[in] IoTarget
WdfDeviceGetIoTarget または WdfIoTargetCreate または特殊化された I/O ターゲットが提供するメソッドの以前の呼び出しから取得されたローカルまたはリモートの I/O ターゲット オブジェクトへのハンドル。
戻り値
WdfIoTargetWdmGetTargetDeviceObject は、WDM DEVICE_OBJECT 構造体へのポインターを返します。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ほとんどのフレームワーク ベースのドライバーは、I/O ターゲットの WDM デバイス オブジェクトにアクセスする必要はありません。
WdfIoTargetWdmGetTargetDeviceObject メソッドが返すポインターは、ドライバーが WdfIoTargetClose または WdfIoTargetCloseForQueryRemove を呼び出すか、リモート I/O ターゲット オブジェクトが削除されるまで有効です。 ドライバーがリモート I/O ターゲット オブジェクトの EvtCleanupCallback 関数を提供し、リモート I/O ターゲットを閉じる前にオブジェクトが削除された場合、 ポインターは EvtCleanupCallback 関数が返されるまで有効です。
ドライバーが削除された後に WDM デバイス オブジェクトにアクセスしようとすると、ドライバーによってシステムがクラッシュする可能性があります。 トーストモン サンプルは、ドライバーが EvtIoTargetQueryRemove コールバック関数を提供して、I/O ターゲットが削除された場合に通知されるようにする方法を示しています。
WdfIoTargetWdmGetTargetDeviceObject の詳細については、「一般的な I/O ターゲットに関する情報の取得」を参照してください。
I/O ターゲットの詳細については、「I /O ターゲットの使用」を参照してください。
例
次のコード例では、I/O ターゲットの WDM DEVICE_OBJECT構造を調べて、ターゲットが直接 I/O 操作をサポートしていることを確認します。
if (!((WdfIoTargetWdmGetTargetDeviceObject(Adapter->IoTarget))->Flags
& DO_DIRECT_IO)) {
ASSERTMSG("Target device doesn't support direct I/O\n", FALSE);
return STATUS_INVALID_DEVICE_REQUEST;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfiotarget.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |