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


Функция SetupGetMultiSzFieldA (setupapi.h)

[Эта функция доступна для использования в операционных системах, указанных в разделе "Требования". Он может быть изменен или недоступен в последующих версиях. SetupAPI больше не следует использовать для установки приложений. Вместо этого используйте установщик Windows для разработки установщиков приложений. SetupAPI по-прежнему используется для установки драйверов устройств.]

Функция установки SetupGetMultiSzField извлекает несколько строк, хранящихся в строке INF-файла, из указанного поля до конца строки.

Синтаксис

WINSETUPAPI BOOL SetupGetMultiSzFieldA(
  [in]      PINFCONTEXT Context,
  [in]      DWORD       FieldIndex,
  [in, out] PSTR        ReturnBuffer,
  [in]      DWORD       ReturnBufferSize,
  [in]      LPDWORD     RequiredSize
);

Параметры

[in] Context

Указатель на контекст строки в INF-файле.

[in] FieldIndex

1-й индекс начального поля в указанной строке, из которой должны быть извлечены строки. Список строк создается из каждого поля, начиная с этого момента до конца строки. FieldIndex недействительна с этой функцией.

[in, out] ReturnBuffer

Необязательный указатель на буфер символов, получающий строки. Каждая строка null-endd, с дополнительным null в конце списка строк. Строка null-terminated не должна превышать размер целевого буфера. Вы можете вызвать функцию один раз, чтобы получить необходимый размер буфера, выделить необходимую память, а затем вызвать функцию во второй раз, чтобы получить данные. С помощью этого метода можно избежать ошибок из-за недостаточного размера буфера. См. раздел "Примечания". Этот параметр может быть NULL.

[in] ReturnBufferSize

Размер буфера, на который указывает ReturnBuffer, в символах. Это включает в себя null конца.

[in] RequiredSize

Необязательный указатель на переменную, которая получает размер буфера, на который указывает ReturnBuffer, в символах. Это включает в себя null конца. Если необходимый размер превышает значение, указанное ReturnBufferSize, функция завершается ошибкой и вызовом GetLastError возвращается ERROR_INSUFFICIENT_BUFFER.

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

Если функция выполнена успешно, возвращаемое значение является ненулевое значение.

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

Замечания

Если эта функция вызывается с ReturnBufferNULL и ReturnBufferSize нуля, функция помещает размер буфера, необходимый для хранения указанных данных в переменную, на которую указывает RequiredSize. Если функция выполнена успешно, возвращаемое значение ненулевое значение. В противном случае возвращаемое значение равно нулю и расширенным сведениям об ошибке можно получить путем вызова GetLastError.

SetupGetMultiSzField не следует использовать для итерации строковых значений в строке INF. Вместо этого следует использовать SetupGetStringField. SetupGetMultiSzField возвращает значение в формате REG_MULTI_SZ. Это массив строк null-terminated strings, завершаемых дополнительным символом null. Этот формат не разрешает строки нулевой длины. Если список строк содержит любые строки нулевой длины, SetupGetMultiSzField возвращается преждевременно, когда оно обнаруживает первое пустое строковое значение.

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка setupapi.h
библиотеки Setupapi.lib
DLL Setupapi.dll
набор API ext-ms-win-setupapi-inf-l1-1-1 (представлено в Windows 10 версии 10.0.14393)

См. также

Функции

Обзор

SetupGetBinaryField

SetupGetIntField

SetupGetStringField