Compartilhar via


Função SetupGetBinaryField (setupapi.h)

[Essa função está disponível para uso nos sistemas operacionais indicados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. SetupAPI não deve mais ser usado para instalar aplicativos. Em vez disso, use o Windows Installer para desenvolver instaladores de aplicativos. SetupAPI continua a ser usado para instalar drivers de dispositivo.]

A função SetupGetBinaryField recupera dados binários de uma linha em uma seção de arquivo INF, do campo especificado até o final da linha.

Sintaxe

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 para a linha.

[in] FieldIndex

O índice baseado em 1 do campo inicial dentro da linha especificada da qual os dados binários devem ser recuperados. Os dados binários são criados a partir de cada campo, começando neste ponto até o final da linha. Cada campo corresponde a 1 byte e está em notação hexadecimal. Um FieldIndex de zero não é válido com essa função.

[in, out] ReturnBuffer

Ponteiro opcional para um buffer que recebe os dados binários. Você deve garantir que o buffer de destino tenha o mesmo tamanho ou maior que o buffer de origem. Você pode chamar a função uma vez para obter o tamanho do buffer necessário, alocar a memória necessária e, em seguida, chamar a função uma segunda vez para recuperar os dados. Usando essa técnica, você pode evitar erros devido a um tamanho de buffer insuficiente. Consulte a seção Comentários.

[in] ReturnBufferSize

Tamanho do buffer apontado por ReturnBuffer, em caracteres. Esse número inclui o terminador nulo .

[in, out] RequiredSize

Ponteiro opcional para uma variável que recebe o tamanho necessário para o buffer apontado para ReturnBuffer, em caracteres. Esse número inclui o terminador nulo . Se o tamanho necessário for maior do que o valor especificado por ReturnBufferSize, a função falhará e uma chamada para GetLastError retornará ERROR_INSUFFICIENT_BUFFER.

Valor retornado

Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

GetLastError retornará ERROR_INVALID_DATA se um campo recuperado por SetupGetBinaryField não for um número hexadecimal válido no intervalo de 0-FF.

Comentários

Se essa função for chamada com um ReturnBuffer de NULL e um ReturnBufferSize de zero, a função colocará o tamanho do buffer necessário para manter os dados especificados na variável apontada por RequiredSize. Se a função tiver êxito nisso, o valor retornado será um valor diferente de zero. Caso contrário, o valor retornado será zero e as informações de erro estendidas poderão ser obtidas chamando GetLastError.

Para entender melhor como essa função funciona, considere a linha a seguir de um arquivo INF.

X=34,FF,00,13

Se SetupGetBinaryField fosse chamado na linha anterior, os valores binários 34, FF, 00 e 13 seriam colocados no buffer especificado por ReturnBuffer.

Para a versão Unicode dessa função, os tamanhos de buffer ReturnBufferSize e RequiredSize são especificados em número de caracteres. Esse número inclui o terminador nulo . Para a versão ANSI dessa função, os tamanhos são especificados em número de bytes.

Se essa função for chamada com um ReturnBuffer de NULL e um ReturnBufferSize de zero, a função colocará o tamanho do buffer necessário para manter os dados especificados na variável apontada por RequiredSize. Se a função tiver êxito nisso, o valor retornado será um valor diferente de zero. Caso contrário, o valor retornado será zero e as informações de erro estendidas poderão ser obtidas chamando GetLastError.

Assim, você pode chamar a função uma vez para obter o tamanho do buffer necessário, alocar a memória necessária e, em seguida, chamar a função uma segunda vez para recuperar os dados. Usando essa técnica, você pode evitar erros devido a um tamanho de buffer insuficiente.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho setupapi.h
Biblioteca Setupapi.lib
DLL Setupapi.dll

Confira também

Funções

Visão geral

SetupGetIntField

SetupGetMultiSzField

SetupGetStringField