CreateVirtualDisk 関数 (virtdisk.h)
既定のパラメーターを使用するか、既存の仮想ディスクまたは物理ディスクを使用して、仮想ハード ディスク (VHD) イメージ ファイルを作成します。
構文
DWORD CreateVirtualDisk(
[in] PVIRTUAL_STORAGE_TYPE VirtualStorageType,
[in] PCWSTR Path,
[in] VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask,
[in, optional] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] CREATE_VIRTUAL_DISK_FLAG Flags,
[in] ULONG ProviderSpecificFlags,
[in] PCREATE_VIRTUAL_DISK_PARAMETERS Parameters,
[in, optional] LPOVERLAPPED Overlapped,
[out] PHANDLE Handle
);
パラメーター
[in] VirtualStorageType
目的のディスクの種類とベンダー情報を含む VIRTUAL_STORAGE_TYPE 構造体へのポインター。
[in] Path
新しい仮想ディスク イメージ ファイルへのパスを表す有効な文字列へのポインター。
[in] VirtualDiskAccessMask
新しく作成された仮想ディスク ファイルを開くときに使用する VIRTUAL_DISK_ACCESS_MASK 値。 Parameters パラメーターの Version メンバーが CREATE_VIRTUAL_DISK_VERSION_2 に設定されている場合は、VIRTUAL_DISK_ACCESS_NONE (0) 値のみを指定できます。
[in, optional] SecurityDescriptor
仮想ディスク イメージ ファイルに適用する SECURITY_DESCRIPTOR への省略可能なポインター。 このパラメーターが NULL の場合は、親ディレクトリのセキュリティ記述子が使用されます。
[in] Flags
作成フラグ。 これは、CREATE_VIRTUAL_DISK_FLAG 列挙体の有効な組み合わせである必要があります。
[in] ProviderSpecificFlags
作成される仮想ディスクの種類に固有のフラグ。 何も必要ない場合は、0 を指定できます。
[in] Parameters
作成パラメーター データを含む有効な CREATE_VIRTUAL_DISK_PARAMETERS 構造体へのポインター。
[in, optional] Overlapped
非同期操作が必要な場合は、有効な OVERLAPPED 構造体への省略可能なポインター。
[out] Handle
新しく作成された仮想ディスクを表すハンドル オブジェクトへのポインター。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS され、 Handle パラメーターには新しい仮想ディスク オブジェクトへの有効なポインターが含まれます。
関数が失敗した場合、戻り値はエラー コードであり、 Handle パラメーターの値は未定義です。 詳細については、「 システム エラー コード」を参照してください。
注釈
CreateVirtualDisk 関数がエラー コード値 ERROR_INVALID_PARAMETER で失敗した場合、原因は次のいずれかの条件が原因である可能性があります。
- VirtualStorageType パラメーターが NULL です。
- Parameters パラメーターは NULL です。
- Parameters パラメーターの Version メンバーは、CREATE_VIRTUAL_DISK_VERSION_1またはCREATE_VIRTUAL_DISK_VERSION_2に設定されていません。
- Parameters パラメーターの Version メンバーは CREATE_VIRTUAL_DISK_VERSION_2 に設定されていますが、VirtualDiskAccessMask パラメーターは VIRTUAL_DISK_ACCESS_NONE に設定されていません。
- Parameters パラメーターの BlockSizeInBytes メンバーは、CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE (0)、0x80000 (512 KB)、または0x200000 (2 MB) に設定されていません。
- Parameters パラメーターの MaximumSize メンバーは 3 MB 未満です。
- Parameters パラメーターの MaximumSize メンバーは、SectorSizeInBytes メンバーの値と一致しません。
- VirtualDiskAccessMask パラメーターは、 の
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
値に設定されます。 - Flags パラメーターがCREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATIONを超えています。
さまざまな種類の仮想ディスクを作成する場合は、次の作成パラメーターの組み合わせをお勧めします。
- CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION フラグを指定する必要があります。
- ParentPath を指定しないでください。
- 必要に応じて SourcePath を指定できます。
- CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION フラグは指定しないでください。
- ParentPath を指定しないでください。
- 必要に応じて SourcePath を指定できます。
- CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION フラグは指定しないでください。
- ParentPath を指定する必要があります。
- SourcePath を指定しないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 |
サポートされている最小のサーバー | Windows Server 2008 R2 |
対象プラットフォーム | Windows |
ヘッダー | virtdisk.h |
Library | VirtDisk.lib |
[DLL] | VirtDisk.dll |