Поделиться через


Функция 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

Дескриптор INF-файла, содержащий раздел DDInstall.

[in] InfSectionName

Указатель на имя раздела DDInstall (как указано в разделе INF Models). Максимальная длина имени раздела в символах составляет 254.

[out, optional] InfSectionWithExt

Указатель на буфер символов для получения имени раздела DDInstall, расширения платформы и конца NULL. Это украшенное имя раздела, которое должно использоваться для установки. Если этот параметр NULL, InfSectionWithExtSize должно быть равно нулю. Если этот параметр NULL, функция возвращает TRUE и задает RequiredSize размеру в символах, которые требуются для возврата имени раздела DDInstall, расширения платформы и конца символа NULL.

[in] InfSectionWithExtSize

Размер в символах буфера InfSectionWithExt. Если InfSectionWithExtNULL, этот параметр должен быть равен нулю.

[out, optional] RequiredSize

Указатель на переменную, получающую размер символов, которая требуется для возврата имени раздела DDInstall DDInstall, расширения платформы и конца символа NULL.

[out, optional] Extension

Указатель на переменную, получающую указатель на символ ".", который отмечает начало расширения в буфере InfSectionWithExt. Если буфер InfSectionWithExt не указан или слишком мал, этот параметр не задан. Задайте для этого параметра значение NULL, если указатель на расширение не требуется.

Возвращаемое значение

Если функция выполнена успешно, она возвращает TRUE. Если функция завершается ошибкой, она возвращает FALSE. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Эта функция поддерживает расширения для имен разделов DDInstall, которые используются для указания поведения установки для конкретной ОС и архитектуры для устройства. Дополнительные сведения об этих расширениях см. в создании 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, указанное в узле драйвера, записывается в infSec tion раздела реестра драйвера. Найденное расширение хранится в ключе в качестве значения REG_SZ InfSectionExt. Например:

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

Если драйвер не выбран для указанного элемента сведений об устройстве, устанавливается драйвер NULL. По возвращении флаги в структуре SP_DEVINSTALL_PARAMS устройства указывают, следует ли перезапустить или перезагрузить систему, чтобы запустить устройство.

Заметка

Заголовок setupapi.h определяет SetupDiGetActualSectionToInstall как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
целевая платформа Настольный
заголовка setupapi.h (include Setupapi.h)
библиотеки Setupapi.lib

См. также

раздел INF DDInstall

SetupDiGetActualSectionToInstallEx

SetupDiInstallDevice