Share via


IVdsLun::Extend 메서드(vds.h)

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

지정된 바이트 수만큼 LUN을 확장합니다.

구문

HRESULT Extend(
  [in]  ULONGLONG     ullNumberOfBytesToAdd,
  [in]  VDS_OBJECT_ID *pDriveIdArray,
  [in]  LONG          lNumberOfDrives,
  [out] IVdsAsync     **ppAsync
);

매개 변수

[in] ullNumberOfBytesToAdd

LUN을 확장할 바이트 수입니다. 바이트 수는 드라이브의 블록 또는 섹터 크기의 짝수 배수일 필요는 없습니다. 공급자는 정렬 요구 사항 또는 기타 제한을 충족하기 위해 바이트 수를 위아래로 반올림할 수 있습니다. 대부분의 경우 공급자가 반올림되어 드문 예외를 제외하고 LUN이 요청된 바이트 수 이상으로 확장되도록 합니다.

[in] pDriveIdArray

드라이브 GUID 배열에 대한 포인터입니다. 공급자는 이러한 드라이브를 사용하여 LUN을 확장합니다. 드라이브는 지정된 시퀀스에서 사용됩니다. 공급자는 다음 드라이브로 이동하기 전에 한 드라이브의 모든 익스텐트를 사용하고 LUN이 요청된 바이트 수만큼 확장되면 중지됩니다.

또는 호출자는 이 매개 변수에서 NULL 을 전달하고 lNumberOfDrives 매개 변수에 0을 전달하여 공급자에게 드라이브를 자동으로 선택하도록 지시할 수 있습니다. NULL 전달은 lNumberOfDrives 매개 변수가 0인 경우에만 유효합니다.

[in] lNumberOfDrives

pDriveIdArray 매개 변수에 지정된 드라이브 수입니다. 호출자가 0을 통과하면 공급자가 드라이브를 선택합니다.

[out] ppAsync

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

반환 값

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

반환 코드/값 Description
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
이 반환 값은 배열에 대한 정보를 캐시하는 공급자 내부의 소프트웨어 또는 통신 문제를 알릴 수 있습니다. IVdsHwProvider::Reenumerate 메서드와 IVdsHwProvider::Refresh 메서드를 사용하여 캐시를 복원합니다.
VDS_E_OBJECT_DELETED
0x8004240BL
LUN 개체가 더 이상 존재하지 않습니다.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN이 실패 상태이며 요청된 작업을 수행할 수 없습니다.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
다른 작업이 진행 중입니다. 이 작업은 이전 작업 또는 작업이 완료될 때까지 진행할 수 없습니다.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
VDS_OBJECT_ID 상수를 사용하는 모든 메서드에서 반환할 수 있습니다. 이 반환 값은 식별자가 기존 개체를 참조하지 않음을 나타냅니다.
VDS_E_NOT_SUPPORTED
0x80042400L
이 작업 또는 매개 변수 조합은 이 공급자에서 지원되지 않습니다.
VDS_E_NOT_ENOUGH_SPACE
0x8004240FL
이 작업에 사용할 수 있는 공간이 충분하지 않습니다.
VDS_E_NOT_ENOUGH_DRIVE
0x80042410L
이 작업을 완료하기 위해 하위 시스템에 무료 드라이브가 충분하지 않습니다.

설명

호출자는 공급자가 LUN을 확장하는 데 사용할 드라이브 목록을 지정하거나 공급자에게 드라이브를 자동으로 선택하도록 지시할 수 있습니다.

LUN이 확장된 후 호출자는 IOCTL_DISK_UPDATE_PROPERTIES 제어 코드를 사용하여 LUN이 마스크 해제된 컴퓨터에 업데이트된 디스크 크기를 표시하도록 해야 합니다.

구현자는 호출이 비동기 작업을 시작하는지 여부에 관계없이 이 메서드에 대한 IVdsAsync 인터페이스에 대한 포인터를 반환해야 합니다.

ullNumberOfBytesToAdd 매개 변수가 pDriveIdArray 매개 변수에 지정된 드라이브에서 사용할 수 있는 바이트 수보다 큰 경우 먼저 지정된 드라이브를 사용한 다음 사용 가능한 다른 드라이브 중에서 선택합니다. 요청된 바이트 수만큼 LUN을 확장하는 드라이브가 충분하지 않은 경우 오류를 반환하고 LUN을 확장하지 않습니다.

요구 사항

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

추가 정보

IVdsAsync

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::Shrink

IVdsSubSystem::CreateLun