Compartilhar via


Função SetupGetFileCompressionInfoExA (setupapi.h)

[Essa função está disponível para uso nos sistemas operacionais indicados na seção Requisitos. Ele pode estar alterado ou 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 SetupGetFileCompressionInfoEx examina um arquivo potencialmente compactado e obtém o tipo de compactação, o caminho completo do arquivo (incluindo o nome do arquivo), o tamanho compactado e o tamanho do arquivo de destino não compactado. O chamador da função passa o nome do arquivo a ser examinado e aponta para locais para que o buffer e o tamanho do buffer recebam o nome e o caminho do arquivo retornados.

Para determinar o tamanho do buffer para o caminho retornado e o nome do arquivo, você pode chamar SetupGetFileCompressionInfoEx com ActualSourceFileNameBuffer especificada Null e ActualSourceFileNameLen contendo 0. A função é bem-sucedida e, no retorno, preenche RequiredBufferLen.

Sintaxe

WINSETUPAPI BOOL SetupGetFileCompressionInfoExA(
  [in]      PCSTR  SourceFileName,
  [in, out] PSTR   ActualSourceFileNameBuffer,
  [in, out] DWORD  ActualSourceFileNameBufferLen,
  [out]     PDWORD RequiredBufferLen,
  [out]     PDWORD SourceFileSize,
  [out]     PDWORD TargetFileSize,
  [out]     PUINT  CompressionType
);

Parâmetros

[in] SourceFileName

Nome do arquivo potencialmente compactado a ser examinado. Se o arquivo não for encontrado na mídia de origem exatamente como nomeado, a Instalação procurará até dois nomes alternativos. Por exemplo; se a Instalação não encontrar F:\x86\cmd.exe, ela procurará F:\mpis\cmd.ex_ e, se esse nome não for encontrado, ele procurará F:\x86\cmd.ex$.

[in, out] ActualSourceFileNameBuffer

Ponteiro para um buffer que recebe o nome e o caminho do arquivo real se esse parâmetro não estiver NULL. Isso só será válido se a função retornar NO_ERROR.

[in, out] ActualSourceFileNameBufferLen

Tamanho do buffer especificado por ActualSourceFileNameBuffer, em caracteres. Normalmente, você usaria um tamanho de buffer de MAX_PATH. Se ActualSourceFileNameLen for muito pequena, a função falhará com ERROR_INSUFFICIENT_BUFFER. ActualSourceFileNameLen deverá conter zero se ActualSourceFileNameBuffer estiver NULL.

[out] RequiredBufferLen

Tamanho do nome do arquivo e do caminho completo, incluindo a terminação NULL, se esse parâmetro não estiver NULL. Se ActualSourceFileNameBuffer for NULL e ActualSourceFileNameLen for zero, a função será bem-sucedida, mas preencherá RequiredBufferLen. Esse parâmetro só será válido se a função retornar NO_ERROR ou ERROR_INSUFFICIENT_BUFFER.

[out] SourceFileSize

Ponteiro para uma variável na qual essa função retorna o tamanho do arquivo em seu formulário atual, que é o tamanho atual do arquivo nomeado por ActualSourceFileNameBuffer. O tamanho é determinado examinando o arquivo de origem; ele não é recuperado de um arquivo INF. O tamanho do arquivo de origem será válido somente se a função retornar NO_ERROR ou ERROR_INSUFFICIENT_BUFFER.

[out] TargetFileSize

Ponteiro para uma variável na qual essa função retorna o tamanho que o arquivo ocupará quando for descompactado ou copiado. Se o arquivo não for compactado, esse valor será o mesmo que SourceFileSize. O tamanho é determinado examinando o arquivo; ele não é recuperado de um arquivo INF. O tamanho do arquivo de destino será válido somente se a função retornar NO_ERROR ou ERROR_INSUFFICIENT_BUFFER.

[out] CompressionType

Ponteiro para uma variável na qual essa função retorna um valor que indica o tipo de compactação usada em ActualSourceFileName. O tipo de compactação só será válido se a função retornar NO_ERROR ou ERROR_INSUFFICIENT_BUFFER. Esse valor de parâmetro pode ser um dos sinalizadores a seguir.

FILE_COMPRESSION_NONE

O arquivo de origem não é compactado com um algoritmo de compactação reconhecido.

FILE_COMPRESSION_WINLZA

O arquivo de origem é compactado com compactação LZ.

FILE_COMPRESSION_MSZIP

O arquivo de origem é compactado com compactação MSZIP.

Valor de retorno

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

Se a função falhar, o valor retornado será FALSE (zero). A função também pode retornar um dos seguintes códigos de erro do sistema .

Para obter informações de erro estendidas, chame GetLastError.

Observações

Como SetupGetFileCompressionInfoEx determina a compactação examinando o arquivo físico, seu aplicativo de instalação deve garantir que o arquivo esteja presente antes de chamar SetupGetFileCompressionInfoEx.

Nota

O cabeçalho setupapi.h define SetupGetFileCompressionInfoEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho setupapi.h
biblioteca Setupapi.lib
de DLL Setupapi.dll

Consulte também

Funções

Visão geral

setupDecompressOrCopyFile