다음을 통해 공유


IVssBackupComponents::GetWriterStatus 메서드(vsbackup.h)

GetWriterStatus 메서드는 지정된 작성기의 상태 반환합니다.

구문

HRESULT GetWriterStatus(
  [in]  UINT             iWriter,
  [out] VSS_ID           *pidInstance,
  [out] VSS_ID           *pidWriter,
  [out] BSTR             *pbstrWriter,
  [out] VSS_WRITER_STATE *pnStatus,
  [out] HRESULT          *phResultFailure
);

매개 변수

[in] iWriter

메타데이터를 검색할 기록기의 인덱스입니다. 이 매개 변수의 값은 0에서 n-1까지의 정수이며 여기서 n 은 현재 시스템의 총 기록기 수입니다. n 값은 IVssBackupComponents::GetWriterStatusCount에서 반환됩니다.

[out] pidInstance

기록기의 instance 식별자를 수신하는 호출자가 할당한 변수의 주소입니다.

[out] pidWriter

작성기 클래스의 식별자를 수신하는 호출자가 할당한 변수의 주소입니다.

[out] pbstrWriter

지정된 작성기의 이름을 포함하는 문자열을 수신하는 호출자가 할당한 변수의 주소입니다.

[out] pnStatus

VSS_WRITER_STATE 열거형 값을 수신하는 호출자가 할당한 변수의 주소입니다.

[out] phResultFailure

작성자가 반환한 HRESULT 오류 코드를 수신하는 호출자가 할당한 변수의 주소입니다.

다음은 pHrResultFailure에 지원되는 값입니다.

의미
S_OK
작가는 성공적이었다.
VSS_E_WRITERERROR_INCONSISTENTSNAPSHOT
섀도 복사본에는 애플리케이션 구성 요소를 올바르게 백업하는 데 필요한 볼륨의 하위 집합만 포함됩니다.
VSS_E_WRITERERROR_OUTOFRESOURCES
기록기에 메모리 또는 기타 시스템 리소스가 부족했습니다. 이 오류 코드를 처리하는 권장 방법은 10분을 기다린 다음 작업을 최대 3번 반복하는 것입니다.
VSS_E_WRITERERROR_TIMEOUT
Freeze 및 Thaw 이벤트 간의 시간 제한으로 인해 기록기 작업이 실패했습니다. 이 오류 코드를 처리하는 권장 방법은 10분을 기다린 다음 작업을 최대 3번 반복하는 것입니다.
VSS_E_WRITERERROR_RETRYABLE
전체 백업, 복원 또는 섀도 복사본 만들기 프로세스를 다시 시작한 경우 발생하지 않을 수 있는 오류로 인해 기록기가 실패했습니다. 이 오류 코드를 처리하는 권장 방법은 10분을 기다린 다음 작업을 최대 3번 반복하는 것입니다.
VSS_E_WRITERERROR_NONRETRYABLE
다른 섀도 복사본을 만들 때 발생할 수 있는 오류로 인해 기록기 작업이 실패했습니다. 자세한 내용은 VSS에서 이벤트 및 오류 처리를 참조하세요.
VSS_E_WRITER_NOT_RESPONDING
작성자가 응답하지 않습니다.
VSS_E_WRITER_STATUS_NOT_AVAILABLE
작성기 상태 하나 이상의 작성기에 사용할 수 없습니다. 작성기가 사용 가능한 최대 백업 및 복원 세션 수에 도달했을 수 있습니다.

Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

반환 값

다음은 이 메서드에 대한 유효한 반환 코드입니다.

의미
S_OK
지정한 작성기의 상태 반환했습니다. 작성기가 성공했는지 확인하려면 pHrWriterFailure 매개 변수의 값을 확인해야 합니다. 기록기 오류 코드는 VsWriter.h 및 기록기 오류 및 거부에 나열된 코드 중 하나일 수 있습니다.
E_INVALIDARG
매개 변수 값 중 하나가 잘못되었습니다.
E_OUTOFMEMORY
호출자가 메모리가 부족하거나 다른 시스템 리소스가 부족합니다.
VSS_E_BAD_STATE
백업 구성 요소 개체가 초기화되지 않았거나, 복원 작업 중에 이 메서드가 호출되었거나, 이 메서드가 올바른 시퀀스 내에서 호출되지 않았습니다.
VSS_E_OBJECT_NOT_FOUND
지정한 작성기가 없습니다.
VSS_E_UNEXPECTED
예기치 않은 오류입니다. 오류 코드가 오류 로그 파일에 기록됩니다. 자세한 내용은 VSS에서 이벤트 및 오류 처리를 참조하세요.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 Windows Server 2008 R2 및 Windows 7까지 지원되지 않습니다. 대신 E_UNEXPECTED 사용됩니다.

설명

요청자는 비동기 작업 IVssBackupComponents::GatherWriterStatus 를 호출하고 GetWriterStatus를 호출하기 전에 완료되기를 기다려야 합니다.

호출자가 이 메서드에서 반환된 상태 정보에 대한 액세스를 완료하면 sysFreeString을 호출하여pbstrWriter 매개 변수가 보유한 메모리를 해제해야 합니다.

pHrResultFailure 매개 변수에 반환된 VSS_E_WRITERERROR_XXX 값은 기록기에서 생성됩니다. VSS_E_WRITER_NOT_RESPONDING 및 VSS_E_WRITER_STATUS_NOT_AVAILABLE VSS에서 생성됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 vsbackup.h(VsBackup.h, Vss.h, VsWriter.h 포함)
라이브러리 VssApi.lib

추가 정보

IVssBackupComponents

IVssBackupComponents::GatherWriterStatus

IVssBackupComponents::GetWriterStatusCount