SPB 架構延伸模組 (SpbCx)
SPB 架構延伸模組 (SpbCx) 是核心模式驅動程式架構 (KMDF) 的系統提供延伸模組。 SpbCx 可與 SPB 控制器驅動程式 搭配運作,以在連接到簡單周邊總線 (SPB) 的周邊裝置上執行 I/O 作業,例如 I2C 或 SPI。
SPB 控制器驅動程式會執行所有硬體特定作業。 這些作業包括存取SPB控制器的硬體快取器,以設定控制器,以及起始與SPB連線周邊裝置之間的總線傳輸。
SpbCx 會執行SPB控制器裝置通用的處理工作。 特別是,SpbCx 會管理SPB控制器的I/O要求佇列。 這些佇列包含附加至總線之周邊裝置的 I/O 要求。 SPB 控制器的硬體廠商會提供SPB控制器驅動程式,以執行處理這些要求所需的所有硬體特定作業。
SpbCx 與 SPB 控制器驅動程式之間的責任劃分如下:
SpbCx 會管理SPB控制器裝置類別所有成員通用的泛型函式。 SpbCx 提供控制器驅動程式的大部分預設要求處理和流程控制。 從 Windows 8 開始,SpbCx 是 Windows 作業系統的收件匣元件。
SPB 控制器驅動程式會管理SPB控制器裝置中的硬體特定功能。 硬體廠商會為其SPB控制器裝置提供控制器驅動程式。
SpbCx 和SPB控制器驅動程式會在核心模式中執行。 SpbCx 是架構延伸模組,而SPB控制器驅動程式是 KMDF 驅動程式。 SPB 控制器驅動程式會呼叫 SpbCx 設備驅動器介面 (DDI) 中的方法來執行 SPB 特定作業,並呼叫 KMDF 方法來執行其他更通用的驅動程式函式。 如需建置 KMDF 驅動程式的詳細資訊,請參閱 建置和載入架構型驅動程式。
SPB 控制器驅動程式會靜態連結至SpbCx stub連結庫Spbcx.lib中的 DDI 進入點。 在運行時間,此連結庫會執行必要的驅動程式版本交涉,以動態連結至實作 DDI 的架構擴充模組Spbcx.sys。 需要特定版本Spbcx.sys的SPB控制器驅動程式可以安全地連結至版本號碼較高的Spbcx.sys版本。 不過,此驅動程式無法連結到版本號碼較低的Spbcx.sys版本。 SpbCx I/O 要求介面同樣相容。
雖然硬體廠商可以選擇撰寫不使用SpbCx的單體SPB控制器驅動程式,但需要付出大量努力。 相較之下,使用SpbCx的控制器驅動程式更容易開發,而且通常更可靠。