Dela via


Extrahera filinformation från INF-filen

När INF-filen har öppnats kan du samla in information från den för att skapa användargränssnittet eller för att dirigera installationsprocessen. Installationsfunktionerna innehåller flera funktioner för att samla in information från en INF-fil.

För att samla in information... Använd dessa funktioner...
Om INF-filen SetupGetInfInformation
  SetupQueryInfFileInformation
  SetupQueryInfVersionInformation.
Om käll- och målfiler SetupGetSourceFileLocation
  InstalleraHämtaKällfilStorlek
  SetupGetTargetPath
  SetupGetSourceInfo
Från en rad i en INF-fil SetupGetLineText
  SetupFindNextLine
  SetupFindNextMatchLine
  SetupGetLineByIndex
  SetupFindFirstLine
Från ett fält på en rad i en INF-fil SetupGetStringField
  SetupGetIntField
  SetupGetBinaryField
  SetupGetMultiSzField

 

I följande exempel används funktionen SetupGetSourceInfo för att hämta den läsbara beskrivningen av ett källmedium från en INF-fil.

#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;
}

I exemplet är MyInf hanteraren till den öppna INF-filen. SourceId är identifieraren för ett specifikt källmedium. Värdet SRCINFO_DESCRIPTION anger att funktionen SetupGetSourceInfo ska hämta beskrivningen av källmediet. Buffert pekar på en sträng som tar emot beskrivningen, MaxBufSize anger de resurser som allokerats till bufferten och BufSize anger de resurser som krävs för att lagra bufferten.

Om BufSize är större än MaxBufSize returnerar funktionen FALSEoch ett efterföljande anrop till GetLastError- returnerar ERROR_INSUFFICIENT_BUFFER.