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.