共用方式為


spbControllerSetRequestAttributes 函式 (spbcx.h)

SpbControllerSetRequestAttributes 方法會設定物件屬性,這些物件會用於SPB架構延伸模組 (SpbCx) 傳遞至SPB控制器驅動程式的所有SPBREQUEST物件。

語法

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

參數

[in] FxDevice

代表SPB控制器之裝置物件的WDFDEVICE句柄。

[in] RequestAttributes

呼叫端配置的 WDF_OBJECT_ATTRIBUTES 結構的指標,其中包含SPB控制器SPBREQUEST對象的屬性。

傳回值

備註

在裝置初始化期間,您的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 會將 EvtCleanupCallbackEvtDestroyCallback 成員初始化為 NULL。 如果您變更這些預設值來註冊 EvtCleanupCallbackEvtDestroyCallback 回 呼函式,則每次 I/O 要求抵達 SPB 控制器佇列時,都會呼叫此函式,該佇列是由 SpbCx 所管理。 這類 I/O 要求會導致 呼叫 EvtCleanupCallbackEvtDestroyCallback 函式,即使 SpbCx 永遠不會將要求呈現給 SPB 控制器驅動程式, (因為要求在抵達佇列後取消,但在傳遞至驅動程式之前) 。

SPB 控制器驅動程式必須先呼叫 SpbControllerSetRequestAttributes ,才能 認可 裝置物件,也就是從 EvtDriverDeviceAdd 回呼傳回之前,或將 PDO 新增至控制器的子清單。 子清單代表連接到總線的裝置。 如需詳細資訊,請參閱 列舉總線上的裝置

規格需求

需求
最低支援的用戶端 從 Windows 8 開始提供。
目標平台 Universal
標頭 spbcx.h
程式庫 Spbcxstubs.lib
IRQL PASSIVE_LEVEL

另請參閱

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT