共用方式為


驅動程式執行緒內容

層次驅動程式中的處理 IRP 圖所示,檔案系統是兩部分驅動程式:

  1. 檔案系統驅動程式 (FSD) ,它會在呼叫 I/O 系統服務的使用者模式執行緒內容中執行

    I/O 管理員會將對應的 IRP 傳送至 FSD。 如果 FSD 為 IRP 設定完成常式,則其完成常式不一定是在原始使用者模式執行緒的內容中呼叫。

  2. 一組檔案系統執行緒,也可能是 FSP (檔案系統進程)

    FSD 可以建立一組驅動程式專用的系統執行緒,但大部分的 FSD 都會使用系統背景工作執行緒來完成工作,而不需要系結髮出 I/O 要求的使用者模式執行緒。 任何 FSD 可能會設定自己的進程位址空間,在其中執行其驅動程式專用線程,但系統提供的 FSD 可避免這種做法來節省系統記憶體。

檔案系統通常會使用系統背景工作執行緒來設定和管理 IRP 的內部工作佇列,這些佇列會傳送給一或多個較低層級的驅動程式,可能適用于不同的裝置。

雖然 層次驅動程式中處理 IRP 中顯示的最低層級驅動程式會透過一組離散、驅動程式提供的常式,以階段處理每個 IRP,但檔案系統不會使用系統執行緒。 最低層級驅動程式不需要自己的執行緒內容,除非為 I/O 設定其裝置是這類延後的程式,因為它對系統效能有明顯的影響。 少數最低層級或中繼驅動程式需要設定自己的驅動程式專用或裝置專用系統執行緒,而那些驅動程式會支付內容切換至其執行緒所造成的效能負面影響。

大部分的核心模式驅動程式,例如 在層次驅動程式中處理 IRP 圖中的 實體設備磁碟機,會在任意執行緒內容中執行:呼叫任何執行緒來處理 IRP 時,任何執行緒都會發生目前的情況。 因此,驅動程式通常會維護其 I/O 作業的狀態,以及它們在其裝置物件中驅動程式定義部分服務的裝置狀態,稱為 裝置擴充功能