建立非 PnP 驅動程式的類別目錄檔案

您可以使用 MakeCat 工具來建立非 PnP 驅動程式的 目錄檔案

注意

為具有 INF 檔案的驅動程式套件建立類別目錄檔案時,請使用Inf2Cat工具來建立類別目錄檔案。 Inf2Cat 會自動包含套件 INF 檔案中參考之驅動程式套件中的所有檔案。 如需如何使用 Inf2Cat 工具的詳細資訊,請參閱 使用 Inf2Cat 建立類別目錄檔案

若要建立類別目錄檔案,您必須先手動建立目錄定義檔 (。.cdf) ,描述目錄標頭屬性和檔案專案。 建立此檔案之後,您可以接著執行 MakeCat 工具來建立類別目錄檔案

建立類別目錄檔案

若要為非 PnP 驅動程式建立類別目錄檔案,請遵循下列步驟:

  1. 使用文字編輯器來建立 .cdf 檔案,其中列出要建立之 目錄檔案 的名稱、其屬性,以及要列在類別目錄檔案中的檔案名。

  2. 使用 MakeCat 命令列工具來建立類別目錄檔案。 如需 MakeCat 工具的詳細資訊,請參閱 使用 MakeCat 網站。

  3. 在將安裝驅動程式的電腦上安裝類別目錄檔案。

MakeCat 工具概觀

MakeCat 工具會在處理 .cdf 檔案時執行下列動作:

  • 驗證.cdf檔案所定義之類別目錄檔案的屬性,並將屬性新增至類別目錄檔案。

  • 驗證 .cdf 檔案內所列之每個檔案的屬性,並將屬性新增至類別目錄檔案。

  • 為每個列出的檔案產生密碼編譯雜湊或 指紋

  • 將每個檔案的指紋儲存在類別目錄檔案中。

使用下列 MakeCat 命令來建立類別目錄檔案。

MakeCat -v CatalogDefinitionFileName.cdf

其中:

  • -v選項會將 MakeCat 設定為列印執行和警告訊息。

  • CatalogDefinitionFileName.cdf 是目錄定義檔的名稱。

範例

下列範例顯示名為 Good.cdf 的一般目錄定義檔內容。 要編錄的封裝包含兩個檔案 :File1File2。 產生的目錄檔案會命名為 Good.cat。

[CatalogHeader]
Name=Good.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.0
[CatalogFiles]
<hash>File1=File1
<hash>File2=File2

此範例中使用的選項如下所述。 如需這些選項的詳細資訊,請參閱 MakeCat 網站。

Name=Good.cat
指定目錄檔案的名稱, (Good.cat) 。

PublicVersion=0x0000001
指定目錄檔案的版本。

EncodingType=0x00010001
指定用來產生指紋的訊息編碼類型。 值0x00010001指定訊息編碼類型PKCS_7_ASN_ENCODING |X509_ASN_ENCODING。

CATATTR1=0x10010001:OSAttr:2:6.0
指定目錄檔案的屬性。 若要指定其他屬性,您必須使用不同的 CATATTR 選項,每個選項都會指派唯一的數值數位做為尾碼。 例如,使用 CATATT1 指定一個目錄檔案屬性,並使用 CATATT2 來指定另一個目錄檔案屬性。

在此範例中,使用 CATATTR1 選項指定的屬性具有下列值:

0x10010001
指定要為下列屬性:

  • 0x10000000 - 已簽署的已驗證屬性 (,包含在指紋) 中。

  • 0x00010000 - 屬性是以純文字表示。

  • 0x00000001 - 屬性是名稱/值組。

OSAttr:2:6.0
OSAttr 屬性會指定簽署需求與 驅動程式套件相容的目標 Windows 版本。 屬性的值會指定下列專案:

  • 2 指定類別目錄檔案與以 NT 為基礎的 Windows 作業系統版本相容。

  • 6.0 指定目錄檔案與 Windows Vista 相容。 注意 如果 驅動程式套件 與多個 Windows 版本相容,您必須使用不同的 CATATTR 選項來指定每個 Windows 版本的 OSAttr 屬性。

<hash > File1=File1
指定透過類別目錄檔案參考之 File1 檔案的參考標記。 值< 雜湊 > File1會導致標籤成為檔案的密碼編譯雜湊或指紋

<hash > File1=File2
指定檔案 File2 的參考標籤,該檔案是透過類別目錄檔案參考的。 值< 雜湊 > File2會導致標籤成為檔案的指紋。

下列範例示範如何從對應的目錄定義檔 Good.產生類別目錄檔案,Good.cat。cdf。 Makecat 會將 Good.cat 儲存在 File1File2 所在的相同資料夾中。

MakeCat -v Good.cdf