Función SetupGetBinaryField (setupapi.h)
[Esta función está disponible para su uso en los sistemas operativos indicados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. SetupAPI ya no debe usarse para instalar aplicaciones. En su lugar, use Windows Installer para desarrollar instaladores de aplicaciones. SetupAPI sigue utilizándose para instalar controladores de dispositivo.
La función SetupGetBinaryField recupera datos binarios de una línea de una sección de archivo INF, desde el campo especificado hasta el final de la línea.
Sintaxis
WINSETUPAPI BOOL SetupGetBinaryField(
[in] PINFCONTEXT Context,
[in] DWORD FieldIndex,
[in, out] PBYTE ReturnBuffer,
[in] DWORD ReturnBufferSize,
[in, out] LPDWORD RequiredSize
);
Parámetros
[in] Context
Contexto INF de la línea.
[in] FieldIndex
Índice basado en 1 del campo inicial dentro de la línea especificada desde la que se deben recuperar los datos binarios. Los datos binarios se crean a partir de cada campo, empezando en este punto hasta el final de la línea. Cada campo corresponde a 1 byte y está en notación hexadecimal. FieldIndex de cero no es válido con esta función.
[in, out] ReturnBuffer
Puntero opcional a un búfer que recibe los datos binarios. Debe asegurarse de que el búfer de destino tenga el mismo tamaño o mayor que el búfer de origen. Puede llamar a la función una vez para obtener el tamaño de búfer necesario, asignar la memoria necesaria y, a continuación, llamar a la función una segunda vez para recuperar los datos. Con esta técnica, puede evitar errores debido a un tamaño de búfer insuficiente. Consulte la sección Comentarios.
[in] ReturnBufferSize
Tamaño del búfer al que apunta ReturnBuffer, en caracteres. Este número incluye el terminador null .
[in, out] RequiredSize
Puntero opcional a una variable que recibe el tamaño necesario para el búfer al que apunta ReturnBuffer, en caracteres. Este número incluye el terminador null . Si el tamaño necesario es mayor que el valor especificado por ReturnBufferSize, se produce un error en la función y se devuelve una llamada a GetLastError ERROR_INSUFFICIENT_BUFFER.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
GetLastError devuelve ERROR_INVALID_DATA si un campo que setupGetBinaryField recupera no es un número hexadecimal válido en el intervalo 0-FF.
Comentarios
Si se llama a esta función con returnBuffer de NULL y returnBufferSize de cero, la función coloca el tamaño del búfer necesario para contener los datos especificados en la variable a la que apunta RequiredSize. Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero. De lo contrario, el valor devuelto es cero y se puede obtener información de error extendida llamando a GetLastError.
Para comprender mejor cómo funciona esta función, tenga en cuenta la siguiente línea desde un archivo INF.
X=34,FF,00,13
Si se llamó a SetupGetBinaryField en la línea anterior, los valores binarios 34, FF, 00 y 13 se colocarían en el búfer especificado por ReturnBuffer.
Para la versión Unicode de esta función, los tamaños de búfer ReturnBufferSize y RequiredSize se especifican en número de caracteres. Este número incluye el terminador null . Para la versión ANSI de esta función, los tamaños se especifican en número de bytes.
Si se llama a esta función con returnBuffer de NULL y returnBufferSize de cero, la función coloca el tamaño del búfer necesario para contener los datos especificados en la variable a la que apunta RequiredSize. Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero. De lo contrario, el valor devuelto es cero y se puede obtener información de error extendida llamando a GetLastError.
Por lo tanto, puede llamar a la función una vez para obtener el tamaño de búfer necesario, asignar la memoria necesaria y, a continuación, llamar a la función una segunda vez para recuperar los datos. Con esta técnica, puede evitar errores debido a un tamaño de búfer insuficiente.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | setupapi.h |
Library | Setupapi.lib |
Archivo DLL | Setupapi.dll |