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

IVdsOpenVDisk

COM
IID75c8f324-f715-4fe3-a28e-f9011b61a4a1継承元IUnknown自前メソッド開始 vtbl3

メソッド 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)
pStringSecurityDescriptorLPWSTRinアタッチ時に適用するセキュリティ記述子を文字列形式(SDDL)で指定する。NULL を指定すると既定のセキュリティが適用される。
FlagsATTACH_VIRTUAL_DISK_FLAGin仮想ディスクのアタッチ時の動作を制御する ATTACH_VIRTUAL_DISK_FLAG フラグを指定する。
ProviderSpecificFlagsDWORDinプロバイダ固有のフラグを指定する。
TimeoutInMsDWORDin操作のタイムアウト時間をミリ秒単位で指定する。
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 4 HRESULT Detach(DETACH_VIRTUAL_DISK_FLAG Flags, DWORD ProviderSpecificFlags)
FlagsDETACH_VIRTUAL_DISK_FLAGin仮想ディスクのデタッチ時の動作を制御する DETACH_VIRTUAL_DISK_FLAG フラグを指定する。
ProviderSpecificFlagsDWORDinプロバイダ固有のフラグを指定する。
vtbl 5 HRESULT DetachAndDelete(DETACH_VIRTUAL_DISK_FLAG Flags, DWORD ProviderSpecificFlags)
FlagsDETACH_VIRTUAL_DISK_FLAGin仮想ディスクのデタッチ時の動作を制御する DETACH_VIRTUAL_DISK_FLAG フラグを指定する。
ProviderSpecificFlagsDWORDinプロバイダ固有のフラグを指定する。
vtbl 6 HRESULT Compact(COMPACT_VIRTUAL_DISK_FLAG Flags, DWORD Reserved, IVdsAsync** ppAsync)
FlagsCOMPACT_VIRTUAL_DISK_FLAGin仮想ディスクの圧縮(コンパクト)時の動作を制御する COMPACT_VIRTUAL_DISK_FLAG フラグを指定する。
ReservedDWORDin予約済みのパラメータであり、0 を指定する。
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 7 HRESULT Merge(MERGE_VIRTUAL_DISK_FLAG Flags, DWORD MergeDepth, IVdsAsync** ppAsync)
FlagsMERGE_VIRTUAL_DISK_FLAGin差分ディスクのマージ時の動作を制御する MERGE_VIRTUAL_DISK_FLAG フラグを指定する。
MergeDepthDWORDin親方向にマージする差分チェーンの階層の深さを指定する。
ppAsyncIVdsAsync**out非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。
vtbl 8 HRESULT Expand(EXPAND_VIRTUAL_DISK_FLAG Flags, ULONGLONG NewSize, IVdsAsync** ppAsync)
FlagsEXPAND_VIRTUAL_DISK_FLAGin仮想ディスクの拡張時の動作を制御する EXPAND_VIRTUAL_DISK_FLAG フラグを指定する。
NewSizeULONGLONGin拡張後の仮想ディスクの新しいサイズをバイト単位で指定する。
ppAsyncIVdsAsync**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 指定が可能。