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
所建立虛擬磁碟類型的特定旗標。 如果不需要,則可能為零。
[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 |
程式庫 | VirtDisk.lib |
Dll | VirtDisk.dll |