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


Извлечение сведений о файле из INF-файла

После открытия INF-файла можно собрать из него сведения для создания пользовательского интерфейса или для направления процесса установки. Функции установки предоставляют несколько уровней функциональности для сбора сведений из INF-файла.

Для сбора информации... Используйте эти функции...
Сведения о INF-файле SetupGetInfInformation
  SetupQueryInfFileInformation
  SetupQueryInfVersionInformation.
Сведения об исходных и целевых файлах SetupGetSourceFileLocation
  SetupGetSourceFileSize
  SetupGetTargetPath
  SetupGetSourceInfo
Из строки INF-файла SetupGetLineText
  SetupFindNextLine
  SetupFindNextMatchLine
  SetupGetLineByIndex
  SetupFindFirstLine
Из поля строки в INF-файле SetupGetStringField
  SetupGetIntField
  SetupGetBinaryField
  SetupGetMultiSzField

 

В следующем примере функция SetupGetSourceInfo используется для получения удобочитаемого описания исходного носителя из INF-файла.

#include <windows.h>
#include <setupapi.h>

BOOL test;  
HINF MyInf;
UINT SourceId;
PTSTR Buffer;
DWORD MaxBufSize;
DWORD BufSize;

int main()  
{ 

test = SetupGetSourceInfo (
     MyInf,   //Handle to the INF file to access                
     SourceId, //Id of the source media                 
     SRCINFO_DESCRIPTION, //which information to retrieve     
     Buffer, //a pointer to the buffer to receive the information                     
     MaxBufSize,  //the size allocated for the buffer 
     &BufSize    //buffer size actually needed
);
  
return 0;
}

В этом примере MyInf — это дескриптор открытого INF-файла. SourceId — это идентификатор для определенного исходного носителя. Значение SRCINFO_DESCRIPTION указывает, что функция SetupGetSourceInfo должна получить описание исходного носителя. Buffer указывает на строку, которая получит описание, MaxBufSize — ресурсы, выделенные буферу, а BufSize — ресурсы, необходимые для хранения буфера.

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