다음을 통해 공유


IVdsVolumePlex::Repair 메서드(vds.h)

[Windows 8 및 Windows Server 2012 가상 디스크 서비스 COM 인터페이스는 Windows Storage 관리 API로 대체됩니다.]

잘못된 멤버를 좋은 디스크로 이동하여 내결함성 볼륨 플렉스를 복구합니다.

구문

HRESULT Repair(
  [in]  VDS_INPUT_DISK *pInputDiskArray,
  [in]  LONG           lNumberOfDisks,
  [out] IVdsAsync      **ppAsync
);

매개 변수

[in] pInputDiskArray

각 디스크에 대해 하나의 구조인 VDS_INPUT_DISK 구조체 배열에 대한 포인터입니다.

참고 이 구조체의 필수 멤버(diskIdullSize)만 포함합니다.
 
Windows Server 2003: 패리티(RAID-5)로 스트라이프된 볼륨만 이 방법으로 복구할 수 있으며 한 번에 하나의 새 디스크만 이 메서드에 전달할 수 있습니다.

[in] lNumberOfDisks

볼륨의 총 디스크 수입니다.

[out] ppAsync

반환 시 VDS가 초기화하는 IVdsAsync 인터페이스 포인터의 주소입니다. 호출자는 인터페이스를 해제해야 합니다. 이 포인터를 사용하여 작업의 상태를 취소, 대기 또는 쿼리할 수 있습니다.

이 메서드에서 IVdsAsync::Wait를 호출하고 성공 HRESULT 값이 반환되는 경우 각 인터페이스 포인터에서 IUnknown::Release 메서드를 호출하여 VDS_ASYNC_OUTPUT 구조에 반환된 인터페이스를 해제해야 합니다. 그러나 Wait가 오류 HRESULT 값을 반환하거나 WaitpHrResult 매개 변수가 오류 HRESULT 값을 수신하는 경우 VDS_ASYNC_OUTPUT 구조의 인터페이스 포인터는 NULL이며 해제할 필요가 없습니다. Winerror.h에 정의된 SUCCEEDED 및 FAILED 매크로를 사용하여 성공 또는 실패 HRESULT 값을 테스트할 수 있습니다.

반환 값

이 메서드는 E_INVALIDARG 또는 E_OUTOFMEMORY 같은 표준 HRESULT 값과 VDS별 반환 값을 반환할 수 있습니다. HRESULT_FROM_WIN32 매크로를 사용하여 변환된 시스템 오류 코드를 반환할 수도 있습니다. 오류는 VDS 자체 또는 사용 중인 기본 VDS 공급자 에서 발생할 수 있습니다. 가능한 반환 값은 다음과 같습니다.

반환 코드/값 Description
S_OK
복구가 성공적으로 완료되었습니다.
E_NOTIMPL
호출자는 항상 정상이며 복구할 필요가 없는 기본 볼륨의 플렉스를 복구하려고 했습니다.
VDS_E_REPAIR_VOLUMESTATE
0x80042460L
플렉스 또는 볼륨에 액세스할 수 없습니다. 또한 plex의 상태가 중복 실패, 중복 실패 또는 중복 실패 실패 중 하나가 아닌 경우 이 오류를 반환할 수 있습니다.
VDS_E_DISK_IN_USE_BY_VOLUME
0x8004244CL
디스크의 익스텐트 중 하나 이상이 이미 볼륨에서 사용되고 있습니다.
VDS_E_VOLUME_INCOMPLETE
0x80042432L
볼륨에 하나 이상의 멤버가 없거나 불완전합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista[데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003[데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 vds.h
라이브러리 Uuid.lib

추가 정보

IVdsAsync

IVdsAsync::Wait

IVdsVolumePlex

VDS_ASYNC_OUTPUT

VDS_INPUT_DISK