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 |
---|---|
|
O mapeamento de local alternativo foi adicionado com êxito. |
|
Um dos valores de parâmetro não é válido. |
|
O chamador está sem memória ou outros recursos do sistema. |
|
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. |
|
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. |
|
O componente especificado não existe. |
|
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:
- Recupere documentos armazenados de metadados do gravador da mídia de backup e carregue essas informações com IVssExamineWriterMetadata::LoadFromXML.
- Chame IVssExamineWriterMetadata::GetAlternateLocationMapping para obter uma interface IVssWMFiledesc com as informações de mapeamento e use IVssWMFiledesc::GetAlternateLocation para obter o local alternativo.
- Examine as informações arquivadas para determinar heuristicamente a qual componente esse mapeamento de localização alternativo deve ser aplicado.
- Chame IVssBackupComponents::AddAlternativeLocationMapping para comunicar onde os arquivos foram restaurados.
- 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.
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.
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 |