Função WofSetFileDataLocation (wofapi.h)

Usada para alterar o backup de um arquivo que foi feito por um arquivo físico para um backup feito pelo provedor de dados do sistema.

Sintaxe

HRESULT WofSetFileDataLocation(
  [in] HANDLE FileHandle,
  [in] ULONG  Provider,
  [in] PVOID  ExternalFileInfo,
  [in] ULONG  Length
);

Parâmetros

[in] FileHandle

Um identificador para um arquivo aberto com CreateFile ou uma API semelhante.

[in] Provider

Indica qual provedor está fazendo backup desse arquivo. Os provedores definidos no momento são:

WOF_PROVIDER_WIM Indica que os dados do arquivo devem ser obtidos de um arquivo WIM. No acesso, os dados são extraídos de forma transparente do arquivo WIM e fornecidos aos aplicativos. Se o conteúdo do arquivo for modificado, os dados serão descompactados de forma transparente e o arquivo será restaurado para o mesmo formulário físico que tinha se essa API não fosse usada.
WOF_PROVIDER_FILE Indica que os dados do arquivo devem ser compactados e armazenados com o próprio arquivo. No acesso, os dados são descompactados de forma transparente e fornecidos aos aplicativos. Se o conteúdo do arquivo for modificado, os dados serão descompactados de forma transparente e o arquivo será restaurado para o mesmo formulário físico que tinha se essa API não fosse usada. Esse provedor requer Windows 10.

[in] ExternalFileInfo

Fornece dados específicos para o provedor especificado. As estruturas de dados para cada provedor definido são:

WOF_PROVIDER_WIM WIM_EXTERNAL_FILE_INFO
WOF_PROVIDER_FILE WOF_FILE_COMPRESSION_INFO

[in] Length

Especifica o comprimento dos dados específicos do provedor, em bytes. Isso deve corresponder às estruturas definidas acima:

WOF_PROVIDER_WIM sizeof(WIM_EXTERNAL_FILE_INFO)
WOF_PROVIDER_FILE sizeof(WOF_FILE_COMPRESSION_INFO)

Retornar valor

Essa função retorna um HRESULT que indica êxito ou o motivo da falha.

Comentários

Ao usar WOF_PROVIDER_FILE, a operação pode falhar com ERROR_COMPRESSION_NOT_BENEFICIAL. Isso indica que foi feita uma tentativa de compactar os dados, mas nenhum espaço em disco foi salvo, portanto, o arquivo não foi compactado. Para a maioria dos aplicativos, isso pode ser tratado como uma condição de sucesso.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho wofapi.h
Biblioteca Wofutil.lib
DLL Wofutil.dll

Confira também

FSCTL_SET_EXTERNAL_BACKING