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 要求抵達 SpbCx 管理的 SPB 控制器佇列時,都會呼叫此函式。 這類 I/O 要求會導致 EvtCleanupCallback 或 EvtDestroyCallback 函式呼叫,即使 SpbCx 從未向 SPB 控制器驅動程式提出要求(因為要求在到達佇列之後取消,但在傳遞至驅動程式之前也一樣)。
SPB 控制器驅動程式必須先呼叫 SpbControllerSetRequestAttributes,才能 認可裝置物件,也就是,在從 EvtDriverDeviceAd d 回呼或將 PDO 新增至控制器的子清單之前。 子清單代表連接至總線的裝置。 如需詳細資訊,請參閱 列舉總線上的裝置。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平臺 | 普遍 |
標頭 | spbcx.h |
連結庫 | Spbcxstubs.lib |
IRQL | PASSIVE_LEVEL |