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


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

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

Функция SetupGetStringField извлекает строку из указанного поля строки в INF-файле.

Синтаксис

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

Параметры

[in] Context

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

[in] FieldIndex

1-й индекс поля в указанной строке, из которой должна быть получена строка. Используйте FieldIndex 0, чтобы получить строковый ключ, если он присутствует.

[in, out] ReturnBuffer

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

[in] ReturnBufferSize

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

[out] RequiredSize

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

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

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

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

Замечания

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

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

Обратите внимание, что максимальная длина любой одной строки, указанной в разделе INF Strings, составляет 512 символов, включая завершение NULL. Если длина строки больше 512, она будет усечена и не будет возвращена ошибка. Максимальная длина любой сцепленной строки, созданной из одного или нескольких маркеров %strkey%, составляет 4096 символов.

Заметка

Заголовок setupapi.h определяет SetupGetStringField как псевдоним, который автоматически выбирает версию 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

SetupGetMultiSzField