다음을 통해 공유


IVdsLun::D elete 메서드(vdshwprv.h)

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

LUN 및 모든 해당 플렉스를 삭제합니다. LUN의 모든 데이터가 손실됩니다. VDS는 LUN에 할당된 범위를 해제합니다.

구문

HRESULT Delete();

반환 값

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

반환 코드/값 설명
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
다른 작업이 진행 중입니다. 이 작업은 이전 작업 또는 작업이 완료될 때까지 진행할 수 없습니다.

설명

애플리케이션이 IVdsLun 인터페이스에 대한 참조를 보유하고 IVdsLun::D elete를 호출하는 경우 구현자는 해당 인터페이스의 GetProperties와 같은 메서드에 대한 후속 호출에서 VDS_E_OBJECT_DELETED 반환해야 합니다. 이 경우 인터페이스에는 미해결 참조가 있으며 유효하지만 기본 개체가 더 이상 존재하지 않습니다.

대상 컴퓨터에 대한 마스크를 해제한 LUN이 삭제되면 버스가 다시 검사될 때까지 해당 머신에 대한 LUN의 표시 유형이 변경되지 않을 수 있습니다. 대상 컴퓨터의 VDS 애플리케이션은 IVdsService::Reenumerate를 호출하여 버스 다시 검사를 시작합니다. 버스 다시 검사를 시작하는 것은 하드웨어 공급자가 아니라 VDS 애플리케이션의 책임입니다.

IVdsSubSystem::QueryLuns가 동시에 실행되는 다른 스레드에서 호출되는 동안 IVdsLun::D elete와 같은 메서드가 한 스레드에서 호출되면 공급자 액세스 위반이 발생할 수 있습니다. 하드웨어 공급자는 이러한 동기화 문제를 최소화하기 위해 필요에 따라 이러한 메서드를 직렬화해야 합니다.

하드웨어 공급자는 LUN을 다시 사용할 수 있도록 LUN의 파티션 정보를 제거할 책임이 있습니다. LUN이 MBR 디스크인 경우 디스크의 첫 번째 및 마지막 1MB에 0을 작성하여 이 작업을 수행합니다. GPT 디스크의 경우 디스크의 첫 번째 및 마지막 16KB에 0을 기록해야 합니다.

요구 사항

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

추가 정보

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::GetProperties