Condividi tramite


Metodo IVssBackupComponents::AddAlternativeLocationMapping (vsbackup.h)

Il metodo AddAlternativeLocationMapping viene utilizzato da un richiedente per indicare che è stato utilizzato un mapping di percorso alternativo per ripristinare tutti i membri di un set di file in un determinato componente.

Sintassi

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
);

Parametri

[in] writerId

Identificatore univoco globale (GUID) della classe writer che ha esportato il componente.

[in] componentType

Tipo del componente. I valori possibili di questo parametro sono definiti dall'enumerazione VSS_COMPONENT_TYPE .

[in] wszLogicalPath

Stringa di caratteri wide con terminazione Null contenente il percorso logico del componente.

Per altre informazioni, vedere Percorso logico dei componenti.

Il percorso logico può essere NULL.

Non esistono restrizioni sui caratteri che possono essere visualizzati in un percorso logico non NULL .

[in] wszComponentName

Stringa di caratteri wide con terminazione Null contenente il nome del componente.

Non esistono restrizioni sui caratteri che possono essere visualizzati in un percorso logico non NULL .

[in] wszPath

Stringa di caratteri wide con terminazione Null contenente il percorso della directory che conteneva originariamente il file da rilocare. Questo percorso può essere locale per il computer VSS oppure può essere una directory di condivisione file in un file server remoto.

Il percorso può contenere variabili di ambiente(ad esempio, %SystemRoot%) ma non può contenere caratteri jolly. Sono supportati i percorsi UNC.

Non è necessario che il percorso termina con una barra rovesciata (""). Spetta alle applicazioni che recuperano queste informazioni da controllare.

[in] wszFilespec

Stringa di caratteri wide con terminazione Null contenente la specifica del file originale.

Una specifica di file non può contenere specifiche di directory (ad esempio, nessuna barra rovesciata) ma può contenere ? e * caratteri jolly.

[in] bRecursive

Valore booleano che indica se il percorso specificato dal parametro wszPath identifica solo una singola directory o se indica una gerarchia di directory da attraversare in modo ricorsivo. Questo parametro deve essere impostato su true se il percorso viene considerato come una gerarchia di directory da attraversare in modo ricorsivo o false in caso contrario.

Per informazioni sull'attraversamento di cartelle montate, vedere Utilizzo di cartelle montate e Reparse Points.

[in] wszDestination

Stringa di caratteri wide con terminazione Null contenente il nome della directory in cui verrà spostato il file. Questo percorso può essere locale per il computer VSS oppure può essere una directory di condivisione file in un file server remoto. Sono supportati i percorsi UNC.

Valore restituito

Di seguito sono riportati i codici restituiti validi per questo metodo.

Valore Significato
S_OK
È stato aggiunto correttamente il mapping della posizione alternativa.
E_INVALIDARG
Uno dei valori dei parametri non è valido.
E_OUTOFMEMORY
Il chiamante non è in memoria o in altre risorse di sistema.
VSS_E_BAD_STATE
L'oggetto componenti di backup non viene inizializzato, questo metodo è stato chiamato durante un'operazione di ripristino oppure questo metodo non è stato chiamato all'interno della sequenza corretta.
VSS_E_INVALID_XML_DOCUMENT
Documento XML non valido. Per informazioni dettagliate, vedere il registro eventi. Per altre informazioni, vedere Gestione degli eventi e degli errori in VSS.
VSS_E_OBJECT_NOT_FOUND
Il componente specificato non esiste.
VSS_E_UNEXPECTED
Errore imprevisto. Il codice di errore viene registrato nel file di log degli errori. Per altre informazioni, vedere Gestione degli eventi e degli errori in VSS.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato fino a Windows Server 2008 R2 e Windows 7. E_UNEXPECTED viene invece usato.

Commenti

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP e Windows Server 2003: Le condivisioni file remote non sono supportate fino a Windows 8 e Windows Server 2012.

I parametri writerId, componentType, wszLogicalPath e wszComponentName identificano un determinato componente e i parametri wszPath, wszFilespec e bRecursive identificano il set di file appartenente a tale componente.

Combinazione di percorso, specifica del file, e il flag di ricorsione (rispettivamente wszPath, wszFilespec e bRecursive) forniti a AddAlternativeLocationMapping devono corrispondere a quello di uno dei set di file aggiunti a un componente usando IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles o IVssCreateWriterMetadata::AddDatabaseLogFiles.

Poiché AddAlternativeLocationMapping viene usato per notificare a un writer che è stato usato un percorso alternativo per ripristinare tutti i file in un componente, non deve essere chiamato per alcun componente o file in un componente che non dispone di un mapping di percorso alternativo specificato.

Il valore di wszPath sarà stato mappato a wszDestination al ripristino; Tuttavia, i nomi di file e le sottodirectory nel percorso originale mantengono gli stessi nomi.

Un utilizzo tipico di AddAlternativeLocationMapping durante il ripristino potrebbe essere il seguente:

  1. Recuperare i documenti dei metadati del writer archiviati dal supporto di backup e caricare tali informazioni con IVssExamineWriterMetadata::LoadFromXML.
  2. Chiamare IVssExamineWriterMetadata::GetAlternateLocationMapping per ottenere un'interfaccia IVssWMFiledesc con le informazioni di mapping e usare IVssWMFiledesc::GetAlternateLocation per ottenere la posizione alternativa.
  3. Esaminare le informazioni filedesc per determinare in modo euristico il componente a cui applicare questo mapping di percorso alternativo.
  4. Chiamare IVssBackupComponents::AddAlternativeLocationMapping per comunicare dove sono stati ripristinati i file.
Un file deve essere sempre ripristinato nel relativo mapping di percorso alternativo se una delle condizioni seguenti è vera:
  • Il metodo di ripristino (impostato in fase di backup) è VSS_RME_RESTORE_TO_ALTERNATE_LOCATION.
  • La destinazione di ripristino è stata impostata (in fase di ripristino) su VSS_RT_ALTERNATE.
In entrambi i casi, se non viene definito alcun mapping di percorso alternativo valido, si tratta di un errore del writer.

Un file può essere ripristinato in un mapping di percorso alternativo se si verifica una delle condizioni seguenti:

  • Il metodo di ripristino è VSS_RME_RESTORE_IF_NOT_THERE e una versione del file è già presente sul disco.
  • Il metodo di ripristino è VSS_RME_RESTORE_IF_CAN_REPLACE e una versione del file è presente su disco e non può essere sostituita.
Anche in questo caso, se non viene definito alcun mapping di percorso alternativo valido, si tratta di un errore del writer.

Un mapping di percorso alternativo viene usato solo durante un'operazione di ripristino e non deve essere confuso con un percorso alternativo, che viene usato solo durante un'operazione di backup.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vsbackup.h (include VsBackup.h, Vss.h, VsWriter.h)
Libreria VssApi.lib

Vedi anche

IVssBackupComponents

IVssWMFiledesc::GetAlternateLocation

VSS_COMPONENT_TYPE