ホーム › Storage.VirtualDiskService › IVdsOpenVDisk
IVdsOpenVDisk
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Attach(LPWSTR pStringSecurityDescriptor, ATTACH_VIRTUAL_DISK_FLAG Flags, DWORD ProviderSpecificFlags, DWORD TimeoutInMs, IVdsAsync** ppAsync)
| pStringSecurityDescriptor | LPWSTR | in | アタッチ時に適用するセキュリティ記述子を文字列形式(SDDL)で指定する。NULL を指定すると既定のセキュリティが適用される。 |
| Flags | ATTACH_VIRTUAL_DISK_FLAG | in | 仮想ディスクのアタッチ時の動作を制御する ATTACH_VIRTUAL_DISK_FLAG フラグを指定する。 |
| ProviderSpecificFlags | DWORD | in | プロバイダ固有のフラグを指定する。 |
| TimeoutInMs | DWORD | in | 操作のタイムアウト時間をミリ秒単位で指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
vtbl 4 HRESULT Detach(DETACH_VIRTUAL_DISK_FLAG Flags, DWORD ProviderSpecificFlags)
| Flags | DETACH_VIRTUAL_DISK_FLAG | in | 仮想ディスクのデタッチ時の動作を制御する DETACH_VIRTUAL_DISK_FLAG フラグを指定する。 |
| ProviderSpecificFlags | DWORD | in | プロバイダ固有のフラグを指定する。 |
vtbl 5 HRESULT DetachAndDelete(DETACH_VIRTUAL_DISK_FLAG Flags, DWORD ProviderSpecificFlags)
| Flags | DETACH_VIRTUAL_DISK_FLAG | in | 仮想ディスクのデタッチ時の動作を制御する DETACH_VIRTUAL_DISK_FLAG フラグを指定する。 |
| ProviderSpecificFlags | DWORD | in | プロバイダ固有のフラグを指定する。 |
vtbl 6 HRESULT Compact(COMPACT_VIRTUAL_DISK_FLAG Flags, DWORD Reserved, IVdsAsync** ppAsync)
| Flags | COMPACT_VIRTUAL_DISK_FLAG | in | 仮想ディスクの圧縮(コンパクト)時の動作を制御する COMPACT_VIRTUAL_DISK_FLAG フラグを指定する。 |
| Reserved | DWORD | in | 予約済みのパラメータであり、0 を指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
vtbl 7 HRESULT Merge(MERGE_VIRTUAL_DISK_FLAG Flags, DWORD MergeDepth, IVdsAsync** ppAsync)
| Flags | MERGE_VIRTUAL_DISK_FLAG | in | 差分ディスクのマージ時の動作を制御する MERGE_VIRTUAL_DISK_FLAG フラグを指定する。 |
| MergeDepth | DWORD | in | 親方向にマージする差分チェーンの階層の深さを指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
vtbl 8 HRESULT Expand(EXPAND_VIRTUAL_DISK_FLAG Flags, ULONGLONG NewSize, IVdsAsync** ppAsync)
| Flags | EXPAND_VIRTUAL_DISK_FLAG | in | 仮想ディスクの拡張時の動作を制御する EXPAND_VIRTUAL_DISK_FLAG フラグを指定する。 |
| NewSize | ULONGLONG | in | 拡張後の仮想ディスクの新しいサイズをバイト単位で指定する。 |
| ppAsync | IVdsAsync** | out | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVdsOpenVDisk "{75C8F324-F715-4FE3-A28E-F9011B61A4A1}"
#usecom global IVdsOpenVDisk IID_IVdsOpenVDisk "{}"
#comfunc global IVdsOpenVDisk_Attach 3 wstr,int,int,int,sptr
#comfunc global IVdsOpenVDisk_Detach 4 int,int
#comfunc global IVdsOpenVDisk_DetachAndDelete 5 int,int
#comfunc global IVdsOpenVDisk_Compact 6 int,int,sptr
#comfunc global IVdsOpenVDisk_Merge 7 int,int,sptr
#comfunc global IVdsOpenVDisk_Expand 8 int,int64,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。