다음을 통해 공유


OpenVirtualDisk 함수(virtdisk.h)

사용할 VHD(가상 하드 디스크) 또는 CD 또는 ISO(DVD 이미지 파일)를 엽니다.

구문

DWORD OpenVirtualDisk(
  [in]           PVIRTUAL_STORAGE_TYPE         VirtualStorageType,
  [in]           PCWSTR                        Path,
  [in]           VIRTUAL_DISK_ACCESS_MASK      VirtualDiskAccessMask,
  [in]           OPEN_VIRTUAL_DISK_FLAG        Flags,
  [in, optional] POPEN_VIRTUAL_DISK_PARAMETERS Parameters,
  [out]          PHANDLE                       Handle
);

매개 변수

[in] VirtualStorageType

유효한 VIRTUAL_STORAGE_TYPE 구조체에 대한 포인터입니다.

[in] Path

열 가상 디스크 이미지의 유효한 경로에 대한 포인터입니다.

[in] VirtualDiskAccessMask

VIRTUAL_DISK_ACCESS_MASK 열거형의 유효한 값입니다.

[in] Flags

OPEN_VIRTUAL_DISK_FLAG 열거형 값의 유효한 조합입니다.

[in, optional] Parameters

유효한 OPEN_VIRTUAL_DISK_PARAMETERS 구조체에 대한 선택적 포인터입니다. NULL일 수 있습니다.

[out] Handle

열린 가상 디스크를 나타내는 핸들 개체에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값은 ERROR_SUCCESS (0)이고 Handle 매개 변수에는 새 가상 디스크 개체에 대한 유효한 포인터가 포함됩니다.

함수가 실패하면 반환 값은 오류 코드이고 Handle 매개 변수의 값은 정의되지 않습니다. 자세한 내용은 시스템 오류 코드를 참조하세요.

설명

영구적으로 연결된 가상 디스크에 대한 핸들을 열려고 할 때 열린 요청 실패를 방지하기 위해 다음 요구 사항이 적용됩니다.

  • VirtualDiskAccessMask 매개 변수에는 VIRTUAL_DISK_ACCESS_DETACH(0x00040000) 플래그가 포함되어야 합니다.
  • 영구적으로 연결된 가상 디스크를 만든 원래 열린 작업에서 읽기 액세스만 요청한 경우 파일에 대한 쓰기 액세스를 요청하면 안 됩니다.
OpenVirtualDisk 함수가 오류 코드 값 ERROR_INVALID_PARAMETER(87)로 실패하는 경우 원인은 다음 조건 중 때문일 수 있습니다.
  • VirtualStorageType 매개 변수는 NULL입니다.
  • Path 매개 변수는 NULL입니다.
  • VirtualDiskAccessMask 매개 변수는 값(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)으로 설정됩니다.
  • Flags 매개 변수는 값(Flags & ~(OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS | OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE))으로 설정됩니다.
  • Parameters 매개 변수의 Version 멤버가 OPEN_VIRTUAL_DISK_VERSION_1 또는 OPEN_VIRTUAL_DISK_VERSION_2 설정되지 않았습니다.
가상 디스크 이미지 파일이 포함된 호스트 볼륨을 압축하거나 EFS를 암호화할 수 없습니다. 호스트 볼륨이 압축되었거나 초기 가상 디스크를 만든 후 호스트 볼륨이 EFS 암호화된 경우 오류 ERROR_FILE_ENCRYPTED(6002)가 있는 경우 오류 ERROR_UNSUPPORTED_COMPRESSION(618)로 인해 이 함수가 실패합니다.

Path 매개 변수가 가리키는 경로는 로컬 네트워크 공유(루프백을 통한 네트워크 공유)에 있을 수 없습니다. 경로가 로컬 네트워크 공유에 있는 경우 오류 ERROR_FILE_SYSTEM_LIMITATION (665)로 이 함수가 실패합니다. ISO 가상 디스크가 열려 있고 파일 크기가 2KB ( 2,048바이트)의 배수가 아니거나 34KB(34,816바이트) 이상이거나 볼륨 구조 설명자에 알려진 CDFS 또는 UDFS 볼륨 식별자가 없는 경우 오류 ERROR_FILE_CORRUPT(1392)로 인해 이 함수가 실패합니다.

Handle 매개 변수에서 반환된 개체 핸들을 사용하여 애플리케이션이 완료되면 CloseHandle 함수를 사용하여 핸들을 닫습니다.

CD 및 DVD 이미지 파일(ISO)은 Windows 8 및 Windows Server 2012 전에 지원되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7
지원되는 최소 서버 Windows Server 2008 R2
대상 플랫폼 Windows
헤더 virtdisk.h
라이브러리 VirtDisk.lib
DLL VirtDisk.dll

추가 정보

VHD 정보

CreateVirtualDisk

VHD 참조