驱动程序包的组件
驱动程序包包括你必须提供的所有软件组件,以确保你的设备支持 Windows。 通常,驱动程序包中包含下列组件:
INF 文件
目录文件
驱动程序文件
其他文件
下面是对驱动程序包的每个组件的简短说明。
WDK 包括各种示例驱动程序包。 有关详细信息,请参阅 示例设备安装文件
INF 文件
每个驱动程序包都必须包含一个 INF 文件,设备安装组件在安装设备时读取该文件。 INF 文件不是安装脚本。 它是一个 ASCII 或 Unicode(仅 UTF-16)文本文件,它提供设备和驱动程序信息,包括驱动程序文件、注册表项、设备 ID、 目录文件和在设备上安装驱动程序包所需的版本信息。
INF 文件的确切内容和格式取决于 INF 声明自己为 InF 的设备安装类 。 INF 节 摘要描述了每种类型的 INF 中所需的信息。 通常,每制造商信息位于 INF 模型部分。 “模型”部分中的条目是指包含特定于模型的详细信息的 INF DDInstall 节。
InfVerif 工具(在 Microsoft Windows 驱动程序工具包 (WDK)的 \tools 目录中提供,检查所有跨类 INF 节和指令的语法和结构,以及除打印机以外的所有安装程序类的特定于类的扩展。
可以使用单个 INF 文件在所有版本的 Windows 操作系统上安装。 有关详细信息,请参阅 为多个平台和操作系统创建 INF 文件。 如果你的设备将在国际市场销售,则应 创建一个国际 INF 文件。 根据涉及的区域,国际 INF 文件可能必须是 Unicode (UTF-16) 文件,而不是 ASCII。
为驱动程序创建 INF 文件的好方法是修改 WDK 提供的其中一个示例。 大多数 WDK 示例驱动程序都包含与示例驱动程序相同的目录中的 INF 文件。
设备的 INF 文件必须至少包含以下信息:
有关支持驱动程序包的操作系统版本的信息
驱动程序包的安装类 GUID 和安装类
驱动程序包版本信息
驱动程序文件的名称及其源和目标位置
有关如何以及何时加载每个驱动程序包提供的服务的信息
如果设备涉及启动系统,则安装要求会有所不同。 请参阅 安装启动驱动程序。
有关 INF 文件的详细信息,请参阅“创建 INF 文件”、“InfVerif 文档”、“WDK 中的特定于设备的文档”以及为类似你的设备提供的示例驱动程序的 INF 文件。
目录文件
驱动程序目录文件包含驱动程序包中每个文件的加密哈希。 Windows 使用这些哈希值来验证程序包在发布后是否未被更改。 若要确保目录文件未更改,必须使用 应使用此驱动程序包的系统信任的数字签名对其进行数字签名 。
供应商通过将驱动程序包提交到 Windows 硬件质量实验室(WHQL)进行测试和签名来获取发布数字签名。 WHQL 返回包含目录文件的包(。cat 文件)。 有关详细信息,请参阅 WHQL 发布签名。
有关如何对驱动程序进行签名的信息,请参阅对驱动程序的公共版本签名,以及在开发和测试期间对驱动程序签名。
INF 文件必须使用 INF 的 INF 版本部分中的 CatalogFile 指令引用目录文件。
驱动程序文件
在大多数情况下,驱动程序包将包含一个或多个驱动程序服务,这些服务应是安装驱动程序包的设备的设备堆栈的一部分。 有关驱动程序服务的详细信息,请参阅 “选择驱动程序模型”。 驱动程序服务是提供设备的 I/O 接口的包的一部分。 通常,驱动程序是带有 sys 文件扩展名的动态链接库 (DLL)。 允许使用长文件名,启动驱动程序除外。
支持特定设备所需的软件取决于设备的功能,以及它所连接到的总线或端口。 Microsoft为许多常见设备提供驱动程序。 如果这些驱动程序之一可以为你的设备提供服务,则可能只需要编写设备特定的微型驱动器。 微型驱动器代表系统提供的驱动程序处理设备特定的功能。 对于某些类型的设备,甚至不需要微型驱动器。 例如,通常可以仅通过安装文件来支持调制解调器。
其他文件
驱动程序包还可以包含其他文件,例如硬件校准设置、Win32 服务、设备图标或驱动程序库文件(例如视频驱动程序)。 有关详细信息,请参阅以下主题: