Win32 API 日本語リファレンス
ホームStorage.VirtualDiskService › IVdsLun2

IVdsLun2

COM
IIDe5b3a735-9efb-499a-8071-4394d9ee6fcb継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IVdsLun2 インターフェース (vdshwprv.h) は、論理ユニット番号 (LUN) のヒントを適用および照会するためのメソッドを提供します。

メソッド 2

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT QueryHints2(VDS_HINTS2* pHints2)

IVdsLun2::QueryHints2 (vdshwprv.h) メソッドは、現在 LUN に適用されているヒントを返します。このメソッドは IVdsLun::QueryHints メソッドと同一です。

pHints2VDS_HINTS2*out返される LUN ヒントへのポインター。 VDS_HINTS2 構造体を参照してください。

戻り値

このメソッドは、E_INVALIDARGE_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換されたシステムエラーコードを返すこともあります。エラーは VDS 自体、または使用されている基盤の VDS プロバイダーから発生する可能性があります。返される可能性のある値には次のものがあります。

戻りコード/値 説明
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
アレイに関する情報をキャッシュするプロバイダーの内部で、ソフトウェアまたは通信の問題が発生しています。 IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、 キャッシュを復元してください。
VDS_E_OBJECT_DELETED
0x8004240BL
LUN オブジェクトはすでに存在しません。
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN は失敗状態にあり、要求された操作を実行できません。
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
別の操作が進行中です。この操作は、先行する 1 つまたは複数の操作が 完了するまで続行できません。
VDS_E_NOT_SUPPORTED
0x80042400L
この操作またはパラメーターの組み合わせは、このプロバイダーではサポートされていません。

解説(Remarks)

呼び出し元は、LUN を作成する際に IVdsSubSystem2::CreateLun2 メソッドへ pHints2 パラメーターを 渡すことでヒントを指定できます。また、既存の LUN に新しいヒントのセットを適用するには IVdsLun2::ApplyHints2 メソッドを使用します。

vtbl 4 HRESULT ApplyHints2(VDS_HINTS2* pHints2)

IVdsLun2::ApplyHints2 (vdshwprv.h) メソッドは、新しいヒントのセットを LUN に適用します。LUN に適用されたヒントは、すべてのプレックスに同時に適用されます。

pHints2VDS_HINTS2*inLUN に適用する新しいヒントへのポインター。 VDS_HINTS2 構造体を参照してください。

戻り値

このメソッドは、E_INVALIDARGE_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換されたシステムエラーコードを返すこともあります。エラーは VDS 自体、または使用されている基盤の VDS プロバイダーから発生する可能性があります。返される可能性のある値には次のものがあります。

戻りコード/値 説明
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
アレイに関する情報をキャッシュするプロバイダーの内部で、ソフトウェアまたは通信の問題が発生しています。 IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、 キャッシュを復元してください。
VDS_E_OBJECT_DELETED
0x8004240BL
LUN オブジェクトはすでに存在しません。
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN は失敗状態にあり、要求された操作を実行できません。
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
別の操作が進行中です。この操作は、先行する 1 つまたは複数の操作が 完了するまで続行できません。
VDS_E_NOT_SUPPORTED
0x80042400L
この操作またはパラメーターの組み合わせは、このプロバイダーではサポートされていません。

解説(Remarks)

呼び出し元は、LUN を作成する際に IVdsSubSystem2::CreateLun2 メソッドへ pHints パラメーターを渡すことでヒントを指定することもできます。既存のヒントを照会するには、 IVdsLun2::QueryHints2 メソッドを使用してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IVdsLun2 "{E5B3A735-9EFB-499A-8071-4394D9EE6FCB}"
#usecom global IVdsLun2 IID_IVdsLun2 "{}"
#comfunc global IVdsLun2_QueryHints2  3 var
#comfunc global IVdsLun2_ApplyHints2  4 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。