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
WDF_OBJECT_ATTRIBUTES_INIT 會將 EvtCleanupCallback 和 EvtDestroyCallback 成員初始化為 NULL。 如果您變更這些預設值來註冊 EvtCleanupCallback 或 EvtDestroyCallback 回 呼函式,則每次 I/O 要求抵達 SPB 控制器佇列時,都會呼叫此函式,該佇列是由 SpbCx 所管理。 這類 I/O 要求會導致 呼叫 EvtCleanupCallback 或 EvtDestroyCallback 函式,即使 SpbCx 永遠不會將要求呈現給 SPB 控制器驅動程式, (因為要求在抵達佇列後取消,但在傳遞至驅動程式之前) 。
SPB 控制器驅動程式必須先呼叫 SpbControllerSetRequestAttributes ,才能 認可 裝置物件,也就是從 EvtDriverDeviceAdd 回呼傳回之前,或將 PDO 新增至控制器的子清單。 子清單代表連接到總線的裝置。 如需詳細資訊,請參閱 列舉總線上的裝置。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平台 | Universal |
標頭 | spbcx.h |
程式庫 | Spbcxstubs.lib |
IRQL | PASSIVE_LEVEL |