ホーム › Storage.VirtualDiskService › IVdsLun
IVdsLun
COMメソッド 17
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetProperties(VDS_LUN_PROP* pLunProp)
| pLunProp | VDS_LUN_PROP* | out | LUN のプロパティを表す VDS_LUN_PROP 構造体を受け取るポインタである。 |
vtbl 4 HRESULT GetSubSystem(IVdsSubSystem** ppSubSystem)
| ppSubSystem | IVdsSubSystem** | out | この LUN が属するサブシステムの IVdsSubSystem インターフェイスを受け取るポインタである。 |
vtbl 5 HRESULT GetIdentificationData(VDS_LUN_INFORMATION* pLunInfo)
| pLunInfo | VDS_LUN_INFORMATION* | out | LUN を識別するための情報を表す VDS_LUN_INFORMATION 構造体を受け取るポインタである。 |
vtbl 6 HRESULT QueryActiveControllers(IEnumVdsObject** ppEnum)
| ppEnum | IEnumVdsObject** | out | この LUN に対してアクティブなコントローラを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。 |
vtbl 7 HRESULT Extend(ULONGLONG ullNumberOfBytesToAdd, GUID* pDriveIdArray, INT lNumberOfDrives, IVdsAsync** ppAsync)
| ullNumberOfBytesToAdd | ULONGLONG | in | LUN に追加する容量をバイト単位で指定する。 |
| pDriveIdArray | GUID* | in | 拡張に使用するドライブの GUID の配列を指定する。 |
| lNumberOfDrives | INT | in | 配列に含まれるドライブの数を指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
| ullNumberOfBytesToRemove | ULONGLONG | in | LUN から削減する容量をバイト単位で指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
vtbl 9 HRESULT QueryPlexes(IEnumVdsObject** ppEnum)
| ppEnum | IEnumVdsObject** | out | この LUN を構成するプレックスを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。 |
| lunId | GUID | in | プレックスとして追加する LUN の GUID を指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
| plexId | GUID | in | 削除するプレックスの GUID を指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
| pwszUnmaskingList | LPWSTR | in | LUN を公開する(アンマスクする)対象を列挙したリストを指定する。 |
vtbl 14 HRESULT Delete()
vtbl 15 HRESULT AssociateControllers(GUID* pActiveControllerIdArray, INT lNumberOfActiveControllers, GUID* pInactiveControllerIdArray, INT lNumberOfInactiveControllers)
| pActiveControllerIdArray | GUID* | in | アクティブとして関連付けるコントローラの GUID の配列を指定する。 |
| lNumberOfActiveControllers | INT | in | アクティブとして関連付けるコントローラの数を指定する。 |
| pInactiveControllerIdArray | GUID* | in | 非アクティブとして関連付けるコントローラの GUID の配列を指定する。 |
| lNumberOfInactiveControllers | INT | in | 非アクティブとして関連付けるコントローラの数を指定する。 |
| pHints | VDS_HINTS* | out | LUN のヒント情報を表す VDS_HINTS 構造体を受け取るポインタである。 |
| pHints | VDS_HINTS* | in | LUN に適用するヒント情報を表す VDS_HINTS 構造体へのポインタを指定する。 |
vtbl 18 HRESULT SetStatus(VDS_LUN_STATUS status)
| status | VDS_LUN_STATUS | in | LUN に設定する状態を表す VDS_LUN_STATUS 値を指定する。 |
vtbl 19 HRESULT QueryMaxLunExtendSize(GUID* pDriveIdArray, INT lNumberOfDrives, ULONGLONG* pullMaxBytesToBeAdded)
| pDriveIdArray | GUID* | in | 拡張に使用するドライブの GUID の配列を指定する。 |
| lNumberOfDrives | INT | in | 配列に含まれるドライブの数を指定する。 |
| pullMaxBytesToBeAdded | ULONGLONG* | 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 指定が可能。#define global IID_IVdsLun "{3540A9C7-E60F-4111-A840-8BBA6C2C83D8}" #usecom global IVdsLun IID_IVdsLun "{}" #comfunc global IVdsLun_GetProperties 3 sptr #comfunc global IVdsLun_GetSubSystem 4 sptr #comfunc global IVdsLun_GetIdentificationData 5 sptr #comfunc global IVdsLun_QueryActiveControllers 6 sptr #comfunc global IVdsLun_Extend 7 int64,sptr,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 sptr,int,sptr,int #comfunc global IVdsLun_QueryHints 16 sptr #comfunc global IVdsLun_ApplyHints 17 sptr #comfunc global IVdsLun_SetStatus 18 int #comfunc global IVdsLun_QueryMaxLunExtendSize 19 sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。