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


Функция 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, а в конце списка строк — дополнительный null . Строка, завершающаяся значением NULL, не должна превышать размер буфера назначения. Вы можете вызвать функцию один раз, чтобы получить требуемый размер буфера, выделить необходимую память, а затем вызвать функцию во второй раз, чтобы получить данные. С помощью этого метода можно избежать ошибок из-за недостаточного размера буфера. См. раздел «Примечания». Этот параметр может принимать значение NULL.

[in] ReturnBufferSize

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

[in] RequiredSize

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

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

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

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

Комментарии

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

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header setupapi.h
Библиотека Setupapi.lib
DLL Setupapi.dll
Набор API ext-ms-win-setupapi-inf-l1-1-1 (появилось в Windows 10 версии 10.0.14393)

См. также

Функции

Обзор

SetupGetBinaryField

SetupGetIntField

SetupGetStringField