次の方法で共有


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 オブジェクトの既定の属性として使用されます。 ただし、ドライバーは ExecutionLevelSynchronizationScopeParentObject メンバーに含まれる既定の属性値を変更できません。 これらのメンバーは、 WDF_OBJECT_ATTRIBUTES_INIT 関数が初期化する値から変更されていない必要があります。

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

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

要件

要件
サポートされている最小のクライアント Windows 8以降で使用できます。
対象プラットフォーム ユニバーサル
Header spbcx.h
Library Spbcxstubs.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT