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

IVdsLun

COM
IID3540a9c7-e60f-4111-a840-8bba6c2c83d8継承元IUnknown自前メソッド開始 vtbl3

メソッド 17

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

vtbl 3 HRESULT GetProperties(VDS_LUN_PROP* pLunProp)
pLunPropVDS_LUN_PROP*outLUN のプロパティを表す VDS_LUN_PROP 構造体を受け取るポインタである。
vtbl 4 HRESULT GetSubSystem(IVdsSubSystem** ppSubSystem)
ppSubSystemIVdsSubSystem**outこの LUN が属するサブシステムの IVdsSubSystem インターフェイスを受け取るポインタである。
vtbl 5 HRESULT GetIdentificationData(VDS_LUN_INFORMATION* pLunInfo)
pLunInfoVDS_LUN_INFORMATION*outLUN を識別するための情報を表す VDS_LUN_INFORMATION 構造体を受け取るポインタである。
vtbl 6 HRESULT QueryActiveControllers(IEnumVdsObject** ppEnum)
ppEnumIEnumVdsObject**outこの LUN に対してアクティブなコントローラを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。
vtbl 7 HRESULT Extend(ULONGLONG ullNumberOfBytesToAdd, GUID* pDriveIdArray, INT lNumberOfDrives, IVdsAsync** ppAsync)
ullNumberOfBytesToAddULONGLONGinLUN に追加する容量をバイト単位で指定する。
pDriveIdArrayGUID*in拡張に使用するドライブの GUID の配列を指定する。
lNumberOfDrivesINTin配列に含まれるドライブの数を指定する。
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 8 HRESULT Shrink(ULONGLONG ullNumberOfBytesToRemove, IVdsAsync** ppAsync)
ullNumberOfBytesToRemoveULONGLONGinLUN から削減する容量をバイト単位で指定する。
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 9 HRESULT QueryPlexes(IEnumVdsObject** ppEnum)
ppEnumIEnumVdsObject**outこの LUN を構成するプレックスを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。
vtbl 10 HRESULT AddPlex(GUID lunId, IVdsAsync** ppAsync)
lunIdGUIDinプレックスとして追加する LUN の GUID を指定する。
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 11 HRESULT RemovePlex(GUID plexId, IVdsAsync** ppAsync)
plexIdGUIDin削除するプレックスの GUID を指定する。
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 12 HRESULT Recover(IVdsAsync** ppAsync)
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 13 HRESULT SetMask(LPWSTR pwszUnmaskingList)
pwszUnmaskingListLPWSTRinLUN を公開する(アンマスクする)対象を列挙したリストを指定する。
vtbl 14 HRESULT Delete()
vtbl 15 HRESULT AssociateControllers(GUID* pActiveControllerIdArray, INT lNumberOfActiveControllers, GUID* pInactiveControllerIdArray, INT lNumberOfInactiveControllers)
pActiveControllerIdArrayGUID*inアクティブとして関連付けるコントローラの GUID の配列を指定する。
lNumberOfActiveControllersINTinアクティブとして関連付けるコントローラの数を指定する。
pInactiveControllerIdArrayGUID*in非アクティブとして関連付けるコントローラの GUID の配列を指定する。
lNumberOfInactiveControllersINTin非アクティブとして関連付けるコントローラの数を指定する。
vtbl 16 HRESULT QueryHints(VDS_HINTS* pHints)
pHintsVDS_HINTS*outLUN のヒント情報を表す VDS_HINTS 構造体を受け取るポインタである。
vtbl 17 HRESULT ApplyHints(VDS_HINTS* pHints)
pHintsVDS_HINTS*inLUN に適用するヒント情報を表す VDS_HINTS 構造体へのポインタを指定する。
vtbl 18 HRESULT SetStatus(VDS_LUN_STATUS status)
statusVDS_LUN_STATUSinLUN に設定する状態を表す VDS_LUN_STATUS 値を指定する。
vtbl 19 HRESULT QueryMaxLunExtendSize(GUID* pDriveIdArray, INT lNumberOfDrives, ULONGLONG* pullMaxBytesToBeAdded)
pDriveIdArrayGUID*in拡張に使用するドライブの GUID の配列を指定する。
lNumberOfDrivesINTin配列に含まれるドライブの数を指定する。
pullMaxBytesToBeAddedULONGLONG*out指定条件で追加可能な最大容量(バイト単位)を受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IVdsLun "{3540A9C7-E60F-4111-A840-8BBA6C2C83D8}"
#usecom global IVdsLun IID_IVdsLun "{}"
#comfunc global IVdsLun_GetProperties           3 var
#comfunc global IVdsLun_GetSubSystem            4 sptr
#comfunc global IVdsLun_GetIdentificationData   5 var
#comfunc global IVdsLun_QueryActiveControllers  6 sptr
#comfunc global IVdsLun_Extend                  7 int64,var,int,sptr
#comfunc global IVdsLun_Shrink                  8 int64,sptr
#comfunc global IVdsLun_QueryPlexes             9 sptr
#comfunc global IVdsLun_AddPlex                 10 int,sptr
#comfunc global IVdsLun_RemovePlex              11 int,sptr
#comfunc global IVdsLun_Recover                 12 sptr
#comfunc global IVdsLun_SetMask                 13 wstr
#comfunc global IVdsLun_Delete                  14
#comfunc global IVdsLun_AssociateControllers    15 var,int,var,int
#comfunc global IVdsLun_QueryHints              16 var
#comfunc global IVdsLun_ApplyHints              17 var
#comfunc global IVdsLun_SetStatus               18 int
#comfunc global IVdsLun_QueryMaxLunExtendSize   19 var,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。