SetupDiGetActualSectionToInstallW 函数 (setupapi.h)

SetupDiGetActualSectionToInstall 函数检索从本地计算机上安装设备 INF 文件时要使用的相应 INF DDInstall 节。

语法

WINSETUPAPI BOOL SetupDiGetActualSectionToInstallW(
  [in]            HINF   InfHandle,
  [in]            PCWSTR InfSectionName,
  [out, optional] PWSTR  InfSectionWithExt,
  [in]            DWORD  InfSectionWithExtSize,
  [out, optional] PDWORD RequiredSize,
  [out, optional] PWSTR  *Extension
);

参数

[in] InfHandle

包含 DDInstall 节的 INF 文件的句柄。

[in] InfSectionName

指向 DDInstall 节名称的指针(如 INF Models 节中指定的)。 节名称的最大长度(以字符为单位)为 254。

[out, optional] InfSectionWithExt

指向字符缓冲区的指针,用于接收 DDInstall 节名称、其平台扩展和 NULL 终止符。 这是应用于安装的修饰节名称。 如果此参数 NULL,则 InfSectionWithExtSize 必须为零。 如果此参数 NULL,则该函数将返回 TRUE TRUE,并将 RequiredSize 设置为返回 DDInstall 节名称、其平台扩展和终止 NULL 字符所需的大小。

[in] InfSectionWithExtSize

InfSectionWithExt 缓冲区的大小(以字符为单位)。 如果 InfSectionWithExtNULL,则此参数必须为零。

[out, optional] RequiredSize

指向接收大小(以字符为单位)的变量的指针,该变量返回 DDInstall 节名称、平台扩展和终止 NULL 字符。

[out, optional] Extension

指向接收指向“.”字符的指针的变量的指针,该字符在 InfSectionWithExt 缓冲区中标记扩展的开头。 如果未提供 InfSectionWithExt 缓冲区或太小,则不会设置此参数。 如果不需要指向扩展的指针,请将此参数设置为 NULL。

返回值

如果函数成功,则返回 true 。 如果该函数失败,则返回 FALSE。 若要获取扩展的错误信息,请调用 GetLastError。

言论

此函数支持 DDInstall 节名称的扩展,这些名称用于为设备指定特定于 OS 的安装行为和特定于体系结构的安装行为。 有关这些扩展的信息,请参阅 为多个平台和操作系统创建 INF 文件。 SetupDiGetActualSectionToInstall 搜索 DDInstall 节名称,该节名称与本地计算机匹配的方式如下。

该函数首先在指定的 INF 文件中搜索与指定名称匹配的修饰的安装节名称,并具有与本地计算机的操作系统和处理器体系结构匹配的扩展。 例如,如果指定 InstallSec的节名称,则函数将搜索以下修饰名称之一,具体取决于本地计算机的处理器体系结构:

  • 对于基于 x86 处理器体系结构的计算机,该函数在 InstallSec.ntx86搜索修饰名称。
  • 对于基于 x64 处理器体系结构的计算机,该函数在 InstallSec.ntamd64搜索修饰名称 。
  • 对于基于 Itanium 处理器体系结构的计算机,该函数在 InstallSec.ntia64搜索修饰名称。
如果函数查找名称、操作系统和处理器体系结构的匹配项,它将终止搜索并返回相应的修饰名称。 如果函数找不到此类匹配项,该函数将搜索名称为 InstallSec.NT 的节。 如果函数查找 InstallSec.NT的匹配项,它将终止搜索并返回此名称。 如果函数找不到上述任一搜索的匹配项,它将返回 InstallSec,但不验证 INF 文件是否包含名称 InstallSec的安装节。

DDInstall 节名称用作 硬件 和 服务 节名称的基础。 例如,如果找到的 DDInstall 节名称 InstallSec.NTX86,则必须 InstallSec.NTX86.Services命名 Services 节名称。

驱动程序节点中指定的原始 DDInstall 节名称将写入驱动程序的注册表项的 InfSection 值项。 找到的扩展以 infSectionExtREG_SZ 值的形式存储在密钥中。 例如:

InfSection       : REG_SZ :    "InstallSec"
InfSectionExt    : REG_SZ :    ".NTX86"

如果未为指定的设备信息元素选择驱动程序,则安装 null 驱动程序。 返回后,设备的 SP_DEVINSTALL_PARAMS 结构中的标志指示系统是应重启还是重新启动,以导致设备启动。

注意

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

要求

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

另请参阅

INF DDInstall 节

SetupDiGetActualSectionToInstallEx

SetupDiInstallDevice