Share via


IVdsDrive::QueryExtents 메서드(vds.h)

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

할당된 익스텐트와 할당되지 않은 익스텐트를 포함하여 드라이브의 익스텐트 배열을 반환합니다.

구문

HRESULT QueryExtents(
  [out] VDS_DRIVE_EXTENT **ppExtentArray,
  [out] LONG             *plNumberOfExtents
);

매개 변수

[out] ppExtentArray

호출자가 전달한 VDS_DRIVE_EXTENT 구조체의 배열에 대한 포인터입니다. 호출자는 CoTaskMemFree 함수를 사용하여 이 배열을 해제해야 합니다.

[out] plNumberOfExtents

VDS_DRIVE_EXTENT 구조에서 반환되는 드라이브 익스텐트 수에 대한 포인터입니다.

반환 값

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

반환 코드/값 Description
S_OK
익스텐트 정보가 성공적으로 반환되었습니다. 익스텐트가 없는 드라이브의 경우 배열이 비어 있고 plNumberOfExtents 값이 0으로 설정되고 ppExtentArray 값이 NULL로 설정됩니다.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
이 반환 값은 배열에 대한 정보를 캐시하는 공급자 내부의 소프트웨어 또는 통신 문제를 알릴 수 있습니다. IVdsHwProvider::Reenumerate 메서드와 IVdsHwProvider::Refresh 메서드를 사용하여 캐시를 복원합니다.
VDS_E_OBJECT_DELETED
0x8004240BL
드라이브 개체가 더 이상 존재하지 않습니다.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
드라이브가 실패 상태이며 요청된 작업을 수행할 수 없습니다.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
다른 작업이 진행 중입니다. 이 작업은 이전 작업 또는 작업이 완료될 때까지 진행할 수 없습니다.
VDS_E_NOT_SUPPORTED
0x80042400L
하위 시스템은 이 메서드를 지원하지 않습니다.

설명

드라이브는 모든 수의 LUN에 익스텐트 역할을 할 수 있으며, 이러한 LUN은 네트워크의 다양한 컴퓨터에 마스크를 해제할 수 있습니다. IVdsLunPlex::QueryExtents 메서드를 사용하여 LUN 플렉스의 모든 익스텐트를 확인합니다.

VDS_DRIVE_EXTENT 구조체의 LunId 멤버는 할당된 각 익스텐트에서 기여하는 LUN의 GUID를 지정합니다. 따라서 이 메서드의 결과를 사용하여 ppExtentArray에서 반환된 고유한 LunId 값의 수를 계산하여 드라이브가 기여하는 LUN 수를 확인할 수 있습니다.

요구 사항

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

추가 정보

IVdsDrive

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLunPlex::QueryExtents

VDS_DRIVE_EXTENT