Metodo CVssWriterEx::InitializeEx (vswriter.h)

Inizializza un oggetto CVssWriterEx e consente a un'applicazione writer di interagire con VSS. A differenza del metodo Initialize, il metodo InitializeEx consente al chiamante di specificare le informazioni sulla versione del writer.

InitializeEx è un metodo pubblico implementato dalla classe base CVssWriterEx .

I writer devono chiamare Initialize o InitializeEx, ma non entrambi.

Sintassi

HRESULT InitializeEx(
  [in] VSS_ID                     WriterId,
  [in] LPCWSTR                    wszWriterName,
  [in] DWORD                      dwMajorVersion,
  [in] DWORD                      dwMinorVersion,
  [in] VSS_USAGE_TYPE             ut,
  [in] VSS_SOURCE_TYPE            st,
  [in] VSS_APPLICATION_LEVEL      nLevel,
  [in] DWORD                      dwTimeoutFreeze,
  [in] VSS_ALTERNATE_WRITER_STATE aws,
  [in] bool                       bIOThrottlingOnly,
  [in] LPCWSTR                    wszWriterInstanceName
);

Parametri

[in] WriterId

Identificatore univoco globale (GUID) della classe writer.

[in] wszWriterName

Stringa di caratteri wide con terminazione null contenente il nome del writer. Questa stringa non è localizzata.

[in] dwMajorVersion

Versione principale dell'applicazione writer. Per altre informazioni, vedere la sezione Osservazioni.

[in] dwMinorVersion

Versione secondaria dell'applicazione writer. Per altre informazioni, vedere la sezione Osservazioni.

[in] ut

Valore di enumerazione VSS_USAGE_TYPE che indica come vengono usati i dati gestiti dal writer nel sistema host.

[in] st

Valore di enumerazione VSS_SOURCE_TYPE che indica il tipo di dati gestiti dal writer.

[in] nLevel

Valore di enumerazione VSS_APPLICATION_LEVEL che indica il livello di applicazione a cui il writer riceve una notifica di evento Freeze .

Il valore predefinito per questo parametro è VSS_APP_FRONT_END.

[in] dwTimeoutFreeze

Tempo massimo consentito, in millisecondi, tra la ricezione del writer di una notifica di evento Freeze e la ricezione di una notifica di evento Thaw corrispondente da VSS. Dopo la scadenza del timeout, il metodo OnAbort del writer viene chiamato automaticamente.

Il valore predefinito per questo parametro è 60000.

[in] aws

Valore di enumerazione VSS_ALTERNATE_WRITER_STATE che indica se il writer ha un writer alternativo associato.

Il valore predefinito per questo parametro è VSS_AWS_NO_ALTERNATE_WRITER. Il chiamante non deve eseguire l'override di questo valore predefinito. Questo parametro è riservato per usi futuri.

[in] bIOThrottlingOnly

Impostare questo parametro su true se i metodi di limitazione di I/O sono abilitati o false in caso contrario.

Il valore predefinito per questo parametro è false. Il chiamante non deve eseguire l'override di questo valore predefinito. Questo parametro è riservato per usi futuri.

[in] wszWriterInstanceName

Stringa di caratteri wide con terminazione null contenente il nome dell'istanza del writer.

Il valore predefinito per questo parametro è NULL. Se il writer dispone di più istanze e richiede eventi di ripristino, questo parametro è obbligatorio e non può essere NULL. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Valore restituito

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

Valore Significato
S_OK
L'oggetto writer è stato inizializzato correttamente.
S_FALSE
Impossibile inizializzare l'oggetto writer; l'infrastruttura del writer VSS era inattiva perché Windows era in modalità sicura o era configurato.
E_ACCESSDENIED
Il chiamante non è un amministratore.
E_INVALIDARG
Uno dei valori dei parametri non è valido.
E_OUTOFMEMORY
Il chiamante non è in memoria o altre risorse di sistema.
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

Il metodo InitializeEx è identico al metodo Initialize , ad eccezione dei parametri dwMajorVersion e dwMinorVersion . Se il writer usa Initialize anziché InitializeEx, la versione writer verrà segnalata come 0.0 (versione principale = 0, versione secondaria = 0) dal metodo IVssExamineWriterMetadataExamineWriterEx2::GetVersion.

I parametri dwMajorVersion e dwMinorVersion vengono usati per specificare i numeri di versione principale e secondaria del writer in base alle convenzioni VSS seguenti:

  • Se il writer è cambiato da Windows XP o è nuovo per Windows Vista, deve specificare 1.0 o superiore per il relativo numero di versione.
  • Il numero di versione secondaria di un writer deve essere incrementato di uno ogni volta che una versione rilasciata del writer contiene modifiche secondarie che influiscono sull'interazione del writer con i richiedenti. Ad esempio, una correzione a una specifica di file in un QFE writer o service pack giustifica l'incremento del numero di versione secondaria. Tuttavia, una modifica tra le versioni beta o release candidate di un writer non giustifica la modifica del numero di versione secondaria.
  • Il numero di versione principale di un writer deve essere incrementato per uno ogni volta che una versione rilasciata del writer contiene una modifica significativa. Ad esempio, se i dati sottoposti a backup con una nuova versione di un writer non possono essere ripristinati usando la versione precedente del writer, il numero di versione principale del nuovo writer deve essere incrementato.
  • Ogni volta che viene incrementato il numero di versione principale, il numero di versione secondaria deve essere reimpostato su zero.
Se un writer non specifica un numero di versione, VSS assegna un numero di versione predefinito pari a 0.0.

VSS assegna un ID istanza di writer univoco a ogni istanza di un'applicazione writer. Se nel sistema sono presenti più istanze (ad esempio, se più server SQL sono in esecuzione in un sistema), ogni writer viene identificato in modo univoco dalla combinazione dell'ID classe writer e dell'ID istanza del writer.

Il parametro wszWriterInstanceName consente a un writer multiistanza di specificare un nome persistente per ogni istanza del writer come stringa leggibile dall'utente. Questo nome deve essere univoco in tutte le istanze del writer nel sistema. Se un writer ha più istanze e richiede eventi di ripristino, deve specificare una stringa non NULL per questo parametro. VSS usa il nome dell'istanza per ripristinare correttamente i writer multiistanza.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vswriter.h (include Vss.h, VsWriter.h)
Libreria VssApi.lib

Vedi anche

CVssWriterEx

IVssExamineWriterMetadataEx2::GetVersion