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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが検出されました。
STATUS_INSUFFICIENT_RESOURCES
新しい I/O ターゲット オブジェクトを作成するためのメモリが不足していました。
STATUS_INVALID_DEVICE_REQUEST
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)

こちらもご覧ください

WDF_OBJECT_ATTRIBUTES

WdfIoTargetOpen