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=Net)的类值匹配。 如果类值中没有条目,但在 Version 节中有 ClassGUID 的条目,则会检索该 GUID 的相应类名称并用于比较。
[in] InfStyle
要打开或搜索的 INF 文件的样式。 此参数可以是以下标志的组合。
INF_STYLE_OLDNT
旧版 INF 文件格式。
INF_STYLE_WIN4
Windows INF 文件格式。
[in] ErrorLine
指向此函数返回的变量(基于 1)行号的变量的可选指针,其中加载 INF 文件时出错。 仅当 GetLastError 不返回ERROR_NOT_ENOUGH_MEMORY时
返回值
如果打开的 INF 文件成功,该函数将返回句柄。 否则,返回值INVALID_HANDLE_VALUE。 可以通过调用 getLastError 来检索扩展错误信息。
言论
如果加载失败,因为 INF 文件类型与 InfClass不匹配
如果指定了多个 INF 文件样式,则可以通过调用 setupGetInfInfInformation 函数来确定打开的 INF 文件的样式。
由于可能有多个具有相同类名的类 GUID,因此对特定类(即特定类 GUID)的 INF 文件感兴趣的调用方应通过调用 setupQueryInfVersionInformation从 INF 文件中检索 ClassGUID 值。
对于旧版 INF 文件,InfClass 字符串必须与 INF 文件中 标识 节的 OptionType 值中指定的类型匹配(例如 OptionType=NetAdapter)。
注意
setupapi.h 标头将 SetupOpenInfFile 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | setupapi.h |
库 | Setupapi.lib |
DLL | Setupapi.dll |
API 集 | ext-ms-win-setupapi-inf-l1-1-0(在 Windows 8 中引入) |