SetupDiGetActualSectionToInstallW 函数 (setupapi.h)

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

语法

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

指向 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,则 Services 节名称必须命名为 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