Compartilhar via


Extraindo informações de arquivo do arquivo INF

Depois que o arquivo INF for aberto, você poderá coletar informações dele para criar a interface do usuário ou direcionar o processo de instalação. As funções de instalação fornecem vários níveis de funcionalidade para coletar informações de um arquivo INF.

Para coletar informações... Use essas funções...
Sobre o arquivo INF SetupGetInfInformation
  SetupQueryInfFileInformation
  SetupQueryInfVersionInformation.
Sobre arquivos de origem e de destino SetupGetSourceFileLocation
  SetupGetSourceFileSize
  SetupGetTargetPath
  SetupGetSourceInfo
De uma linha de um arquivo INF SetupGetLineText
  SetupFindNextLine
  SetupFindNextMatchLine
  SetupGetLineByIndex
  SetupFindFirstLine
De um campo de uma linha em um arquivo INF SetupGetStringField
  SetupGetIntField
  SetupGetBinaryField
  SetupGetMultiSzField

 

O exemplo a seguir usa a função SetupGetSourceInfo para recuperar a descrição legível por humanos de uma mídia de origem de um arquivo 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;
}

No exemplo, MyInf é o identificador para o arquivo INF aberto. SourceId é o identificador de uma mídia de origem específica. O valor SRCINFO_DESCRIPTION especifica que a função SetupGetSourceInfo deve recuperar a descrição da mídia de origem. O buffer aponta para uma cadeia de caracteres que receberá a descrição, MaxBufSize indica os recursos alocados para o buffer e BufSize indica os recursos necessários para armazenar o buffer.

Se BufSize for maior que MaxBufSize, a função retornará FALSE e uma chamada subsequente para GetLastError retornará ERROR_INSUFFICIENT_BUFFER.