共用方式為


SD 記憶卡驅動程式堆疊

Secure Digital (SD) 記憶卡技術從可攜式、記憶卡開始,但隨著安全數位 I/O (SDIO) 規格的發行,Secure Digital Association (SDA) 已擴大 SD 技術的定義,以包含各種不同的卡片功能,例如藍牙裝置、視訊相機、無線區域網路 裝置、 和全域定位系統 (GPS) 接收者。 本檔說明作業系統如何支援 SD 技術的卡片函式延伸模組。

許多早期 SD 儲存裝置的卡片讀取器是設計來連線到 USB 匯流排。 Windows 會使用 USB 大量儲存體驅動程式管理這些裝置, (usbstor.sys) 和原生儲存體類別驅動程式 (disk.sys) ,如下圖所示:

圖表說明早期儲存裝置的裝置堆疊。

如需 Windows 針對連接到 USB 匯流排的記憶卡所建立之裝置堆疊的更完整描述,請參閱 USB 大量儲存裝置的裝置物件範例

作業系統支援直接連線到 PCI 匯流排的 SD 主機控制器。 當系統列舉 SD 主機控制器時,它會載入原生 SD 匯流排驅動程式, (sdbus.sys) 。 如果使用者插入 SD 記憶卡,Windows 會載入原生 SD 儲存體類別驅動程式, (sffdisk.sys) 和儲存體迷你埠驅動程式 (sffp_sd.sys) 匯流排驅動程式頂端。 如果使用者插入具有不同功能類型的 SD 記憶卡,例如 GPS 或無線區域網路,Windows 就會為裝置載入廠商提供的驅動程式。

SD 堆疊中的所有設備磁碟機,無論是原生或廠商提供的,都必須呼叫靜態 SD 匯流排程式庫中的常式, (sdbus.lib) 來與 SD 匯流排驅動程式通訊。 SD 驅動程式在編譯時必須連結到此程式庫。 下圖描述系統列舉 SD 控制器和隨附卡片時所建立的 SD 驅動程式堆疊:

說明 sd 軟體和硬體元件之間關聯性的圖表。

SD 設備磁碟機無法直接存取主機控制器暫存器集,也無法在 I/O 要求封包中內嵌主機控制器的傳遞命令, (IRP) 。 SD 設備磁碟機會呼叫 SD 匯流排程式庫常式向主控制器發出命令,然後程式庫會為主機控制器產生適當的 SD 命令。

SD 設備磁碟機必須處理標準 PnP 和電源 IRP,但不會要求或管理硬體資源,例如埠、記憶體或中斷向量。 因此,處理 IRP_MN_START_DEVICE 要求時,不需要 SD 設備磁碟機來對應任何硬體資源。 不過,當 SD 設備磁碟機收到 IRP_MN_STOP_DEVICE 要求時,它必須停止所有 I/O 作業。 此外,驅動程式必須關閉其介面至 SD 匯流排驅動程式,以回應 IRP_MN_QUERY_REMOVE_DEVICE 要求。

發生硬體中斷時,SD 匯流排程式庫會攔截中斷、遮罩進一步中斷,並透過發生硬體中斷的回呼常式通知 SD 設備磁碟機。 如需匯流排驅動程式用來通知 SD 裝置驅動程式硬體中斷的回呼常式的描述,請參閱 PSDBUS_CALLBACK_ROUTINE。 如需 SD 驅動程式堆疊和程式庫如何管理硬體中斷的一般說明,請參閱 處理安全數位 (SD) 硬體中斷

windows Driver Kit (WDK) 中提供的 ntddsd.h 標頭檔會宣告 SD 匯流排程式庫所公開常式的原型。