HID 用戶端驅動程式

如果系統提供的 HID 迷你驅動程式不支援裝置的埠或總線,則需要廠商提供的迷你驅動程式。

下圖說明一般 HIDClass 裝置的驅動程式堆疊, (可能會使用選擇性且必要的廠商提供的元件) 。

說明泛型hidclass裝置驅動程式堆疊的圖表。

Windows 會建置驅動程序堆棧,如下所示:

  • 傳輸堆疊會為每個連結的 HID 裝置建立實體裝置物件 (PDO) ,並載入適當的 HID 傳輸驅動程式,進而載入 HID 類別驅動程式。
  • HID 類別驅動程式會為TLC建立 PDO。 對於具有多個 TLC 的複雜裝置,HID 類別驅動程式會為每個 TLC 建立 PDO,並確保與 TLC 相關聯的硬體識別碼包含代表每個裝置對象的識別碼。
  • 廠商提供的函式或篩選驅動程式會為 HID 集合建立 FDO 或篩選 DO。
  • 或者,廠商提供的應用程式可以使用SetupDI* API 來開啟裝置,以識別裝置,然後是 HID 支援的例程來與裝置通訊。 這類裝置會以RAW模式開啟。

如果系統提供的 Minidriver 作業 不支援裝置,則需要廠商提供的 HID 迷你驅動程式。 您可以透過兩種方式來實作此迷你驅動程式:

  • HID 用戶端驅動程式
  • 應用程式直接存取 HID

如果廠商提供驅動程式 (迷你驅動程式) 以外的驅動程式,該驅動程式:

  • 必須符合 Windows 驅動程式的最低需求。 在理想情況下,這應該以UMDF () 或核心模式驅動程式架構 (KMDF) 為基礎。 較不理想的解決方案是建立 WDM 函式驅動程式,如 Windows 驅動程式模型中所述。
  • 通常支援廠商定義的裝置介面 -- 請參閱裝置介面類別。 高階驅動程式或使用者模式應用程式會使用自定義介面來存取廠商驅動程式運作的裝置。 自定義介面可能會新增功能,或或許可以簡化 HID 類別驅動程式的介面。

如果驅動程式不是函式驅動程式或篩選驅動程式,可以使用 隨插即用 通知來尋找 HID 集合。 尋找集合之後,驅動程式會開啟集合,並以與函式或篩選驅動程式相同的方式操作集合。

重要事項:

  • 如果廠商提供的函式驅動程式為 HID 集合建立 FDO 或篩選 DO,則不應該使用 FILE_OBJECT 的 FsContext 字段來儲存檔案物件特定數據。 FsContext 字段會保留給 HID 類別驅動程式。 如果堆疊中的另一個驅動程式需要儲存檔案物件特定的內容數據,它應該改用 FsContext2 字段。
  • 如果有多個裝置連結至 PDO,則沒有任何內建機制可判斷哪些裝置可以使用 FsContext2 字段。