Condividi tramite


Estrazione delle informazioni sui file dal file INF

Dopo aver aperto il file INF, è possibile raccogliere informazioni da esso per compilare l'interfaccia utente o per indirizzare il processo di installazione. Le funzioni di installazione forniscono diversi livelli di funzionalità per raccogliere informazioni da un file INF.

Per raccogliere informazioni... Usare queste funzioni...
Informazioni sul file INF SetupGetInfInformation
  SetupQueryInfFileInformation
  SetupQueryInfVersionInformation.
Informazioni sui file di origine e di destinazione SetupGetSourceFileLocation
  SetupGetSourceFileSize
  SetupGetTargetPath
  SetupGetSourceInfo
Da una riga di un file INF SetupGetLineText
  SetupFindNextLine
  SetupFindNextMatchLine
  SetupGetLineByIndex
  SetupFindFirstLine
Da un campo di una riga in un file INF SetupGetStringField
  SetupGetIntField
  SetupGetBinaryField
  SetupGetMultiSzField

 

Nell'esempio seguente viene utilizzata la funzione SetupGetSourceInfo per recuperare la descrizione leggibile di un supporto di origine da un file 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;
}

Nell'esempio MyInf è l'handle per il file INF aperto. SourceId è l'identificatore di un supporto di origine specifico. Il valore SRCINFO_DESCRIPTION specifica che la funzione SetupGetSourceInfo deve recuperare la descrizione del supporto di origine. Buffer punta a una stringa che riceverà la descrizione, MaxBufSize indica le risorse allocate al buffer e BufSize indica le risorse necessarie per archiviare il buffer.

Se BufSize è maggiore di MaxBufSize, la funzione restituirà FALSE e una chiamata successiva a GetLastError restituirà ERROR_INSUFFICIENT_BUFFER.