Método IVssComponent::GetDifferencedFile (vswriter.h)
El método GetDifferencedFile devuelve información sobre un conjunto de archivos (un archivo o archivos especificado) para participar en una copia de seguridad o restauración incremental o diferencial como un archivo diferenciado, es decir, las copias de seguridad y restauraciones asociadas a él se implementarán como si se copian archivos completos en los medios de copia de seguridad y desde ellos (en lugar de usar archivos parciales).
Un solicitante o un escritor pueden llamar a este método durante las operaciones de copia de seguridad o restauración.
Sintaxis
HRESULT GetDifferencedFile(
[in] UINT iDifferencedFile,
[out] BSTR *pbstrPath,
[out] BSTR *pbstrFilespec,
[out] BOOL *pbRecursive,
[out] BSTR *pbstrLsnString,
[out] FILETIME *pftLastModifyTime
);
Parámetros
[in] iDifferencedFile
Número de índice del archivo que se va a examinar. El valor de este parámetro es un entero comprendido entre 0 y n-1, donde n es el número total de archivos diferenciados asociados a un componente determinado (y sus subcomponentes si define un conjunto de componentes). IVssComponent::GetDifferencedFilesCount devuelve el valor de n.
[out] pbstrPath
Dirección de una variable asignada por el autor de la llamada que recibe una cadena que contiene la ruta de acceso a los archivos diferenciados.
Los usuarios de este método deben comprobar si esta ruta termina con una barra diagonal inversa (\).
[out] pbstrFilespec
Dirección de una variable asignada por el autor de la llamada que recibe una cadena que contiene la especificación de archivo de los archivos diferenciados.
[out] pbRecursive
Dirección de una variable asignada por el autor de la llamada que recibe un valor booleano que especifica si la especificación de archivo para los archivos diferenciados se debe interpretar de forma recursiva. Si es TRUE, es necesario buscar archivos que coincidan con la especificación de archivo pbstrFilespec para buscar los archivos que se van a controlar como archivos diferenciales durante las copias de seguridad incrementales o diferenciales. Si es FALSE, solo se debe buscar en el directorio raíz.
[out] pbstrLsnString
Reservado para uso futuro.
[out] pftLastModifyTime
Dirección de una variable asignada por el autor de la llamada que recibe la especificación del escritor de la hora de la última modificación de los archivos de diferencia, expresada como una estructura FILETIME .
Valor devuelto
A continuación se muestran los códigos de retorno válidos para este método.
Valor | Significado |
---|---|
|
Devolvió correctamente el valor del atributo. |
|
Uno de los valores de parámetro no es válido. |
|
El autor de la llamada no tiene memoria u otros recursos del sistema. |
|
No se encontró ningún archivo diferente correspondiente al índice proporcionado. |
|
El documento XML no es válido. Compruebe el registro de eventos para obtener más información. Para obtener más información, consulte Control de eventos y errores en VSS. |
Comentarios
Un solicitante o un escritor pueden llamar a GetDifferencedFile durante las operaciones de copia de seguridad o restauración.
Si la llamada a GetDifferencedFile se realiza correctamente, el autor de la llamada es responsable de liberar la cadena que se devuelve en los parámetros pbstrPath y pbstrFilespec mediante una llamada a la función SysFreeString .
Como los escritores pueden indicar archivos diferentes con llamadas a IVssComponent::AddDifferencedFilesByLastModifyTime en cualquier momento antes de la copia de seguridad real de los archivos, Normalmente, al controlar un evento PostSnapshot (CVssWriter::OnPostSnapshot), durante las copias de seguridad GetDifferencedFile no se llama útilmente antes de la devolución de IVssBackupComponents::D oSnapshotSet se ha devuelto correctamente.
La marca de tiempo devuelta por GetDifferencedFile se aplica a todos los archivos que coinciden con la ruta de acceso devuelta (pbstrPath) y la especificación de archivo (pbstrFilespec).
Si el valor de marca de tiempo devuelto por GetDifferencedFile (pftLastModifyTime) es distinto de cero, un solicitante debe respetar este valor independientemente de sus propios registros y la información del sistema de archivos y usarlo para determinar si el archivo diferenciado debe incluirse en una copia de seguridad diferencial o incremental.
Si la marca de tiempo devuelta por GetDifferencedFile es cero, el solicitante puede usar información del sistema de archivos y sus propios registros para determinar si los archivos diferenciales deben incluirse en una copia de seguridad diferencial o incremental.
Los archivos con diferencias pueden ser cualquiera de los siguientes:
- Miembros del componente actual o, si el componente define un conjunto de componentes, miembros de sus subcomponentes que se agregaron al componente mediante IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles o IVssCreateWriterMetadata::AddDatabaseLogFiles
- Nuevos archivos agregados al componente por IVssComponent::AddDifferencedFilesByLastModifyTime
Cuando GetDifferencedFile devuelve un nuevo archivo distinto, la ruta de acceso del archivo (pbstrPath) debe coincidir o estar debajo de una ruta de acceso ya en el componente, o bien uno de sus subcomponentes (si el componente define un conjunto de componentes).
Además, los archivos devueltos por GetDifferencedFile aún no deben administrarse por componente o escritor.
Si se infringe alguno de estos criterios, constituyen un error por parte del escritor y deben notificarse.
No hay ningún método en la interfaz IVssComponent que permita cambiar o agregar una asignación de ubicación alternativa para los nuevos archivos devueltos por GetDifferencedFilesByLastModifyTime. Si una asignación de ubicación alternativa corresponde al nuevo archivo, se usará esa ubicación alternativa.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | vswriter.h (incluya Vss.h, VsWriter.h) |
Library | VssApi.lib |
Consulte también
IVssComponent::AddDifferencedFilesByLastModifyTime