Функция SetupDiGetActualSectionToInstallExW (setupapi.h)
Функция SetupDiGetActualSectionToInstallEx извлекает имя раздела INF DDInstall , который устанавливает устройство для указанной операционной системы и архитектуры процессора.
Синтаксис
WINSETUPAPI BOOL SetupDiGetActualSectionToInstallExW(
[in] HINF InfHandle,
[in] PCWSTR InfSectionName,
[in, optional] PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
[out, optional] PWSTR InfSectionWithExt,
[in] DWORD InfSectionWithExtSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PWSTR *Extension,
PVOID Reserved
);
Параметры
[in] InfHandle
Дескриптор INF-файла, содержащего раздел DDInstall .
[in] InfSectionName
Указатель на имя раздела DDInstall (как указано в разделе МОДЕЛИ INF). Максимальная длина имени раздела в символах составляет 254.
[in, optional] AlternatePlatformInfo
Указатель на структуру SP_ALTPLATFORM_INFO, если значение не равно NULL. Эта структура используется для указания архитектуры операционной системы и процессора, отличающейся от архитектуры на локальном компьютере. Чтобы вернуть имя раздела DDInstall для локального компьютера, задайте для этого параметра значение NULL. В противном случае укажите структуру SP_ALTPLATFORM и задайте ее члены следующим образом:
cbSize
Задайте размер структуры SP_ALTPLATFORM_INFO в байтах.
Платформа
Задайте значение VER_PLATFORM_WIN32_NT для Windows XP и более поздних версий Windows.
MajorVersion
Не используется.
MinorVersion
Не используется.
ProcessorArchitecture
Задайте одну из следующих констант архитектуры процессора.
Константная архитектуры процессора | Значение |
---|---|
PROCESSOR_ARCHITECTURE_INTEL | Альтернативная платформа — архитектура процессора на основе x86. |
PROCESSOR_ARCHITECTURE_IA64 | Альтернативная платформа — архитектура процессоров на основе Itanium. |
PROCESSOR_ARCHITECTURE_AMD64 | Альтернативная платформа — архитектура процессора на основе x64. |
Зарезервировано
Задайте нулевое значение.
[out, optional] InfSectionWithExt
Указатель на буфер символов для получения имени раздела DDInstall , его расширения платформы и признака конца NULL. Это декорированное имя раздела, которое следует использовать для установки. Если этот параметр имеет значение NULL, функция возвращает значение TRUE и присваивает RequiredSize размер в символах, необходимый для возврата имени раздела DDInstall , его расширения платформы и завершающего символа NULL.
[in] InfSectionWithExtSize
Размер (в символах) буфера, на который указывает параметр InfSectionWithExt . Максимальная длина имени раздела INF, завершаемого значением NULL, в символах MAX_INF_SECTION_NAME_LENGTH.
[out, optional] RequiredSize
Указатель на переменную, которая получает размер в символах, необходимый для возврата имени раздела DDInstall , расширения платформы и завершающего символа NULL.
[out, optional] Extension
Указатель на переменную, получающую указатель на символ ".", который отмечает начало расширения в буфере InfSectionWithExt . Если буфер InfSectionWithExt не указан или слишком мал, этот параметр не задан. Присвойте этому параметру значение NULL , если указатель на расширение не требуется.
Reserved
Зарезервировано только для внутреннего использования. Необходимо задать значение NULL.
Возвращаемое значение
Если функция выполнена успешно, возвращается значение TRUE. В противном случае возвращается значение FALSE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
SetupDiGetActualSectionToInstallEx — это расширенная форма SetupDiGetActualSectionToInstall. Эти функции поддерживают расширения для имен разделов DDInstall , которые используются для указания действий установки для конкретной ОС и архитектуры для устройства. Сведения об этих расширениях см. в статье Создание ФАЙЛОВ INF для нескольких платформ и операционных систем.
Если вы не предоставляете сведения о альтернативной платформе с помощью вызова SetupDiGetActualSectionToInstallEx, функция выполняет ту же операцию, что и SetupDiGetActualSectionToInstall. Последняя функция ищет указанное имя раздела установки, используя сведения о платформе для локального компьютера.
Если вы предоставляете сведения о альтернативной платформе с помощью вызова SetupDiGetActualSectionToInstallEx, функция выполняет следующие действия:
-
Если указать платформу VER_PLATFORM_WIN32_NT, функция сначала ищет в указанном INF-файле декорированное имя раздела установки, соответствующее указанному имени, операционной системе и архитектуре процессора. Например, если указать имя раздела установки InstallSec, функция ищет одно из следующих декорированных имен в зависимости от указанной архитектуры процессора:
- Если указать архитектуру процессора на основе x86, функция ищет декорированное имя InstallSec.ntx86.
- Если указать архитектуру процессора на основе x64, функция ищет декорированное имя InstallSec.ntamd64.
- Если указать архитектуру процессора на основе Itanium, функция ищет декорированное имя InstallSec.ntia64.
Если функция находит совпадение для имени, операционной системы и архитектуры процессора, она завершает поиск и возвращает соответствующее декорированное имя. Если функция не находит такое совпадение, функция выполняет поиск раздела с именем InstallSec.nt. Если функция находит совпадение для InstallSec.nt, она завершает поиск и возвращает это имя. Если функция не находит совпадение для любого из указанных выше поисковых запросов, она возвращает InstallSec, но не проверяет, содержит ли INF-файл раздел установки с именем InstallSec.
Примечание
Заголовок setupapi.h определяет SetupDiGetActualSectionToInstallEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows XP и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | setupapi.h (включая Setupapi.h) |
Библиотека | Setupapi.lib |