USB 大量儲存裝置的驅動程式

USB 大量儲存驅動程式庫用於與大量儲存裝置通訊,例如透過 USB 連接的隨身碟、外接硬碟和其他類型的卸除式媒體。USB 大量儲存驅動程式庫分為兩部分:

SCSI 區塊裝置

區塊裝置會實作 BlockImplQueryBlockImplQueue。支援讀取、寫入和清除作業。如果寫入作業和清除作業之間發生斷電,寫入 USB 大容量儲存裝置的變更可能不會保留在裝置上。驅動程式沒有機制可通知堆疊中較高的驅動程式,寫入作業實際寫入實體媒體的時間。就 USB 大量儲存裝置而言,裝置確認寫入作業後,即視為完成。

核心裝置

核心裝置是區塊裝置和 USB 堆疊之間的介面。核心會接受來自區塊裝置的要求,並將其轉換為 USB 要求,最終透過 USB 堆疊傳送至硬體。系統會針對每項要求執行下列步驟:

  • 要求會加入佇列。
  • 工作執行緒會擷取要求。
  • 系統會將要求中儲存的 SCSI 指令傳送至裝置。
  • 從裝置讀回要求狀態。
  • 系統會叫用完成回呼,通知區塊裝置層要求已完成。

部分 USB 大量儲存裝置可能有多個區塊裝置,例如磁碟陣列。在這種情況下,核心驅動程式會為每個磁碟建立一個區塊裝置。