SetupDiGetActualSectionToInstallA 函数 (setupapi.h)

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

语法

WINSETUPAPI BOOL SetupDiGetActualSectionToInstallA(
  [in]            HINF   InfHandle,
  [in]            PCSTR  InfSectionName,
  [out, optional] PSTR   InfSectionWithExt,
  [in]            DWORD  InfSectionWithExtSize,
  [out, optional] PDWORD RequiredSize,
  [out, optional] PSTR   *Extension
);

参数

[in] InfHandle

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

[in] InfSectionName

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

[out, optional] InfSectionWithExt

指向字符缓冲区的指针,用于接收 DDInstall 节名称、其平台扩展和 NULL 终止符。 这是应用于安装的修饰节名称。 如果此参数为 NULL则 InfSectionWithExtSize 必须为零。 如果此参数为 NULL,则函数返回 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

驱动程序节点中指定的原始 DDInstall 节名称将写入驱动程序的注册表项的 InfSection 值条目。 找到的扩展作为REG_SZ值 InfSectionExt 存储在密钥中。 例如:

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)
Library Setupapi.lib

另请参阅

INF DDInstall 节

SetupDiGetActualSectionToInstallEx

SetupDiInstallDevice