IVdsDrive::QueryExtents メソッド (vdshwprv.h)
[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。
割り当てられたエクステントと未割り当てエクステントの両方を含む、ドライブ上のエクステントの配列を返します。
構文
HRESULT QueryExtents(
[out] VDS_DRIVE_EXTENT **ppExtentArray,
[out] LONG *plNumberOfExtents
);
パラメーター
[out] ppExtentArray
呼び出し元によって渡される VDS_DRIVE_EXTENT 構造体の配列へのポインター。 呼び出し元は 、CoTaskMemFree 関数を使用してこの配列を解放する必要があります。
[out] plNumberOfExtents
VDS_DRIVE_EXTENT構造体で返されるドライブ エクステントの数へのポインター。
戻り値
このメソッドは、E_INVALIDARGやE_OUTOFMEMORYなどの標準の HRESULT 値と、 VDS 固有の戻り値を返すことができます。 また、HRESULT_FROM_WIN32 マクロを使用して、変換されたシステム エラー コードを返すこともできます。 エラーは、VDS 自体または使用されている基になる VDS プロバイダー から発生する可能性があります。 可能な戻り値は次のとおりです。
リターン コード/値 | 説明 |
---|---|
|
エクステント情報が正常に返されました。 エクステントのないドライブの場合、配列は空で、 plNumberOfExtents の値は 0 に設定され、 ppExtentArray の値は NULL に設定されます。 |
|
この戻り値は、配列に関する情報をキャッシュするプロバイダー内のソフトウェアまたは通信の問題を示します。 キャッシュを復元するには、 IVdsHwProvider::Reenumerate メソッドの後に IVdsHwProvider::Refresh メソッドを使用します。 |
|
ドライブ オブジェクトが存在しなくなりました。 |
|
ドライブが失敗状態であり、要求された操作を実行できません。 |
|
別の操作が進行中です。この操作は、前の操作または操作が完了するまで続行できません。 |
|
サブシステムはこのメソッドをサポートしていません。 |
注釈
ドライブは任意の数の LUN にエクステントを提供でき、これらの LUN はネットワーク上の任意の数の異なるコンピューターにマスク解除できます。 LUN プレックスのすべてのエクステントを表示するには、 IVds LunPlex::QueryExtents メソッドを使用します。
各VDS_DRIVE_EXTENT構造体の LunId メンバーは、割り当てられた各エクステントが寄与する LUN の GUID を指定します。 したがって、このメソッドの結果を使用して、ppExtentArray で返される個別の LunId 値の数をカウントすることで、ドライブが寄与する LUN の数を決定できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | vdshwprv.h |
Library | Uuid.lib |