다음을 통해 공유


IBackgroundCopyJob2::SetNotifyCmdLine 메서드(bits1_5.h)

작업이 BG_JOB_STATE_ERROR 또는BG_JOB_STATE_TRANSFERRED 상태로 들어가는 경우 실행할 프로그램을 지정합니다. BITS는 이 메서드를 호출한 사용자의 컨텍스트에서 프로그램을 실행합니다.

구문

HRESULT SetNotifyCmdLine(
  [in] LPCWSTR Program,
  [in] LPCWSTR Parameters
);

매개 변수

[in] Program

실행할 프로그램이 포함된 Null로 종료된 문자열입니다. pProgram 매개 변수는 null 종결자를 포함하지 않고 MAX_PATH 문자로 제한됩니다. 프로그램의 전체 경로를 지정해야 합니다. 메서드는 검색 경로를 사용하여 프로그램을 찾지 않습니다.

명령줄 알림을 제거하려면 pProgrampParameters를NULL로 설정합니다. pProgramNULL이고 pParameters가 NULL이 아닌 경우 메서드가 실패합니다.

[in] Parameters

pProgram에서 프로그램의 매개 변수를 포함하는 Null로 종료된 문자열입니다. 첫 번째 매개 변수는 pProgram 의 프로그램이어야 합니다(경로에서 긴 파일 이름을 사용하는 경우 따옴표 사용). pParameters 매개 변수는 null 종결자를 포함하지 않고 4,000자로 제한됩니다. 이 매개 변수는 NULL일 수 있습니다.

반환 값

이 메서드는 다음 HRESULT 값과 다른 값을 반환합니다.

반환 코드 설명
S_OK
성공.
BG_E_INVALID_STATE
작업의 상태는 BG_JOB_STATE_CANCELLED 수 없거나 BG_JOB_STATE_ACKNOWLEDGED 수 없습니다.
BG_E_STRING_TOO_LONG
pProgram 또는 pParameters 문자열이 너무 깁니다.

설명

BITS는 CreateProcessAsUser 함수를 호출하여 프로그램을 시작합니다.

프로그램에서 0의 종료 코드를 반환해야 합니다. 프로그램에서 종료 코드 0을 반환하지 않으면 BITS는 작업의 상태를 확인합니다. 프로그램이 작업을 취소하거나 완료하지 않은 경우 BITS는 작업에 대해 지정된 최소 재시도 지연 이 만료된 후 프로그램을 다시 호출합니다.

BITS 1.5 이하: BITS는 프로그램을 한 번만 호출합니다.

스크립트를 실행하려면 pProgram에서 WScript.exe(WScript.exe 전체 경로 포함)를 지정합니다. pParameters 매개 변수에는 WScript.exe, 스크립트 이름 및 인수가 포함되어야 합니다.

프로그램에 작업 관련 정보가 필요한 경우 이 정보를 인수로 전달해야 합니다. %system32%와 같은 환경 변수는 pProgram 또는 pParameters 에 포함하지 마세요. 확장되지 않습니다.

프로그램의 전체 경로를 포함해야 합니다. pParameters의 인수에 모듈 이름과 같은 긴 파일 이름을 사용하는 경로가 포함된 경우 경로 주위에 따옴표를 사용합니다.

실행하려는 프로그램이 회신 또는 다운로드 파일을 사용하는 경우 프로그램은 IBackgroundCopyJob::Complete 메서드를 호출하여 클라이언트에서 파일을 사용할 수 있도록 해야 합니다.

IBackgroundCopyJob::SetNotifyFlags 메서드를 호출하여 프로그램을 실행할 시기를 지정합니다. 작업 수정 이벤트가 아닌 작업 오류 또는 전송된 이벤트에 대해서만 명령줄 실행을 요청할 수 있습니다. 이벤트가 발생한 후에도 SetNotifyCmdLine 메서드를 호출하더라도 BITS는 명령줄을 계속 실행합니다.

BITS 작업이 서비스 계정 컨텍스트(예: networkservice/localsystem/localservice)에 있는 경우 명령줄 콜백 형식이 실행되지 않습니다.

SetNotifyCmdLine 메서드와 IBackgroundCopyJob::SetNotifyInterface 메서드를 모두 호출하는 경우 알림 인터페이스가 유효하지 않거나 BITS가 호출하는 알림 메서드가 실패 코드를 반환하는 경우에만 BITS가 명령줄을 실행합니다. 예를 들어 BITS가 호출하는 알림 메서드가 E_FAIL 반환하는 경우 BITS는 명령줄을 실행합니다. 그러나 알림 메서드가 S_OK 반환하는 경우 BITS는 명령줄을 실행하지 않습니다. 알림 메서드와 명령줄 실행 요청이 모두 실패하면 BITS는 최소 재시도 기간이 만료된 후 알림을 다시 보냅니다.

IBackgroundCopyJob::TakeOwnership 메서드를 호출하면 작업에서 명령줄 알림이 제거됩니다.

예제

SetNotifyCmdLine 메서드를 호출하는 예제는 프로그램 실행 등록을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2003
대상 플랫폼 Windows
헤더 bits1_5.h(Bits.h 포함)
라이브러리 Bits.lib
DLL BitsPrx2.dll
재배포 가능 파일 Windows XP의 BITS 1.5

추가 정보

IBackgroundCopyJob2::GetNotifyCmdLine

IBackgroundCopyJob::SetNotifyFlags

IBackgroundCopyJob::SetNotifyInterface