驱动程序包的组件

驱动程序包包括你必须提供的所有软件组件,以确保你的设备支持 Windows。 通常,驱动程序包中包含下列组件:

  • INF 文件

  • 目录文件

  • 驱动程序文件

  • 其他文件

下面是对驱动程序包的每个组件的简短说明。

WDK 包括各种示例驱动程序包。 有关详细信息,请参阅 示例设备安装文件

INF 文件

每个驱动程序包都必须包含一个 INF 文件,设备安装组件在安装设备时读取该文件。 INF 文件不是安装脚本。 它是 ASCII 或 Unicode (UTF-16 仅) 文本文件,用于提供设备和驱动程序信息,包括驱动程序文件、注册表项、设备 ID、 目录文件和在设备上安装驱动程序包所需的版本信息。

INF 文件的确切内容和格式取决于 INF 声明自己的 设备安装类INF 部分摘要 介绍了每种类型的 INF 中所需的信息。 通常,每个制造商的信息位于 INF 模型 部分中“模型”部分中的条目是指包含特定于模型的详细信息的 INF DDInstall

InfVerif 工具(在 Microsoft Windows 驱动程序工具包 (WDK) 的 \tools 目录中提供)检查所有跨类 INF 部分和指令的语法和结构,以及除打印机以外的所有安装类的特定于类的扩展。

从 Windows 2000 开始,可以使用单个 INF 文件在所有版本的 Windows 操作系统上安装。 有关详细信息,请参阅 为多个平台和操作系统创建 INF 文件。 如果你的设备将在国际市场销售,则应 创建一个国际 INF 文件。 根据所涉及的位置,国际 INF 文件可能必须是 Unicode (UTF-16) 文件,而不是 ASCII。

为驱动程序创建 INF 文件的一个好方法是修改 WDK 提供的示例之一。 大多数 WDK 示例驱动程序都包含与示例驱动程序位于同一目录中的 INF 文件。

有关 INF 文件的详细信息,请参阅 创建 INF 文件InfVerif 文档、WDK 中特定于设备的文档以及与示例驱动程序类似的设备提供的 INF 文件。

目录文件

驱动程序目录文件包含驱动程序包中每个文件的加密哈希。 Windows 使用这些哈希值来验证程序包在发布后是否未被更改。 若要确保目录文件不会更改,必须使用应使用此驱动程序包的系统信任的数字签名对目录文件进行数字签名。

供应商通过将驱动程序包提交到 Windows 硬件质量实验室 (WHQL) 进行测试和签名来获取发布数字签名。 WHQL 返回包含目录文件的包 (。cat 文件) 。 有关详细信息,请参阅 WHQL 发布签名

有关如何对驱动程序进行签名的信息,请参阅对驱动程序的公共版本签名,以及在开发和测试期间对驱动程序签名

INF 文件必须使用 INF 的 INF 版本部分中CatalogFile 指令引用目录文件。

驱动程序文件

在大多数情况下,驱动程序包将包含一个或多个驱动程序服务,这些服务应是安装驱动程序包的设备的设备 堆栈 的一部分。 有关驱动程序服务的详细信息,请参阅 选择驱动程序模型。 驱动程序服务是包的一部分,它为设备提供 I/O 接口。 通常,驱动程序是带有 sys 文件扩展名的动态链接库 (DLL)。 允许使用长文件名,启动驱动程序 除外。

支持特定设备所需的软件取决于设备的功能,以及它所连接到的总线或端口。 Microsoft 提供适用于许多常见设备的驱动程序。 如果这些驱动程序之一可以为你的设备提供服务,则可能只需要编写设备特定的微型驱动器 。 微型驱动器代表系统提供的驱动程序处理设备特定的功能。 对于某些类型的设备,甚至不需要微型驱动器。 例如,通常可以仅通过安装文件来支持调制解调器。

其他文件

驱动程序包还可以包含其他文件,例如硬件校准设置、Win32 服务、设备图标或驱动程序库文件 (,例如视频驱动程序) 。 有关详细信息,请参阅以下主题:

为设备提供图标