Compartir a través de


Extracción de información de archivo del archivo INF

Una vez abierto el archivo INF, puede recopilar información de él para compilar la interfaz de usuario o para dirigir el proceso de instalación. Las funciones de instalación proporcionan varios niveles de funcionalidad para recopilar información de un archivo INF.

Para recopilar información... Use estas funciones...
Acerca del archivo INF SetupGetInfInformation
  SetupQueryInfFileInformation
  SetupQueryInfVersionInformation.
Acerca de los archivos de origen y destino SetupGetSourceFileLocation
  SetupGetSourceFileSize
  SetupGetTargetPath
  SetupGetSourceInfo
Desde una línea de un archivo INF SetupGetLineText
  SetupFindNextLine
  SetupFindNextMatchLine
  SetupGetLineByIndex
  SetupFindFirstLine
Desde un campo de una línea en un archivo INF SetupGetStringField
  SetupGetIntField
  SetupGetBinaryField
  SetupGetMultiSzField

 

En el ejemplo siguiente se usa la función SetupGetSourceInfo para recuperar la descripción legible de un medio de origen de un archivo 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;
}

En el ejemplo, MyInf es el identificador del archivo INF abierto. SourceId es el identificador de un medio de origen específico. El valor SRCINFO_DESCRIPTION especifica que la función SetupGetSourceInfo debe recuperar la descripción del medio de origen. El búfer apunta a una cadena que recibirá la descripción, MaxBufSize indica los recursos asignados al búfer y BufSize indica los recursos necesarios para almacenar el búfer.

Si BufSize es mayor que MaxBufSize, la función devolverá FALSE y una llamada posterior a GetLastError devolverá ERROR_INSUFFICIENT_BUFFER.