次の方法で共有


OpenVirtualDisk 関数 (virtdisk.h)

使用する仮想ハード ディスク (VHD) または CD または DVD イメージ ファイル (ISO) を開きます。

構文

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 暗号化できません。 この関数は、ホスト ボリューム 圧縮されている場合はエラー ERROR_UNSUPPORTED_COMPRESSION (618) で失敗し、最初の仮想ディスクの作成後にホスト ボリュームが EFS 暗号化されている場合はエラー ERROR_FILE_ENCRYPTED (6002) で失敗します。

Path パラメーターが指すパスは、ローカル ネットワーク共有 (ループバック経由のネットワーク共有) 上にすることはできません。 パスがローカル ネットワーク共有上にある場合、この関数はエラー ERROR_FILE_SYSTEM_LIMITATION (665) で失敗します。 ISO 仮想ディスク 開いている場合、ファイル サイズが 2 KB (2,048 バイト) の偶数の倍数ではない場合、またはボリューム構造記述子に既知の 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
Library VirtDisk.lib
[DLL] VirtDisk.dll

こちらもご覧ください

VHD について

CreateVirtualDisk

VHD リファレンス