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,则该函数将失败,并且调用 getLastError 将返回ERROR_INSUFFICIENT_BUFFER。

言论

若要确定在驱动程序存储中包含指定 INF 文件的完全限定文件名所需的返回缓冲区的大小,请调用 setupGetInfDriverStoreLocation,并将 returnBuffer 设置为 NULLReturnBufferSize 为零,并提供 requiredSizeSetupGetInfDriverStoreLocation 将在 requiredSize中返回所需的缓冲区大小。

当设备安装预安装在驱动程序存储中 驱动程序包 时,它将创建驱动程序包 INF 文件的两个副本。 设备安装会在系统 INF 目录中安装一个副本,并为 INF 文件分配唯一 已发布的文件名OEMnnn.inf。 设备安装会在驱动程序存储中安装 INF 文件的第二个副本,并分配复制原始 INF 文件名。

SetupGetInfDriverStoreLocation 在驱动程序存储中返回与 INF 文件匹配的 INF 文件的完全限定文件名(如果有的话)由 FileName提供。 文件名 必须指定系统 INF 目录中 INF 文件的文件名和目录路径( 可选)。 或者,文件名 必须在驱动程序存储中指定 INF 文件的完全限定文件名。

例如,假设驱动程序包的 INF 文件 Myinf.inf,以及此驱动程序包的 INF 文件, 设备安装会在系统 INF 目录 C:\Windows\inf 中安装 OEM1.inf INF 文件。 进一步假设设备安装安装相应的 INF 文件副本 C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf 驱动程序存储中。 在这种情况下,如果 FileName 提供以下字符串之一,则函数返回 C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf: OEM1.inf、C:\Windows\inf\OEM1.inf,或 C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf。

类安装程序共同安装程序 可以使用 SetupGetInfDriverStoreLocation 访问预安装在驱动程序存储中的 驱动程序包 中的文件。 若要确定驱动程序存储中驱动程序包的路径,安装程序将执行以下操作:

  1. 调用 SetupDiGetDriverInfoDetail 以检索驱动程序的 SP_DRVINFO_DETAIL_DATA 结构。 此结构的 InfFileName 成员包含系统 INF 目录中驱动程序 INF 文件的完全限定文件名。
  2. 调用 SetupGetInfDriverStoreLocation 并提供通过调用 SetupDiGetDriverInfoDetail检索的驱动程序 INF 文件的完全限定文件名。 SetupGetInfDriverStoreLocation 将返回驱动程序存储中驱动程序 INF 文件的完全限定文件名。 INF 文件的完全限定文件名的目录路径部分是 驱动程序包 文件的路径。
注意SetupGetInfDriverStoreLocation 不处理在 fileName 中指定的 INF 文件的内容。 不能使用此函数对驱动程序存储中的 INF 文件执行特定于内容的搜索。
 
调用 SetupGetInfPublishedName 函数,以检索系统 INF 文件目录中 INF 文件 的完全限定文件名,该文件对应于系统 INF 文件目录中的指定 INF 文件或驱动程序存储中的指定文件。

注意

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

要求

要求 价值
最低支持的客户端 在 Windows Vista 和更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Setupapi.lib

另请参阅

SP_ALTPLATFORM_INFO

SP_DRVINFO_DETAIL_DATA

SetupDiGetDriverInfoDetail

SetupGetInfPublishedName