IVdsVolume::Extend 메서드(vds.h)
[Windows 8 및 Windows Server 2012 가상 디스크 서비스 COM 인터페이스는 Windows Storage 관리 API로 대체됩니다.]
각 플렉스의 각 멤버에 디스크 익스텐트 를 추가하여 현재 볼륨의 크기를 확장합니다.
구문
HRESULT Extend(
[in] VDS_INPUT_DISK *pInputDiskArray,
[in] LONG lNumberOfDisks,
[out] IVdsAsync **ppAsync
);
매개 변수
[in] pInputDiskArray
VDS_INPUT_DISK 구조체의 배열에 대한 포인터입니다. 각 디스크에 대해 하나의 구조입니다.
[in] lNumberOfDisks
볼륨의 총 디스크 수입니다. 볼륨 플렉스에 볼륨을 확장할 수 있는 충분한 공간이 있는 경우 호출자는 0을 전달할 수 있습니다. pInputDiskArray는NULL이어야 합니다.
[out] ppAsync
반환 시 VDS가 초기화하는 IVdsAsync 인터페이스 포인터의 주소입니다. 호출자는 인터페이스를 해제해야 합니다. 이 포인터를 사용하여 작업 상태를 취소, 대기 또는 쿼리할 수 있습니다. 이 인터페이스에서 IVdsAsync::Wait 메서드를 호출하고 성공 HRESULT 값이 반환되는 경우 각 인터페이스 포인터에서 IUnknown::Release 메서드를 호출하여 VDS_ASYNC_OUTPUT 구조에서 반환된 인터페이스를 해제해야 합니다. 그러나 Wait가 실패 HRESULT 값을 반환하거나 Wait의 pHrResult 매개 변수가 오류 HRESULT 값을 수신하는 경우 VDS_ASYNC_OUTPUT 구조체의 인터페이스 포인터는 NULL이며 해제할 필요가 없습니다. Winerror.h에 정의된 SUCCEEDED 및 FAILED 매크로를 사용하여 성공 또는 실패 HRESULT 값을 테스트할 수 있습니다.
반환 값
이 메서드는 표준 HRESULT 값(예: E_INVALIDARG 또는 E_OUTOFMEMORY) 및 VDS 관련 반환 값을 반환할 수 있습니다. 또한 HRESULT_FROM_WIN32 매크로를 사용하여 변환된 시스템 오류 코드를 반환할 수도 있습니다. 오류는 VDS 자체 또는 사용 중인 기본 VDS 공급자 에서 발생할 수 있습니다. 가능한 반환 값은 다음과 같습니다.
반환 코드/값 | Description |
---|---|
|
메서드가 성공적으로 경쟁했습니다. |
|
볼륨의 파일 시스템이 작업을 지원하지 않으므로 볼륨을 확장할 수 없습니다. |
|
볼륨을 확장할 공간이 부족합니다. |
|
볼륨이 정상이 아닙니다. |
설명
이 메서드는 동일한 디스크에서 단순 볼륨을 확장하거나 볼륨을 여러 디스크로 확장하여 스팬 볼륨을 만듭니다. 호출자는 기본 디스크에서 볼륨을 확장할 수 있지만 디스크 익스텐트는 볼륨과 연속되어야 합니다.
VDS는 확장 볼륨 크기에 맞게 파일 시스템을 자동으로 확장합니다. 파일 시스템은 이 작업을 지원해야 합니다. 호출자가 사용할 익스텐트 지정에 실패하는 경우 VDS는 파일 시스템을 확장하지만 볼륨은 확장하지 않습니다.
확장 및 축소 작업은 NTFS 및 RAW 볼륨에서만 지원됩니다.
VDS는 볼륨을 확장할 때 다음 규칙을 적용합니다.
- 단순하고 스팬된 플렉스 유형의 경우 VDS는 익스텐트 범위가 동일한 디스크에 있는지 여부에 관계없이 다른 플렉스에 아직 기여하지 않는 디스크 익스텐트와 함께 플렉스의 유일한 멤버를 확장합니다. VDS는 호출자가 지정한 순서대로 디스크 익스텐트 를 사용하며 익스텐트 멤버 인덱스를 무시합니다. 기본 디스크가 아닌 한 VDS는 동일한 디스크 또는 다른 디스크의 디스크 익스텐트에서 플렉스의 유일한 멤버를 확장할 수 있습니다.
- 패리티 플렉스 형식의 스트라이프 및 스트라이프의 경우 VDS는 다음과 같이 플렉스의 멤버에 익스텐트를 할당합니다.
- 익스텐트 는 호출자가 지정한 멤버 인덱스로 이동합니다.
- 호출자가 멤버 ID를 지정하지 못할 때 익스텐트 는 동일한 디스크를 차지하는 멤버 인덱스로 이동합니다.
구현자는 호출이 비동기 작업을 시작하는지 여부에 관계없이 이 메서드에 대한 IVdsAsync 인터페이스에 대한 포인터를 반환해야 합니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista[데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003[데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | vds.h |
라이브러리 | Uuid.lib |