WDM 驅動程式的類型
WDM 驅動程式有三種:匯流排驅動程式、函式驅動程式和篩選驅動程式。
- 匯流排驅動程式會驅動個別的 I/O 匯流排裝置,並提供與裝置無關的個別位置功能。 匯流排驅動程式也會偵測並報告連線至匯流排的子裝置。
- 函 式驅動程式 會驅動個別裝置。
- 篩選驅動程式會篩選裝置、裝置類別或匯流排的 I/O 要求。
在此內容中, 匯流排 是附加其他實體、邏輯或虛擬裝置的任何裝置;匯流排包含傳統匯流排,例如 SCSI 和 PCI,以及平行埠、序列埠和 i8042 埠。
請務必讓驅動程式開發人員瞭解不同類型的 WDM 驅動程式,並瞭解其撰寫的驅動程式類型。 例如,驅動程式是否處理每個隨插即用IRP,以及如何處理這類 IRP,取決於要寫入何種驅動程式 (匯流排驅動程式、函式驅動程式或篩選驅動程式) 。
下圖顯示匯流排驅動程式、函式驅動程式和裝置篩選驅動程式之間的關聯性。
每個裝置通常都有父 I/O 匯流排的匯流排驅動程式、裝置的函式驅動程式,以及裝置的零或多個篩選驅動程式。 需要許多篩選驅動程式的驅動程式設計不會產生最佳效能。
上圖中的驅動程式如下:
匯流排驅動程式會服務匯流排控制器、配接器或橋接器。 匯流排驅動程式是必要的驅動程式;電腦上每種匯流排類型都有一個匯流排驅動程式。 Microsoft 為最常見的公車提供公車驅動程式。 IHV 和 OEM 可以提供其他匯流排驅動程式。
匯流排篩選驅動程式通常會將價值新增至公車,並由 Microsoft 或系統 OEM 提供。 匯流排可以有任意數目的匯流排篩選驅動程式。
較低層級的篩選驅動程式 通常會修改裝置硬體的行為。 它們是選擇性的,通常由 IHV 提供。 裝置可以有任意數目的較低層級篩選驅動程式。
函式驅動程式是裝置的主要驅動程式。 函式驅動程式通常是由裝置廠商所撰寫,除非裝置正用於 原始模式) ,否則需要 (。
上層篩選驅動程式 通常會為裝置提供加值功能。 它們是選擇性的,通常是由 IHV 提供。
下列主題將詳細說明三種 WDM 驅動程式的一般類型:匯流排驅動程式、函式驅動程式、篩選驅動程式。 此外,也包含使用範例 USB 驅動程式的 WDM 驅動程式分層範例。