SetupGetInfDriverStoreLocationW 函数 (setupapi.h)
SetupGetInfDriverStoreLocation 函数检索驱动程序存储中 INF 文件 的完全限定文件名(目录路径和文件名),该文件对应于系统 INF 文件目录中的指定 INF 文件或驱动程序存储中的指定 INF 文件。
语法
WINSETUPAPI BOOL SetupGetInfDriverStoreLocationW(
[in] PCWSTR FileName,
[in, optional] PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
[in, optional] PCWSTR LocaleName,
[out] PWSTR ReturnBuffer,
[in] DWORD ReturnBufferSize,
[out, optional] PDWORD RequiredSize
);
参数
[in] FileName
指向 NULL 终止的字符串的指针,该字符串包含系统 INF 文件目录中 INF 文件的名称和完整目录路径( 可选)。 或者,此参数是指向以 NULL 结尾的字符串的指针,该字符串包含驱动程序存储中 INF 文件的完全限定文件名(目录路径和文件名)。
有关如何指定 INF 文件的详细信息,请参阅以下 备注 部分。
[in, optional] AlternatePlatformInfo
保留供系统使用。
[in, optional] LocaleName
保留供系统使用。
[out] ReturnBuffer
指向缓冲区的指针,其中函数返回一个 NULL 终止的字符串,其中包含指定 INF 文件的完全限定文件名。 此参数可以设置为 NULL。 支持的最大路径大小为MAX_PATH。 有关如何确定缓冲区所需的大小的信息,请参阅以下 备注 部分。
[in] ReturnBufferSize
returnBuffer 提供的缓冲区的大小(以字符为单位)。
[out, optional] RequiredSize
指向接收 ReturnBuffer 缓冲区的大小(以字符为单位)的 DWORD 类型的变量的指针。 此参数是可选的,可以设置为 NULL。
返回值
如果 SetupGetInfDriverStoreLocation 成功,则函数返回 true ;否则,该函数返回 FALSE。 若要获取扩展的错误信息,请调用 GetLastError。
如果请求的 INF 文件(包括 null 终止符)的完全限定文件名的大小大于 returnBufferSize
言论
若要确定在驱动程序存储中包含指定 INF 文件的完全限定文件名所需的返回缓冲区的大小,
当设备安装预安装在驱动程序存储中 驱动程序包 时,它将创建驱动程序包 INF 文件的两个副本。 设备安装会在系统 INF 目录中安装一个副本,并为 INF 文件分配唯一 已发布的文件名,OEMnnn.inf。 设备安装会在驱动程序存储中安装 INF 文件的第二个副本,并分配复制原始 INF 文件名。
SetupGetInfDriverStoreLocation 在驱动程序存储中返回与 INF 文件匹配的 INF 文件的完全限定文件名(如果有的话)由 FileName提供。 文件名 必须指定系统 INF 目录中 INF 文件的文件名和目录路径( 可选)。 或者,文件名 必须在驱动程序存储中指定 INF 文件的完全限定文件名。
例如,假设驱动程序包的 INF 文件
类安装程序 和 共同安装程序 可以使用 SetupGetInfDriverStoreLocation 访问预安装在驱动程序存储中的 驱动程序包 中的文件。 若要确定驱动程序存储中驱动程序包的路径,安装程序将执行以下操作:
- 调用 SetupDiGetDriverInfoDetail 以检索驱动程序的 SP_DRVINFO_DETAIL_DATA 结构。 此结构的 InfFileName 成员包含系统 INF 目录中驱动程序 INF 文件的完全限定文件名。
- 调用 SetupGetInfDriverStoreLocation 并提供通过调用 SetupDiGetDriverInfoDetail检索的驱动程序 INF 文件的完全限定文件名。 SetupGetInfDriverStoreLocation 将返回驱动程序存储中驱动程序 INF 文件的完全限定文件名。 INF 文件的完全限定文件名的目录路径部分是 驱动程序包 文件的路径。
注意
setupapi.h 标头将 SetupGetInfDriverStoreLocation 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows 中可用。 |
目标平台 | 桌面 |
标头 | setupapi.h (包括 Setupapi.h) |
库 | Setupapi.lib |