SetupOpenInfFileA 函数 (setupapi.h)

[此函数可用于“要求”部分所示的操作系统。 它可能在后续版本中变更或不可用。 不应再使用 SetupAPI 来安装应用程序。 请改用 Windows Installer 开发应用程序安装程序。 SetupAPI 继续用于安装设备驱动程序。]

SetupOpenInfFile 函数打开一个 INF 文件并返回它的句柄。

语法

WINSETUPAPI HINF SetupOpenInfFileA(
  [in] PCSTR FileName,
  [in] PCSTR InfClass,
  [in] DWORD InfStyle,
  [in] PUINT ErrorLine
);

参数

[in] FileName

指向以 null 结尾的字符串的指针,该字符串包含要打开的 INF 文件的名称 (和可选路径) 。 如果文件名不包含路径分隔符字符,则首先在 %windir%\inf 目录中搜索它,然后在 %windir%\system32 目录中搜索它。 如果文件名包含路径分隔符字符,则假定它是完整路径规范,并且不会对其进行进一步处理。

[in] InfClass

指向包含所需 INF 文件的类的以 null 结尾的字符串的可选指针。 此字符串必须与 Version 节的 Class 值匹配, (例如 Class=Net) 。 如果 Class 值中没有条目,但在 Version 节中有 ClassGUID 的条目,则会检索该 GUID 的相应类名并将其用于比较。

[in] InfStyle

要打开或搜索的 INF 文件的样式。 此参数可以是以下标志的组合。

INF_STYLE_OLDNT

旧版 INF 文件格式。

INF_STYLE_WIN4

Windows INF 文件格式。

[in] ErrorLine

指向变量的可选指针,此函数将返回从 1 开始的 () 行号,该行号在加载 INF 文件时发生错误。 仅当 GetLastError 不返回ERROR_NOT_ENOUGH_MEMORY时,此值通常才可靠。 如果确实出现内存不足的情况, 则 ErrorLine 可能为 0。

返回值

如果成功,函数将返回打开的 INF 文件的句柄。 否则,返回值INVALID_HANDLE_VALUE。 可以通过调用 GetLastError 来检索扩展的错误信息。

注解

如果加载因 INF 文件类型与 InfClass 不匹配而失败,则函数将返回INVALID_HANDLE_VALUE,并且对 GetLastError 的调用将返回ERROR_CLASS_MISMATCH。

如果指定了多个 INF 文件样式,则打开的 INF 文件的样式可以通过调用 SetupGetInfInformation 函数来确定。

由于可能有多个具有相同类名称的类 GUID,因此对特定类的 INF 文件感兴趣的调用方 (即,特定类 GUID) 应通过调用 SetupQueryInfVersionInformation 从 INF 文件中检索 ClassGUID 值。

对于旧 INF 文件, InfClass 字符串必须与 INF 文件中 的 Identification 节的 OptionType 值中指定的类型匹配 (例如 OptionType=NetAdapter) 。

注意

setupapi.h 标头将 SetupOpenInfFile 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 setupapi.h
Library Setupapi.lib
DLL Setupapi.dll
API 集 ext-ms-win-setupapi-inf-l1-1-0 (引入Windows 8)

请参阅

函数

概述

SetupCloseInfFile

SetupGetInfInformation

SetupOpenAppendInfFile