Share via


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

Vea también

Funciones

Información general

SetupGetIntField

SetupGetMultiSzField

SetupGetStringField