Condividi tramite


enumerazione VSS_RESTOREMETHOD_ENUM (vswriter.h)

L'enumerazione VSS_RESTOREMETHOD_ENUM viene usata da un writer in fase di backup per specificare tramite il relativo documento metadati writer il metodo di ripristino dei file predefinito da usare con tutti i file in tutti i componenti gestiti.

Il metodo di ripristino è a livello di writer ed è noto anche come destinazione di ripristino originale e indicato da un valore VSS_RESTORE_TARGET di VSS_RT_ORIGINAL.

Sintassi

typedef enum VSS_RESTOREMETHOD_ENUM {
  VSS_RME_UNDEFINED = 0,
  VSS_RME_RESTORE_IF_NOT_THERE,
  VSS_RME_RESTORE_IF_CAN_REPLACE,
  VSS_RME_STOP_RESTORE_START,
  VSS_RME_RESTORE_TO_ALTERNATE_LOCATION,
  VSS_RME_RESTORE_AT_REBOOT,
  VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE,
  VSS_RME_CUSTOM,
  VSS_RME_RESTORE_STOP_START
} ;

Costanti

 
VSS_RME_UNDEFINED
Valore: 0
Non è definito alcun metodo di ripristino.


Questo indica un errore nella parte del writer.

Questo valore non è supportato per i writer express.
VSS_RME_RESTORE_IF_NOT_THERE
Il richiedente deve ripristinare i file di un componente o di un componente selezionato solo se non sono presenti versioni di
tali file attualmente presenti sul disco.


A meno che non vengano definiti mapping di percorsi alternativi per il ripristino dei file, se una versione di qualsiasi file gestita da un
il componente o il set di componenti selezionati è attualmente sul disco, nessuno dei file gestiti dall'oggetto selezionato
deve essere ripristinato il componente o il set di componenti.

Se viene definito il mapping alternativo del percorso di un file e una versione dei file è presente sul disco
percorso originale, i file devono essere scritti nel percorso alternativo solo se non esiste alcuna versione del file in
posizione alternativa.
VSS_RME_RESTORE_IF_CAN_REPLACE
Il richiedente deve ripristinare i file di un componente o di un componente selezionato solo se i file attualmente presenti nel disco possono essere sovrascritti.


A meno che non siano definiti mapping di percorsi alternativi per il ripristino dei file, se è presente una versione di qualsiasi file che
non può essere sovrascritto del componente o del componente selezionato nel disco, nessuno dei file gestiti da
deve essere ripristinato il componente o il set di componenti.

Se viene definito il mapping alternativo del percorso di un file, i file devono essere scritti nel percorso alternativo.
VSS_RME_STOP_RESTORE_START
Il richiedente deve eseguire l'operazione di ripristino come indicato di seguito:


  1. Inviare l'evento PreRestore e attendere che tutti i writer lo elaborano.

  2. Consente di arrestare il servizio.

  3. Ripristinare i file nei percorsi originali.

  4. Riavviare il servizio.

  5. Inviare l'evento PostRestore e attendere che tutti i writer lo elaborano.


Il servizio da arrestare viene specificato in anticipo quando chiama il metodo IVssCreateWriterMetadata::SetRestoreMethod . Il richiedente può ottenere il nome del servizio chiamando il metodo IVssExamineWriterMetadata::GetRestoreMethod .

Si noti che se il writer è ospitato nel servizio che viene arrestato, tale writer non riceverà l'evento PostRestore , perché l'ID istanza del writer cambia quando il servizio viene arrestato e riavviato.
VSS_RME_RESTORE_TO_ALTERNATE_LOCATION
Il richiedente deve ripristinare i file del componente o del componente selezionato impostato sul percorso specificato dall'oggetto
mapping percorso alternativo specificato nel file di metadati del componente writer. Per altre informazioni, vedere
IVssCreateWriterMetadata::AddAlternateLocationMapping,
IVssComponent::GetAlternateLocationMapping,
IVssExamineWriterMetadata::GetAlternateLocationMapping,
e IVssWMFiledesc::GetAlternateLocation.

Questo valore non è supportato per i writer express.
VSS_RME_RESTORE_AT_REBOOT
Il richiedente deve ripristinare i file di un componente o di un componente selezionato impostato dopo il riavvio del computer.


I file da ripristinare devono essere copiati in un percorso temporaneo e il richiedente deve usare
MoveFileEx con
MOVEFILE_DELAY_UNTIL_REBOOT flag per completare il ripristino di questi file
percorso appropriato dopo il riavvio del computer.
VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE
Se possibile, il richiedente deve ripristinare i file del componente o del componente selezionato impostato sul relativo corretto
posizione immediatamente.


Se sono presenti versioni di uno dei file gestiti dal componente o dal componente selezionato impostato sul disco
non può essere sovrascritto, quindi tutti i file gestiti dal componente o dal set di componenti selezionati devono essere ripristinati
dopo il riavvio del computer.

In questo caso, i file da ripristinare devono essere copiati in un percorso temporaneo su disco e il richiedente deve essere copiato
usare MoveFileEx con
MOVEFILE_DELAY_UNTIL_REBOOT flag per completare il ripristino di questi file
percorso appropriato dopo il riavvio del computer.
VSS_RME_CUSTOM
Il richiedente deve usare un metodo di ripristino personalizzato per ripristinare i file gestiti dall'oggetto selezionato
componente o set di componenti.


Un ripristino personalizzato può usare funzioni o protocolli di recupero file privati a un determinato writer
nell'applicazione Aha!. Tale ripristino non deve usare le informazioni nel file di metadati del componente writer. Per altre informazioni, vedere
Backup e ripristino personalizzati per altre informazioni
informazioni.

Questo valore non è supportato per i writer express.
VSS_RME_RESTORE_STOP_START
Il richiedente deve eseguire l'operazione di ripristino come indicato di seguito:


  1. Inviare l'evento PreRestore e attendere che tutti i writer lo elaborano.

  2. Ripristinare i file nei percorsi originali.

  3. Inviare l'evento PostRestore e attendere che tutti i writer lo elaborano.

  4. Consente di arrestare il servizio.

  5. Riavviare il servizio.


Il servizio da arrestare viene specificato in anticipo dal writer quando chiama il metodo IVssCreateWriterMetadata::SetRestoreMethod . Il richiedente può ottenere il nome del servizio chiamando il metodo IVssExamineWriterMetadata::GetRestoreMethod .

Commenti

Un writer imposta il metodo di ripristino nel documento metadati writer chiamando IVssCreateWriterMetadata::SetRestoreMethod durante il backup per specificare il metodo di ripristino desiderato nei metadati.

Un richiedente recupera il metodo di ripristino richiesto da un writer chiamando IVssExamineWriterMetadata::GetRestoreMethod e agisce di conseguenza.

Il metodo di ripristino si applica a tutti i file in tutti i componenti di un determinato writer.

Il metodo di ripristino può essere sottoposto a override in base al componente in fase di ripristino se un writer imposta un valore di VSS_RESTORE_TARGET diverso da VSS_RT_ORIGINAL con IVssComponent::SetRestoreTarget.

Un metodo di ripristino di VSS_RME_RESTORE_TO_ALTERNATE_LOCATION senza un mapping di percorso alternativo definito costituisce un errore writer e il richiedente deve segnalarlo come tale.

Quando un metodo di ripristino richiede un controllo sullo stato dei file attualmente sul disco (VSS_RME_RESTORE_IF_NOT_THERE, VSS_RME_RESTORE_IF_CAN_REPLACE o VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE), idealmente, è consigliabile usare operazioni di I/O file per verificare che un intero componente possa essere ripristinato prima di procedere effettivamente con il ripristino.

Il modo più sicuro per eseguire questa operazione consiste nell'aprire esclusivamente (senza condivisione) tutti i file di destinazione con CreateFile prima del ripristino.

Nel caso di VSS_RME_RESTORE_IF_NOT_THERE, deve essere impostato anche un flag di eliminazione della creazione di CREATE_NEW .

Se le operazioni aperte hanno esito positivo, il ripristino può procedere e deve usare gli handle restituiti da CreateFile per scrivere effettivamente dati ripristinati su disco.

In caso contrario, è possibile restituire un errore, a seconda del metodo, oppure il mapping di percorsi alternativi controllato e (se disponibile) o i file dei componenti in fase di ripristino al riavvio successivo.

Questo può essere un problema per componenti molto grandi (alcuni dei quali potrebbero avere migliaia di file), a causa del sovraccarico del sistema.

In questo caso, un'opzione meno affidabile è quella di eseguire le operazioni seguenti:

  1. Copiare tutti i file attualmente sul disco e per essere ripristinati in una cache temporanea.
  2. Provare a sostituire i file attualmente presenti sul disco con i file di backup , che potrebbero essere presenti su disco in una seconda area temporanea o su un supporto di backup.
  3. Se i file non riescono a ripristinare, terminare l'operazione di ripristino e copiare i file originali dal percorso temporaneo e procedere con il mapping di percorso alternativo o il ripristino nelle operazioni di riavvio.
Per altre informazioni sui percorsi dei file di backup e ripristino in VSS, vedere Percorsi di backup e ripristino non predefiniti.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione vswriter.h

Vedi anche

IVssBackupComponents::AddAlternativeLocationMapping

IVssComponent::GetAlternateLocationMapping

IVssCreateWriterMetadata::AddAlternateLocationMapping

IVssCreateWriterMetadata::SetRestoreMethod

IVssExamineWriterMetadata::GetAlternateLocationMapping

IVssExamineWriterMetadata::GetRestoreMethod

IVssWMFiledesc::GetAlternateLocation

VSS_WRITERRESTORE_ENUM