다음을 통해 공유


CVssWriterEx::InitializeEx 메서드(vswriter.h)

CVssWriterEx 개체를 초기화하고 기록기 애플리케이션이 VSS와 상호 작용할 수 있도록 합니다. Initialize 메서드와 달리 InitializeEx 메서드를 사용하면 호출자가 기록기 버전 정보를 지정할 수 있습니다.

InitializeExCVssWriterEx 기본 클래스에 의해 구현되는 공용 메서드입니다.

작성기는 Initialize 또는 InitializeEx를 호출해야 하지만 둘 다 호출하지는 않습니다.

구문

HRESULT InitializeEx(
  [in] VSS_ID                     WriterId,
  [in] LPCWSTR                    wszWriterName,
  [in] DWORD                      dwMajorVersion,
  [in] DWORD                      dwMinorVersion,
  [in] VSS_USAGE_TYPE             ut,
  [in] VSS_SOURCE_TYPE            st,
  [in] VSS_APPLICATION_LEVEL      nLevel,
  [in] DWORD                      dwTimeoutFreeze,
  [in] VSS_ALTERNATE_WRITER_STATE aws,
  [in] bool                       bIOThrottlingOnly,
  [in] LPCWSTR                    wszWriterInstanceName
);

매개 변수

[in] WriterId

기록기 클래스의 GUID(Globally Unique Identifier)입니다.

[in] wszWriterName

기록기의 이름을 포함하는 null로 끝나는 와이드 문자열입니다. 이 문자열은 지역화되지 않았습니다.

[in] dwMajorVersion

작성기 애플리케이션의 주 버전입니다. 자세한 내용은 주의 섹션을 참조하세요.

[in] dwMinorVersion

기록기 애플리케이션의 부 버전입니다. 자세한 내용은 주의 섹션을 참조하세요.

[in] ut

기록기에서 관리하는 데이터가 호스트 시스템에서 사용되는 방식을 나타내는 VSS_USAGE_TYPE 열거형 값입니다.

[in] st

기록기에서 관리하는 데이터 형식을 나타내는 VSS_SOURCE_TYPE 열거형 값입니다.

[in] nLevel

기록기가 Freeze 이벤트 알림을 받는 애플리케이션 수준을 나타내는 VSS_APPLICATION_LEVEL 열거형 값입니다.

이 매개 변수의 기본값은 VSS_APP_FRONT_END.

[in] dwTimeoutFreeze

기록기가 이벤트 동결 알림을 수신하고 VSS에서 일치하는 Thaw 이벤트 알림을 수신하는 사이에 허용되는 최대 시간(밀리초)입니다. 제한 시간이 만료되면 기록기 OnAbort 메서드가 자동으로 호출됩니다.

이 매개 변수의 기본값은 60000입니다.

[in] aws

작성기에 연결된 대체 작성기가 있는지 여부를 나타내는 VSS_ALTERNATE_WRITER_STATE 열거형 값입니다.

이 매개 변수의 기본값은 VSS_AWS_NO_ALTERNATE_WRITER. 호출자는 이 기본값을 재정의해서는 안 됩니다. 이 매개 변수는 나중에 사용하도록 예약되어 있습니다.

[in] bIOThrottlingOnly

I/O 제한 메서드를 사용하도록 설정하면 이 매개 변수를 true 로 설정하고, 그렇지 않으면 false 로 설정합니다.

이 매개 변수의 기본값은 false입니다. 호출자는 이 기본값을 재정의해서는 안 됩니다. 이 매개 변수는 나중에 사용하도록 예약되어 있습니다.

[in] wszWriterInstanceName

기록기 instance 이름을 포함하는 null로 끝나는 와이드 문자열입니다.

이 매개 변수의 기본값은 NULL입니다. 기록기에 여러 인스턴스가 있고 복원 이벤트가 필요한 경우 이 매개 변수가 필요하며 NULL일 수 없습니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

반환 값

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

의미
S_OK
기록기 개체가 성공적으로 초기화되었습니다.
S_FALSE
기록기 개체를 초기화할 수 없습니다. Windows가 안전 모드이거나 설정 중이었기 때문에 VSS 기록기 인프라가 비활성 상태였습니다.
E_ACCESSDENIED
호출자가 관리자가 아닙니다.
E_INVALIDARG
매개 변수 값 중 하나가 잘못되었습니다.
E_OUTOFMEMORY
호출자가 메모리가 부족하거나 다른 시스템 리소스가 부족합니다.
VSS_E_UNEXPECTED
예기치 않은 오류입니다. 오류 코드가 오류 로그 파일에 기록됩니다. 자세한 내용은 VSS에서 이벤트 및 오류 처리를 참조하세요.

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

설명

InitializeEx 메서드는 dwMajorVersiondwMinorVersion 매개 변수를 제외하고 Initialize 메서드와 동일합니다. 작성기가 InitializeEx 대신 Initialize를 사용하는 경우 작성기 버전은 IVssExamineWriterMetadataEx2::GetVersion 메서드에 의해 0.0(주 버전 = 0, 부 버전 = 0)으로 보고됩니다.

dwMajorVersiondwMinorVersion 매개 변수는 다음 VSS 규칙에 따라 기록기 주 버전 및 부 버전 번호를 지정하는 데 사용됩니다.

  • Windows XP 이후 작성기가 변경되었거나 Windows Vista의 새 버전인 경우 해당 버전 번호에 대해 1.0 이상을 지정해야 합니다.
  • 기록기의 부 버전 번호는 릴리스된 버전의 작성기에 요청자와의 상호 작용에 영향을 주는 사소한 변경 내용이 포함될 때마다 1씩 증가해야 합니다. 예를 들어 기록기 QFE 또는 서비스 팩의 파일 사양을 수정하면 부 버전 번호가 증가하는 것이 정당화됩니다. 그러나 작성기의 베타 버전 또는 릴리스 후보 버전 간 변경은 부 버전 번호 변경을 정당화하지 않습니다.
  • 기록기의 릴리스된 버전에 중대한 변경 내용이 포함될 때마다 작성기의 주 버전 번호가 1씩 증가해야 합니다. 예를 들어 새 버전의 기록기를 사용하여 백업된 데이터를 이전 버전의 작성기를 사용하여 복원할 수 없는 경우 새 작성기의 주 버전 번호를 증가시켜야 합니다.
  • 주 버전 번호가 증가될 때마다 부 버전 번호를 0으로 다시 설정해야 합니다.
기록기에서 버전 번호를 지정하지 않으면 VSS는 기본 버전 번호 0.0을 할당합니다.

VSS는 기록기 애플리케이션의 각 instance 고유한 기록기 instance ID를 할당합니다. 시스템에 두 개 이상의 instance 동시에 있는 경우(예: 여러 SQL 서버가 시스템에서 실행되는 경우) 각 작성기는 기록기 클래스 ID와 기록기 instance ID의 조합으로 고유하게 식별됩니다.

wszWriterInstanceName 매개 변수를 사용하면 다중 instance 기록기에서 사람이 읽을 수 있는 문자열로 instance 각 작성기의 영구 이름을 지정할 수 있습니다. 이 이름은 시스템의 기록기의 모든 인스턴스에서 고유해야 합니다. 기록기에 여러 인스턴스가 있고 복원 이벤트가 필요한 경우 이 매개 변수에 NULL 이 아닌 문자열을 지정해야 합니다. VSS는 instance 이름을 사용하여 다중 instance 기록기를 올바르게 복원합니다.

요구 사항

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

추가 정보

CVssWriterEx

IVssExamineWriterMetadataEx2::GetVersion