WdfRequestChangeTarget 関数 (wdfrequest.h)
[KMDF と UMDF に適用]
WdfRequestChangeTarget メソッドは、指定した I/O 要求を指定した I/O ターゲットに送信できることを確認します。
構文
NTSTATUS WdfRequestChangeTarget(
[in] WDFREQUEST Request,
[in] WDFIOTARGET IoTarget
);
パラメーター
[in] Request
フレームワーク要求オブジェクトへのハンドル。
[in] IoTarget
フレームワーク I/O ターゲット オブジェクトへのハンドル。
戻り値
WdfRequestChangeTarget 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
入力パラメーターが無効です。 |
|
操作を完了するのに十分なシステム リソースがありません。 |
|
要求の I/O スタックの場所の配列は、ドライバーが I/O ターゲットに要求を送信するのに十分な大きさではありません。 |
このメソッドは、他のNTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
備考
ドライバーが 1 つの I/O 要求を複数の I/O ターゲットに送信する場合、ドライバーは WdfRequestSend 呼び出す前に、WdfRequestChangeTarget メソッドを呼び出す必要があります。 WdfRequestChangeTarget 、指定した I/O ターゲットに要求を送信できることを確認します。
ほとんどのドライバーは、各要求を 1 つのデバイスにのみ送信するため、1 つの I/O ターゲットにのみ送信します。 ドライバー 要求 を受信するか、WdfRequestCreate 呼び出して新しい要求を作成します。
ドライバーが 1 つのデバイスに要求を送信している場合は、WdfDeviceGetIoTarget を呼び出してデバイスの I/O ターゲットを特定し、WdfRequestSend を呼び出して、要求をターゲットに送信します。
ドライバーが複数のデバイスに要求を送信している場合は、デバイスの I/O ターゲット 決定する各デバイスの WdfDeviceGetIoTarget を呼び出します。 WdfRequestSend 呼び出す前に、ドライバーは WdfRequestChangeTarget 呼び出して、各 I/O ターゲットに確実にアクセスできるようにする必要があります。
WdfRequestChangeTarget の詳細については、「転送 I/O 要求を参照してください。
例
次のコード例では、指定したデバイスのローカル I/O ターゲットに I/O 要求を送信できることを確認します。
NTSTATUS status;
status = WdfRequestChangeTarget(
request,
WdfDeviceGetIoTarget(Device)
);
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
最小 KMDF バージョン | 1.0 |
UMDF の最小バージョン を する | 2.0 |
ヘッダー | wdfrequest.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
関連項目
WdfDeviceGetIoTarget の