Compartilhar via


Método IVssBackupComponents::AddAlternativeLocationMapping (vsbackup.h)

O método AddAlternativeLocationMapping é usado por um solicitante para indicar que um mapeamento de local alternativo foi usado para restaurar todos os membros de um conjunto de arquivos em um determinado componente.

Sintaxe

HRESULT AddAlternativeLocationMapping(
  [in] VSS_ID             writerId,
  [in] VSS_COMPONENT_TYPE componentType,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName,
  [in] LPCWSTR            wszPath,
  [in] LPCWSTR            wszFilespec,
  [in] bool               bRecursive,
  [in] LPCWSTR            wszDestination
);

Parâmetros

[in] writerId

GUID (identificador global exclusivo) da classe de gravador que exportou o componente.

[in] componentType

Tipo do componente. Os valores possíveis desse parâmetro são definidos pela enumeração VSS_COMPONENT_TYPE .

[in] wszLogicalPath

Cadeia de caracteres largos terminada em nulo que contém o caminho lógico para o componente.

Para obter mais informações, consulte Caminhos lógicos de componentes.

O caminho lógico pode ser NULL.

Não há restrições sobre os caracteres que podem aparecer em um caminho lógico não NULL .

[in] wszComponentName

Cadeia de caracteres largos terminada em nulo que contém o nome do componente.

Não há restrições sobre os caracteres que podem aparecer em um caminho lógico não NULL .

[in] wszPath

Cadeia de caracteres largos terminada em nulo que contém o caminho para o diretório que originalmente continha o arquivo a ser realocado. Esse caminho pode ser local para o computador VSS ou pode ser um diretório de compartilhamento de arquivos em um servidor de arquivos remoto.

O caminho pode conter variáveis de ambiente (por exemplo, %SystemRoot%), mas não pode conter caracteres curinga. Há suporte para caminhos UNC.

Não há nenhum requisito de que o caminho termine com uma barra invertida (""). Cabe a aplicativos que recuperam essas informações marcar.

[in] wszFilespec

Cadeia de caracteres largos terminada em nulo que contém a especificação de arquivo original.

Uma especificação de arquivo não pode conter especificações de diretório (por exemplo, sem barras invertidas), mas pode conter o ? e * caracteres curinga.

[in] bRecursive

Um valor booliano que indica se o caminho especificado pelo parâmetro wszPath identifica apenas um único diretório ou se indica uma hierarquia de diretórios a serem percorridos recursivamente. Esse parâmetro deverá ser definido como true se o caminho for tratado como uma hierarquia de diretórios a serem percorridos recursivamente ou false se não for.

Para obter informações sobre como percorrer pastas montadas, consulte Trabalhando com pastas montadas e pontos de nova análise.

[in] wszDestination

Cadeia de caracteres largos terminada em nulo que contém o nome do diretório em que o arquivo será realocado. Esse caminho pode ser local para o computador VSS ou pode ser um diretório de compartilhamento de arquivos em um servidor de arquivos remoto. Há suporte para caminhos UNC.

Retornar valor

Veja a seguir os códigos de retorno válidos para esse método.

Valor Significado
S_OK
O mapeamento de local alternativo foi adicionado com êxito.
E_INVALIDARG
Um dos valores de parâmetro não é válido.
E_OUTOFMEMORY
O chamador está sem memória ou outros recursos do sistema.
VSS_E_BAD_STATE
O objeto de componentes de backup não é inicializado, esse método foi chamado durante uma operação de restauração ou esse método não foi chamado dentro da sequência correta.
VSS_E_INVALID_XML_DOCUMENT
O documento XML não é válido. Verifique o log de eventos para obter detalhes. Para obter mais informações, consulte Tratamento de eventos e erros no VSS.
VSS_E_OBJECT_NOT_FOUND
O componente especificado não existe.
VSS_E_UNEXPECTED
Erro inesperado. O código de erro é registrado no arquivo de log de erros. Para obter mais informações, consulte Tratamento de eventos e erros no VSS.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Esse valor não tem suporte até o Windows Server 2008 R2 e o Windows 7. E_UNEXPECTED é usado.

Comentários

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP e Windows Server 2003: Não há suporte para compartilhamentos de arquivos remotos até Windows 8 e Windows Server 2012.

Os parâmetros writerId, componentType, wszLogicalPath e wszComponentName identificam um componente específico e os parâmetros wszPath, wszFilespec e bRecursive identificam o conjunto de arquivos que pertence a esse componente.

A combinação de caminho, especificação de arquivo e sinalizador de recursão (wszPath, wszFilespec, e bRecursive, respectivamente) fornecidos a AddAlternativeLocationMapping a serem mapeados devem corresponder ao de um dos conjuntos de arquivos adicionados a um componente usando IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles ou IVssCreateWriterMetadata::AddDatabaseLogFiles.

Como AddAlternativeLocationMapping é usado para notificar um gravador de que um local alternativo foi usado para restaurar todos os arquivos em um componente, ele não deve ser chamado para nenhum componente ou arquivo em um componente que não tenha um mapeamento de local alternativo especificado.

O valor de wszPath terá sido mapeado para wszDestination na restauração ; no entanto, os nomes de arquivo e subdiretórios no caminho original mantêm seus mesmos nomes.

Um uso típico de AddAlternativeLocationMapping durante a restauração pode ser o seguinte:

  1. Recupere documentos armazenados de metadados do gravador da mídia de backup e carregue essas informações com IVssExamineWriterMetadata::LoadFromXML.
  2. Chame IVssExamineWriterMetadata::GetAlternateLocationMapping para obter uma interface IVssWMFiledesc com as informações de mapeamento e use IVssWMFiledesc::GetAlternateLocation para obter o local alternativo.
  3. Examine as informações arquivadas para determinar heuristicamente a qual componente esse mapeamento de localização alternativo deve ser aplicado.
  4. Chame IVssBackupComponents::AddAlternativeLocationMapping para comunicar onde os arquivos foram restaurados.
Um arquivo sempre deverá ser restaurado para seu mapeamento de localização alternativo se qualquer um dos seguintes itens for verdadeiro:
  • O método de restauração (definido no momento do backup) é VSS_RME_RESTORE_TO_ALTERNATE_LOCATION.
  • Seu destino de restauração foi definido (no momento da restauração) como VSS_RT_ALTERNATE.
Em ambos os casos, se nenhum mapeamento de local alternativo válido for definido, isso constitui um erro de gravador.

Um arquivo poderá ser restaurado para um mapeamento de local alternativo se qualquer um dos seguintes itens for verdadeiro:

  • O método de restauração é VSS_RME_RESTORE_IF_NOT_THERE e uma versão do arquivo já está presente no disco.
  • O método de restauração é VSS_RME_RESTORE_IF_CAN_REPLACE e uma versão do arquivo está presente no disco e não pode ser substituída.
Novamente, se nenhum mapeamento de local alternativo válido for definido, isso constitui um erro de gravador.

Um mapeamento de local alternativo é usado somente durante uma operação de restauração e não deve ser confundido com um caminho alternativo, que é usado somente durante uma operação de backup.

Requisitos

Requisito Valor
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 vsbackup.h (inclua VsBackup.h, Vss.h, VsWriter.h)
Biblioteca VssApi.lib

Confira também

IVssBackupComponents

IVssWMFiledesc::GetAlternateLocation

VSS_COMPONENT_TYPE