WdfIoTargetCreate 関数 (wdfiotarget.h)
[KMDF と UMDF に適用]
WdfIoTargetCreate メソッドは、指定されたデバイスのリモート I/O ターゲットを作成します。
構文
NTSTATUS WdfIoTargetCreate(
[in] WDFDEVICE Device,
[in, optional] PWDF_OBJECT_ATTRIBUTES IoTargetAttributes,
[out] WDFIOTARGET *IoTarget
);
パラメーター
[in] Device
フレームワーク デバイス オブジェクトへのハンドル。
[in, optional] IoTargetAttributes
I/O ターゲット オブジェクトのオブジェクト属性を指定する呼び出し元によって割り当てられた WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。
[out] IoTarget
I/O ターゲット オブジェクトへのハンドルを受け取る場所へのポインター。
戻り値
操作が成功した場合、WdfIoTargetCreate はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
無効なパラメーターが検出されました。 |
|
新しい I/O ターゲット オブジェクトを作成するためのメモリが不足していました。 |
|
IoTargetAttributes が指定したWDF_OBJECT_ATTRIBUTES構造体の ParentObject メンバーは、Device が指定したフレームワーク デバイス オブジェクト、または親のチェーンがそのオブジェクトにつながるオブジェクトを指定しませんでした。 |
WdfIoTargetCreate が返すことができるその他の戻り値の一覧については、「 フレームワーク オブジェクト作成エラー」を参照してください。
このメソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ドライバーが WdfIoTargetCreate を呼び出した後、ドライバーは、リモート I/O ターゲットに要求を送信する前に WdfIoTargetOpen を呼び出す必要があります。
ドライバーが WDF_OBJECT_ATTRIBUTES 構造体の ParentObject メンバー内の親オブジェクトを指定する場合、親オブジェクトは、フレームワーク デバイス オブジェクトまたは親のチェーンがフレームワーク デバイス オブジェクトにつながる任意のオブジェクトにすることができます。 フレームワークは、I/O ターゲット オブジェクト (またはドライバー) がデバイス オブジェクトを削除すると削除します。
WdfIoTargetCreate の詳細については、「汎用 I/O ターゲットの初期化」を参照してください。
ドライバーが I/O ターゲット オブジェクトの EvtCleanupCallback または EvtDestroyCallback コールバック関数を提供する場合、フレームワークは IRQL = PASSIVE_LEVEL でこれらのコールバック関数を呼び出します。
I/O ターゲットの詳細については、「 I/O ターゲットの使用」を参照してください。
例
WdfIoTargetCreate を使用するコード例については、「WdfIoTargetOpen」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfiotarget.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |