Método IBackgroundCopyJob::Complete (bits.h)

Finaliza el trabajo y guarda los archivos transferidos en el cliente.

Sintaxis

HRESULT Complete();

Valor devuelto

Este método devuelve los siguientes valores HRESULT . El método también puede devolver errores relacionados con el cambio de nombre de las copias temporales de los archivos transferidos a sus nombres especificados.

Código devuelto Descripción
S_OK
Todos los archivos se transfirieron correctamente.
BG_S_PARTIAL_COMPLETE
Un subconjunto de los archivos transferidos correctamente.
BG_S_UNABLE_TO_DELETE_FILES
El trabajo se completó correctamente; sin embargo, el servicio no pudo eliminar los archivos temporales asociados al trabajo.
BG_E_INVALID_STATE
En el caso de las descargas, el estado del trabajo no puede ser BG_JOB_STATE_CANCELLED ni BG_JOB_STATE_ACKNOWLEDGED.

En el caso de las cargas, el estado del trabajo debe ser BG_JOB_STATE_TRANSFERRED.

Comentarios

Los archivos de descarga no están disponibles hasta que se llama al método Complete . Llame al método Complete después de que BITS transfiera correctamente los archivos. El método cambia el nombre de los archivos de descarga temporales a sus nombres de destino finales y quita el trabajo de la cola. Tenga en cuenta que BITS cambia el nombre del archivo de carga temporal cuando el servidor recibe el último fragmento, por lo que los trabajos de descarga requieren conectividad de red y trabajos de carga no.

Todos los archivos se han transferido correctamente si el estado del trabajo es BG_JOB_STATE_TRANSFERRED. Para comprobar el estado del trabajo, llame al método IBackgroundCopyJob::GetState . También puede implementar la interfaz IBackgroundCopyCallback para recibir una notificación cuando todos los archivos se hayan transferido al cliente.

Si no llama al método Complete o al método IBackgroundCopyJob::Cancel en un plazo de 90 días (jobInactivityTimeout predeterminado directiva de grupo), el servicio cancela el trabajo. Si el servicio cancela el trabajo, los archivos descargados y el archivo de respuesta no están disponibles para el cliente; la cancelación del trabajo no afecta a los archivos que se han cargado correctamente.

BITS quita el trabajo de la cola de transferencia si HRESULT está S_OK o BG_S_PARTIAL_COMPLETE. El trabajo permanece en la cola de transferencia si BITS no pudo cambiar el nombre de todos los archivos temporales. Los archivos cuyo nombre se ha cambiado correctamente están disponibles para el usuario. El trabajo permanece en la cola (el estado es BG_JOB_STATE_TRANSFERRED) hasta que la aplicación puede corregir el problema y llama al método Complete de nuevo o al método IBackgroundCopyJob::Cancel para cancelar el trabajo. Para determinar qué archivos no se cambiaron de nombre para los trabajos de descarga, consulte el miembro Completed de la estructura BG_FILE_PROGRESS .

Para los trabajos de descarga, puede llamar al método Complete en cualquier momento durante el proceso de transferencia; sin embargo, solo se guardan los archivos que se han transferido correctamente al cliente antes de llamar a este método. Por ejemplo, si llama al método Complete mientras BITS está procesando el tercero de cinco archivos, solo se guardan los dos primeros archivos. Para determinar qué archivos se han transferido, llame al método IBackgroundCopyFile::GetProgress y compare el miembro BytesTransferred con el miembro BytesTotal de la estructura BG_FILE_PROGRESS .

En el caso de los trabajos de carga, solo puede llamar al método Complete cuando el estado del trabajo es BG_JOB_STATE_TRANSFERRED.

BITS no garantiza la integridad de los archivos transferidos contra intrusiones de terceros. Los clientes pueden implementar comprobaciones de integridad para validar los archivos transferidos después de llamar al método Complete .

El propietario del archivo es el usuario que realizó la llamada. Por ejemplo, si un administrador completa el trabajo de otra persona, el administrador, no el propietario del trabajo, es propietario del archivo.

BITS 1.2 y versiones anteriores: El propietario del archivo es el propietario del trabajo, independientemente de quién llamó al método Complete .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP
Servidor mínimo compatible Windows Server 2003
Plataforma de destino Windows
Encabezado bits.h
Library Bits.lib
Archivo DLL QmgrPrxy.dll

Consulte también

Finalización y cancelación de un trabajo

IBackgroundCopyCallback::JobTransferred

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::GetState