IVdsPack::MigrateDisks メソッド (vds.h)
[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。
1 つのパックから別のパックに一連のディスクを移行します。
構文
HRESULT MigrateDisks(
[in] VDS_OBJECT_ID *pDiskArray,
[in] LONG lNumberOfDisks,
[in] VDS_OBJECT_ID TargetPack,
[in] BOOL bForce,
[in] BOOL bQueryOnly,
[out] HRESULT *pResults,
[out] BOOL *pbRebootNeeded
);
パラメーター
[in] pDiskArray
GUID の配列へのポインター。ディスクごとに 1 つ。
[in] lNumberOfDisks
移行するディスクの数。
[in] TargetPack
パック オブジェクトの GUID。
[in] bForce
このパラメーターが TRUE に設定されている場合、VDS はこのメソッドのすべてのエラーを無視し、ディスクの無条件移行を試みます。 FALSE に設定されている場合、操作は続行されません。 場合によっては、強制移行によってデータが失われる可能性があります。
[in] bQueryOnly
このパラメーターが TRUE に設定されている場合、移行は行われません。 FALSE に設定すると、操作が続行されます。
[out] pResults
HRESULT 値の呼び出し元によって割り当てられた配列のアドレス。 配列内の要素の数は lNumberOfDisks です。
ディスクを移行できる場合、または正常に移行された場合、対応する配列要素は S_OKを受け取ります。それ以外の場合は、プロバイダーによって返された警告コードまたはエラー コードを受け取ります。 その他の結果コードの一覧については、「戻り値」を参照してください。
[out] pbRebootNeeded
このパラメーターが TRUE に設定されている場合は、コンピューターを再起動して操作を完了する必要があります。 FALSE に設定すると、再起動せずに操作が完了します。
戻り値
このメソッドは、E_INVALIDARGやE_OUTOFMEMORYなどの標準の HRESULT 値と、 VDS 固有の戻り値を返すことができます。 また、HRESULT_FROM_WIN32 マクロを使用して、変換されたシステム エラー コードを返すこともできます。 エラーは、VDS 自体または使用されている基になる VDS プロバイダー から発生する可能性があります。 可能な戻り値は次のとおりです。
リターン コード/値 | 説明 |
---|---|
|
移行が正常に完了しました。 |
|
少なくとも 1 つのディスクを変換できないか、警告で変換できます。 |
|
いずれかのディスクを使用できません。 |
|
外部パック内のディスクのサブセットをインポートしようとしました。 |
pResults を使用して、次の警告とエラーを返すことができます。
リターン コード/値 | 説明 |
---|---|
|
移行操作の結果として、ブート パーティションのパーティション番号が変更されました。 |
|
選択したディスクに、操作を完了するための十分な空き領域がありません。 |
|
選択したディスクでアクティブパーティションが検出され、アクティブなオペレーティング システムの起動に使用されるアクティブパーティションではありません。 |
|
パーティション情報を読み取ることができません。 |
|
選択したディスクで、不明な種類のパーティションが検出されました。 |
|
選択した GPT ディスクには、1 つ以上の基本データ パーティションの前と後の両方の基本データ パーティションが含まれています。 |
|
選択したディスク上のボリュームを開くことができません。 |
解説
VDS はこのメソッドを実装します。
1 つのパックに含めることができるベーシック ディスクは 1 つだけです。 そのため、ベーシック パックとダイナミック パックの間で一度に移行できるディスクは 1 つだけです。
ベーシック ディスクをダイナミック ディスク形式に変換し、ディスクの末尾に LDM データベースに十分な領域がない場合は、この操作を強制する必要があります。 スペースの制限にもかかわらず、 bForce パラメーターを true に設定し、操作を強制します。 同様に、OEM パーティションが MBR ディスクの中央にあり、どちらの側にも空き領域またはデータ ボリュームがある場合も同様です。
ダイナミック ディスクをダイナミック パックに移行した後、 IVdsPack::GetProperties メソッドを使用して、ソース パックと移行先パックがオンライン パックかどうかを判断する必要があります。
MigrateDisks メソッドを使用してパックに外部ディスクを追加する方法については、「パックへの外部ディスクの追加」を参照してください。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | vds.h |
Library | Uuid.lib |