次の方法で共有


SpbControllerSetRequestAttributes 関数 (spbcx.h)

SpbControllerSetRequestAttributes メソッドは、SPB フレームワーク拡張機能 (SpbCx) が SPB コントローラー ドライバーに配信するすべての SPBREQUEST オブジェクトに使用されるオブジェクト属性を設定します。

構文

VOID SpbControllerSetRequestAttributes(
  [in] WDFDEVICE              FxDevice,
  [in] PWDF_OBJECT_ATTRIBUTES RequestAttributes
);

パラメーター

[in] FxDevice

SPB コントローラーを表すデバイス オブジェクトへの WDFDEVICE ハンドル。

[in] RequestAttributes

SPB コントローラーの SPBREQUEST オブジェクトの属性を含む呼び出し元によって割り当てられた WDF_OBJECT_ATTRIBUTES 構造体へのポインター。

戻り値

何一つ

備考

デバイスの初期化中に、SPB コントローラー ドライバーはこのメソッドを呼び出して、SPBREQUEST オブジェクトの既定の属性を設定できます。 その後、SpbCx は、バス上のターゲット デバイスに配信 (または転送) するすべての I/O 要求にこれらの属性を割り当てます。

RequestAttributes は、WDF_OBJECT_ATTRIBUTES 構造体を指します。 この構造体を初期化するには、呼び出し元が以前に WDF_OBJECT_ATTRIBUTES_INIT 関数を呼び出している必要があります。 この呼び出しの後、spbControllerSetRequestAttributes 呼び出しの前に、呼び出し元は、この構造体の次のメンバーの値を変更できます。

  • EvtCleanupCallback する
  • EvtDestroyCallback
  • ContextSizeOverride
  • ContextTypeInfo
spbControllerSetRequestAttributes は、SPBREQUEST オブジェクトの既定の属性としてこれらの値を使用します。 ただし、ドライバーは、ExecutionLevelSynchronizationScope、および ParentObject メンバーに含まれる既定の属性値 変更することはできません。 これらのメンバーは、WDF_OBJECT_ATTRIBUTES_INIT 関数が初期化する値から変更されないようにする必要があります。

WDF_OBJECT_ATTRIBUTES_INIT は、EvtCleanupCallback を初期化し、EvtDestroyCallback メンバーを して NULL します。 これらの既定値を変更して、EvtCleanupCallback または EvtDestroyCallback コールバック関数 登録する場合、この関数は SPB コントローラー キューに I/O 要求が到着するたびに呼び出されます。これは SpbCx によって管理されます。 このような I/O 要求により、EvtCleanupCallback または EvtDestroyCallback 関数が呼び出されます (要求はキューに到着した後、ドライバーに渡される前にキャンセルされるため)。

SPB コントローラー ドライバーは、デバイス オブジェクト コミット 前に、SpbControllerSetRequestAttributes を呼び出す必要があります。つまり、EvtDriverDeviceAdd コールバックから戻る前に、またはコントローラーの子リストに PDO を追加する前に行います。 子リストは、バスに接続されているデバイスを表します。 詳細については、「バス上のデバイスの列挙」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 8 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー spbcx.h
ライブラリ Spbcxstubs.lib
IRQL PASSIVE_LEVEL

関連項目

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT