IVdsPack2::CreateVolume2 メソッド (vds.h)
[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management 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
ボリュームアラインメントのバイト数。 このパラメーターは省略可能であり、0 にすることができます。 0 を指定すると、ボリュームが作成されるディスクのサイズに応じて、サーバーによってアラインメント値が決定されます。
Windows 7、Windows Server 2008 R2、Windows Vista、Windows Server 2008: Basic ディスクでは、 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 値が返された場合、 VDS_ASYNC_OUTPUT 構造体で返されるインターフェイスは、各インターフェイス ポインターで IUnknown::Release メソッドを呼び出して解放する必要があります。 ただし、Wait がエラー HRESULT 値を返す場合、または Wait の pHrResult パラメーターがエラー HRESULT 値を受け取る場合、VDS_ASYNC_OUTPUT構造体のインターフェイス ポインターは NULL であり、解放する必要はありません。 成功または失敗の HRESULT 値をテストするには、Winerror.h で定義 されている SUCCEEDED マクロと FAILED マクロを使用します。
戻り値
このメソッドは、E_INVALIDARGやE_OUTOFMEMORYなどの標準の HRESULT 値と、 VDS 固有の戻り値を返すことができます。 また、HRESULT_FROM_WIN32 マクロを使用して、変換されたシステム エラー コードを返すこともできます。 エラーは、VDS 自体または使用されている基になる VDS プロバイダー から発生する可能性があります。 可能な戻り値は次のとおりです。
リターン コード/値 | 説明 |
---|---|
|
ボリュームが正常に作成されました。 |
|
ボリューム到着通知が受信されませんでした。 IVdsService::Refresh を呼び出す必要がある場合があります。 |
|
ボリュームは正常に作成されますが、VDS はブート構成データ (BCD) ストアのブート オプションを更新できませんでした。 |
|
指定した配置は 0 です。 |
|
指定した配置は 2 の累乗ではありません。 |
|
指定されたディスクは、同じパックに属していません。 |
|
LDM サービスがメソッドに失敗しました。 |
|
渡されるエクステント サイズが小さすぎます。 |
|
指定されたディスクの数は、この操作では無効です。 |
|
ボリュームのメンバー数は、0 より大きくする必要があります。 |
|
メンバー インデックスは単調に増加し、ゼロから始まる必要があります。 |
|
渡されるディスクは CD-ROM または DVD デバイスです。 |
|
このディスク パックでは、この操作は許可されていません。 |
|
ボリュームのプレックス数は、0 より大きくする必要があります。 |
|
plex インデックスは単調に増加し、ゼロから始まる必要があります。 |
|
ストライプ・サイズ (バイト単位) は、ストライプ・ボリューム・タイプと RAID-5 ボリューム・タイプの場合は 2 の累乗でなければなりません。また、他のすべてのボリューム・タイプの場合はゼロでなければなりません。 |
|
指定されたディスクがありません。 |
|
ディスク アレイを介して渡されるリムーバブル ドライブにはメディアがありません。 |
|
ディスクの 1 つに十分な領域がありません。 |
|
ボリュームの種類はサポートされていません。 |
|
渡されたディスクの少なくとも 1 つが見つかりません。 |
|
1 つのディスクが、同じボリュームの複数のメンバーまたは複数のプレックスに寄与することはできません。 |
|
ターゲット パックにアクセスできません。 |
|
呼び出し元が追加のプライマリ パーティションまたは拡張パーティションを作成しようとしたときに、パーティションの最大数 (プライマリ パーティションまたは拡張パーティションを含むプライマリ パーティション) が既に存在します。 |
|
動的プロバイダー キャッシュが破損しています。 |
|
ボリュームあたり 32 個以下のディスクを使用できます。 |
|
ボリューム サイズが小さすぎます。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | vds.h |
Library | Uuid.lib |