共用方式為


由 USBPRINT.SYS 產生的識別碼

從 Windows 2000 開始,作業系統會提供核心模式 USB 列印驅動程式, usbprint.sys 將印表機子系統連線到 USB 堆疊。 原生 USB 印表機驅動程式可從開發自己的核心模式 USB 印表機驅動程式的需求中釋出廠商。 這可讓廠商開發使用 USB 和平行印表機的高階使用者模式印表機驅動程式。

usbprint.inf安裝檔案包含符合所有 USB 類別 7 印表機裝置的相容識別碼。 如果 USB 中樞驅動程式列舉這些裝置的其中一個,作業系統會尋找與中樞驅動程式在 usbprint.inf 中產生的識別碼相符,並將載入 USB 印表機驅動程式 ,usbprint.sysusbprint.inf中找到的相容識別碼的格式如下:

USB\CLASS_07

其中:

  • 類別 07h = 屬於 USB 印表機類別的裝置

載入 USB 印表機驅動程式之後,就會為印表機裝置建立新的 PDO。 當 隨插即用 (PnP) 管理員查詢新建立 PDO 的裝置識別碼字串時,USB 印表機驅動程式會建立新的硬體識別碼,衍生自裝置的 IEEE 1284 字串,與平行匯流排列舉值所產生的字串識別碼相容。 此硬體識別碼的格式如下:

USBPRINT\NameModel (20) 總和檢查碼 (4)

其中:

  • NameModel (20) 是製造商名稱和裝置型號的串連,最多截斷為 20 個字元。

  • 總和檢查碼 (4) 是 4個字元迴圈備援檢查, (CRC) 從製造商名稱和型號計算的程式碼。

字串中的空格會取代為底線。 例如,如果製造商的名稱是 「Hewlett-Packard」,則模型名稱為 「HP Color LaserJet 550」,而總和檢查碼為 3115,則硬體識別碼如下所示:

USBPRINT\Hewlett-PackardHP_Co3115

在上一個範例中,模型名稱中的 「HP」 與 「Color」 之間的空格會取代為底線,以產生截斷的 make/model 字串 「Hewlett-PackardHP_Co」。

注意 作業系統所產生的 CRC 可能不符合上一節中所述的 CRC,或任何其他 CRC 演算法所計算的 CRC。 因此,您的印表機驅動程式可能無法計算與印表機驅動程式 INF 檔案搭配使用的正確 hardwareID。 若要擷取 hardwareID,最好是搜尋與所安裝 USB 印表機相關聯的 setupapi.dev.log 檔案。