WdfIoTargetStart 関数 (wdfiotarget.h)

[KMDF と UMDF に適用]

WdfIoTargetStart メソッドは、キューに登録された要求のローカルまたはリモートの I/O ターゲットへの送信を開始します。

構文

NTSTATUS WdfIoTargetStart(
  [in] WDFIOTARGET IoTarget
);

パラメーター

[in] IoTarget

WdfDeviceGetIoTarget または WdfIoTargetCreate の以前の呼び出しから取得された、または特殊化された I/O ターゲットが提供するメソッドから取得されたローカルまたはリモートの I/O ターゲット オブジェクトへのハンドル。

戻り値

操作が成功した場合、WdfIoTargetStart はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_DEVICE_STATE
デバイスは削除されました。
 

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

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーが回復可能なデバイス エラーを検出できる場合は、ドライバーが WdfIoTargetStop を呼び出して要求の送信を一時的に停止し、後で WdfIoTargetStart を呼び出して要求の送信を再開することができます。

さらに、ドライバーが WdfUsbTargetPipeConfigContinuousReader を呼び出して USB パイプの連続リーダーを構成する場合、ドライバーの EvtDeviceD0Entry コールバック関数は WdfIoTargetStart を呼び出してリーダーを起動する必要があります。

ドライバーは 、WdfIoTargetStartWdfIoTargetStop を同期的に呼び出す必要があります。 ドライバーは、これらの関数のいずれかを呼び出した後、最初の関数が返される前に、もう一方の関数を呼び出す必要があります。

WdfIoTargetStart の詳細については、「一般的な I/O ターゲットの状態の制御」を参照してください。

I/O ターゲットの詳細については、「 I/O ターゲットの使用」を参照してください。

次のコード例は、ドライバーが USB パイプに連続リーダーを使用している場合に、 EvtDeviceD0Entry コールバック関数が WdfIoTargetStart を呼び出す方法を示しています。

NTSTATUS
MyEvtDeviceD0Entry(
    IN  WDFDEVICE Device,
    IN  WDF_POWER_DEVICE_STATE PreviousState
)
{
    PDEVICE_CONTEXT  pDeviceContext;
    NTSTATUS  status;

    pDeviceContext = GetMyDeviceContext(Device);

    status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(pDeviceContext->InterruptPipe));

    return status;
}

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfiotarget.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)FailD0EntryIoTargetState(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)

こちらもご覧ください

EvtDeviceD0Entry

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetStop

WdfUsbTargetPipeConfigContinuousReader