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

IVdsLunPlex

COM
IID0ee1a790-5d2e-4abb-8c99-c481e8be2138継承元IUnknown自前メソッド開始 vtbl3

メソッド 5

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

vtbl 3 HRESULT GetProperties(VDS_LUN_PLEX_PROP* pPlexProp)
pPlexPropVDS_LUN_PLEX_PROP*outプレックスのプロパティを表す VDS_LUN_PLEX_PROP 構造体を受け取るポインタである。
vtbl 4 HRESULT GetLun(IVdsLun** ppLun)
ppLunIVdsLun**outこのプレックスが属する LUN の IVdsLun インターフェイスを受け取るポインタである。
vtbl 5 HRESULT QueryExtents(VDS_DRIVE_EXTENT** ppExtentArray, INT* plNumberOfExtents)
ppExtentArrayVDS_DRIVE_EXTENT**outプレックスのエクステントを表す VDS_DRIVE_EXTENT 構造体の配列を受け取るポインタである。
plNumberOfExtentsINT*out返されたエクステントの数を受け取るポインタである。
vtbl 6 HRESULT QueryHints(VDS_HINTS* pHints)
pHintsVDS_HINTS*outプレックスのヒント情報を表す VDS_HINTS 構造体を受け取るポインタである。
vtbl 7 HRESULT ApplyHints(VDS_HINTS* pHints)
pHintsVDS_HINTS*inプレックスに適用するヒント情報を表す VDS_HINTS 構造体へのポインタを指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IVdsLunPlex "{0EE1A790-5D2E-4ABB-8C99-C481E8BE2138}"
#usecom global IVdsLunPlex IID_IVdsLunPlex "{}"
#comfunc global IVdsLunPlex_GetProperties  3 var
#comfunc global IVdsLunPlex_GetLun         4 sptr
#comfunc global IVdsLunPlex_QueryExtents   5 var,var
#comfunc global IVdsLunPlex_QueryHints     6 var
#comfunc global IVdsLunPlex_ApplyHints     7 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。