IVdsPack2::CreateVolume2 方法 (vds.h)
[從 Windows 8 和 Windows Server 2012 開始,虛擬磁碟服務 COM 介面會由 Windows 記憶體管理 API 取代。
使用選擇性對齊參數在磁碟套件中建立磁碟區。
語法
HRESULT CreateVolume2(
[in] VDS_VOLUME_TYPE type,
[in] VDS_INPUT_DISK *pInputDiskArray,
[in] LONG lNumberOfDisks,
[in] ULONG ulStripeSize,
[in] ULONG ulAlign,
[out] IVdsAsync **ppAsync
);
參數
[in] type
VDS_VOLUME_TYPE 列舉的值 ,指出要建立的磁碟區類型。
[in] pInputDiskArray
VDS_INPUT_DISK 結構的陣列,指出要在其中建立磁碟區的磁碟。
[in] lNumberOfDisks
pInputDiskArray 參數所指向陣列中的元素數目。
[in] ulStripeSize
新磁碟區的等量大小,以位元組為單位。
[in] ulAlign
磁碟區對齊的位元組數目。 此參數是選擇性的,而且可以是零。 如果指定零,伺服器會根據磁碟區建立所在的磁碟大小來判斷對齊值。
Windows 7、Windows Server 2008 R2、Windows Vista 和 Windows Server 2008: 在基本磁碟上, CreateVolume2 方法會忽略此參數和 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment 登錄機碼。 這是已知的問題,正在解決。 因應措施是使用 IVdsAdvancedDisk::CreatePartition 或 IVdsCreatePartitionEx::CreatePartitionEx 方法 ,在基本磁碟上建立分割區,使其正確對齊。動態分割區和磁碟區會使用下列登入機碼下的值對齊:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vds\Alignment
如果磁碟為 4 GB 或更大,則預設對齊方式為 1 MB,如果磁碟小於 4 GB,則為 64 KB。
[out] ppAsync
在成功完成時, IVdsAsync 介面的指標會接收 IVdsAsync 介面,以監視和控制這項作業。 呼叫端必須在完成介面時釋放接收的介面。 如果在介面上呼叫 IVdsAsync::Wait 方法,並傳回成功的 HRESULT 值,則必須在每個介面指標上呼叫 IUnknown::Release 方法,以釋放VDS_ASYNC_OUTPUT結構中傳回的介面。 不過,如果 Wait 傳回失敗 HRESULT 值,或 Wait 的 pHrResult 參數收到失敗 HRESULT 值,則VDS_ASYNC_OUTPUT結構中的介面指標為 NULL 且不需要釋放。 您可以使用 Winerror.h 中定義的 SUCCEEDED 和 FAILED 宏來測試成功或失敗 HRESULT 值。
傳回值
這個方法可以傳回標準 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 VDS 特定的傳回值。 它也可以使用 HRESULT_FROM_WIN32 宏傳回已轉換的系統錯誤碼。 錯誤可能來自 VDS 本身,或來自正在使用的基礎 VDS 提供者 。 可能的傳回值包括下列專案。
傳回碼/值 | 描述 |
---|---|
|
已成功建立磁碟區。 |
|
未收到磁碟區抵達通知。 您可能需要呼叫 IVdsService::Refresh。 |
|
已成功建立磁碟區,但 VDS 無法更新開機設定數據 (BCD) 存放區中的開機選項。 |
|
指定的對齊方式為零。 |
|
指定的對齊方式不是兩個的乘冪。 |
|
指定的磁碟不屬於相同的套件。 |
|
LDM 服務失敗了方法。 |
|
傳入的範圍大小太小。 |
|
此作業指定的磁碟數目無效。 |
|
磁碟區的成員計數必須大於零。 |
|
成員索引必須以單調方式增加,並以零開頭。 |
|
傳入的磁碟是CD-ROM或 DVD 裝置。 |
|
此磁碟套件上不允許此作業。 |
|
磁碟區的 plex 計數必須大於零。 |
|
plex 索引必須以單調方式增加,並以零開頭。 |
|
以位元組為單位的等量大小必須是 2 的等量和 RAID-5 磁碟區類型的電源,而且所有其他磁碟區類型都必須是零。 |
|
遺漏指定的磁碟。 |
|
卸除式磁碟驅動器中沒有透過磁碟數位列傳入的媒體。 |
|
其中一個磁碟上沒有足夠的空間。 |
|
不支援磁碟區類型。 |
|
找不到至少一個傳入的磁碟。 |
|
單一磁碟無法參與相同磁碟區的多個成員或多個叢集。 |
|
無法存取目標套件。 |
|
呼叫端嘗試建立其他主要分割區或擴充分割區時,已存在具有擴充分割區) 的主要分割區 (數目上限。 |
|
動態提供者快取已損毀。 |
|
每個磁碟區不允許超過 32 個磁碟。 |
|
磁碟區大小太小。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | vds.h |
程式庫 | Uuid.lib |