ホーム › Storage.VirtualDiskService › IVdsVdProvider
IVdsVdProvider
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT QueryVDisks(IEnumVdsObject** ppEnum)
| ppEnum | IEnumVdsObject** | out | このプロバイダが管理する仮想ディスクを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。 |
vtbl 4 HRESULT CreateVDisk(VIRTUAL_STORAGE_TYPE* VirtualDeviceType, LPWSTR pPath, LPWSTR pStringSecurityDescriptor, CREATE_VIRTUAL_DISK_FLAG Flags, DWORD ProviderSpecificFlags, DWORD Reserved, VDS_CREATE_VDISK_PARAMETERS* pCreateDiskParameters, IVdsAsync** ppAsync)
| VirtualDeviceType | VIRTUAL_STORAGE_TYPE* | in | 作成する仮想ディスクの種類を表す VIRTUAL_STORAGE_TYPE 構造体へのポインタを指定する。 |
| pPath | LPWSTR | in | 作成する仮想ディスクファイルのパスを指定する。 |
| pStringSecurityDescriptor | LPWSTR | in | 仮想ディスクに適用するセキュリティ記述子を文字列形式(SDDL)で指定する。NULL を指定すると既定のセキュリティが適用される。 |
| Flags | CREATE_VIRTUAL_DISK_FLAG | in | 仮想ディスク作成時の動作を制御する CREATE_VIRTUAL_DISK_FLAG フラグを指定する。 |
| ProviderSpecificFlags | DWORD | in | プロバイダ固有のフラグを指定する。 |
| Reserved | DWORD | in | 予約済みのパラメータであり、0 を指定する。 |
| pCreateDiskParameters | VDS_CREATE_VDISK_PARAMETERS* | in | 仮想ディスク作成時のパラメータを表す VDS_CREATE_VDISK_PARAMETERS 構造体へのポインタを指定する。 |
| ppAsync | IVdsAsync** | inout | 非同期操作を制御・監視する IVdsAsync インターフェイスを受け取るポインタである。 |
vtbl 5 HRESULT AddVDisk(VIRTUAL_STORAGE_TYPE* VirtualDeviceType, LPWSTR pPath, IVdsVDisk** ppVDisk)
| VirtualDeviceType | VIRTUAL_STORAGE_TYPE* | in | 追加する仮想ディスクの種類を表す VIRTUAL_STORAGE_TYPE 構造体へのポインタを指定する。 |
| pPath | LPWSTR | in | 追加する既存の仮想ディスクファイルのパスを指定する。 |
| ppVDisk | IVdsVDisk** | inout | 追加された仮想ディスクの IVdsVDisk インターフェイスを受け取るポインタである。 |
| pVDisk | IVdsVDisk* | in | 対象とする仮想ディスクの IVdsVDisk インターフェイスを指定する。 |
| ppDisk | IVdsDisk** | out | 仮想ディスクに対応する物理ディスクとしての IVdsDisk インターフェイスを受け取るポインタである。 |
| pDisk | IVdsDisk* | in | 対象とするディスクの IVdsDisk インターフェイスを指定する。 |
| ppVDisk | IVdsVDisk** | out | ディスクに対応する仮想ディスクの IVdsVDisk インターフェイスを受け取るポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IVdsVdProvider "{B481498C-8354-45F9-84A0-0BDD2832A91F}" #usecom global IVdsVdProvider IID_IVdsVdProvider "{}" #comfunc global IVdsVdProvider_QueryVDisks 3 sptr #comfunc global IVdsVdProvider_CreateVDisk 4 var,wstr,wstr,int,int,int,var,sptr #comfunc global IVdsVdProvider_AddVDisk 5 var,wstr,sptr #comfunc global IVdsVdProvider_GetDiskFromVDisk 6 sptr,sptr #comfunc global IVdsVdProvider_GetVDiskFromDisk 7 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVdsVdProvider "{B481498C-8354-45F9-84A0-0BDD2832A91F}" #usecom global IVdsVdProvider IID_IVdsVdProvider "{}" #comfunc global IVdsVdProvider_QueryVDisks 3 sptr #comfunc global IVdsVdProvider_CreateVDisk 4 sptr,wstr,wstr,int,int,int,sptr,sptr #comfunc global IVdsVdProvider_AddVDisk 5 sptr,wstr,sptr #comfunc global IVdsVdProvider_GetDiskFromVDisk 6 sptr,sptr #comfunc global IVdsVdProvider_GetVDiskFromDisk 7 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。