다음을 통해 공유


IBackgroundCopyJob::Complete 메서드(bits.h)

작업을 종료하고 전송된 파일을 클라이언트에 저장합니다.

구문

HRESULT Complete();

반환 값

이 메서드는 다음 HRESULT 값을 반환합니다. 메서드는 전송된 파일의 임시 복사본 이름을 지정된 이름으로 바꾸는 데 관련된 오류를 반환할 수도 있습니다.

반환 코드 설명
S_OK
모든 파일이 성공적으로 전송되었습니다.
BG_S_PARTIAL_COMPLETE
성공적으로 전송된 파일의 하위 집합입니다.
BG_S_UNABLE_TO_DELETE_FILES
작업이 성공적으로 완료되었습니다. 그러나 서비스에서 작업과 연결된 임시 파일을 삭제할 수 없습니다.
BG_E_INVALID_STATE
다운로드의 경우 작업 상태를 BG_JOB_STATE_CANCELLED 또는 BG_JOB_STATE_ACKNOWLEDGED 수 없습니다.

업로드의 경우 작업의 상태가 BG_JOB_STATE_TRANSFERRED 합니다.

설명

Complete 메서드를 호출할 때까지 다운로드 파일을 사용할 수 없습니다. BITS가 파일을 성공적으로 전송한 후 Complete 메서드를 호출합니다. 메서드는 임시 다운로드 파일의 이름을 최종 대상 이름으로 바꾸고 큐에서 작업을 제거합니다. BITS는 서버가 마지막 조각을 수신할 때 임시 업로드 파일의 이름을 바꿉니다. 따라서 다운로드 작업에는 네트워크 연결이 필요하고 업로드 작업은 필요하지 않습니다.

작업의 상태가 BG_JOB_STATE_TRANSFERRED 경우 모든 파일이 성공적으로 전송되었습니다. 작업 상태를 검사 IBackgroundCopyJob::GetState 메서드를 호출합니다. IBackgroundCopyCallback 인터페이스를 구현하여 모든 파일이 클라이언트로 전송될 때 알림을 받을 수도 있습니다.

Complete 메서드 또는 IBackgroundCopyJob::Cancel 메서드를 90일 이내에 호출하지 않으면(기본 JobInactivityTimeout 그룹 정책) 서비스가 작업을 취소합니다. 서비스가 작업을 취소하면 다운로드한 파일과 회신 파일을 클라이언트에서 사용할 수 없습니다. 작업 취소는 성공적으로 업로드된 파일에 영향을 주지 않습니다.

HRESULT가 S_OK 또는 BG_S_PARTIAL_COMPLETE 경우 BITS는 전송 큐에서 작업을 제거합니다. BITS가 모든 임시 파일의 이름을 바꿀 수 없는 경우 작업은 전송 큐에 남아 있습니다. 이름이 성공적으로 변경된 파일은 사용자가 사용할 수 있습니다. 애플리케이션이 문제를 해결할 수 있고 Complete 메서드를 다시 호출하거나 IBackgroundCopyJob::Cancel 메서드를 호출하여 작업을 취소할 때까지 작업은 큐에 남아 있습니다(상태는 BG_JOB_STATE_TRANSFERRED). 다운로드 작업에 대해 이름이 바뀌지 않은 파일을 확인하려면 BG_FILE_PROGRESS 구조의 Completed 멤버를 참조하세요.

다운로드 작업의 경우 전송 프로세스 중에 언제든지 Complete 메서드를 호출할 수 있습니다. 그러나 이 메서드를 호출하기 전에 클라이언트로 성공적으로 전송된 파일만 저장됩니다. 예를 들어 BITS가 5개 파일 중 세 번째 파일을 처리하는 동안 Complete 메서드를 호출하면 처음 두 개의 파일만 저장됩니다. 전송된 파일을 확인하려면 IBackgroundCopyFile::GetProgress 메서드를 호출하고 BytesTransferred 멤버를 BG_FILE_PROGRESS 구조체의 BytesTotal 멤버와 비교합니다.

업로드 작업의 경우 작업의 상태가 BG_JOB_STATE_TRANSFERRED 경우에만 Complete 메서드를 호출할 수 있습니다.

BITS는 타사 침입에 대해 전송된 파일의 무결성을 보장하지 않습니다. 클라이언트는 Complete 메서드를 호출한 후 전송된 파일의 유효성을 검사하기 위해 무결성 검사를 구현할 수 있습니다.

파일의 소유자는 호출한 사용자입니다. 예를 들어 관리자가 다른 사람의 작업을 완료하면 작업 소유자가 아닌 관리자가 파일을 소유합니다.

BITS 1.2 이하: 파일의 소유자는 Complete 메서드를 호출한 사용자에 관계없이 작업의 소유자입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP
지원되는 최소 서버 Windows Server 2003
대상 플랫폼 Windows
헤더 bits.h
라이브러리 Bits.lib
DLL QmgrPrxy.dll

추가 정보

작업 완료 및 취소

IBackgroundCopyCallback::JobTransferred

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::GetState