ホーム › Storage.VirtualDiskService › IVdsService
IVdsService
COMメソッド 17
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT IsServiceReady()
vtbl 4 HRESULT WaitForServiceReady()
vtbl 5 HRESULT GetProperties(VDS_SERVICE_PROP* pServiceProp)
| pServiceProp | VDS_SERVICE_PROP* | out | VDS サービスのプロパティを表す VDS_SERVICE_PROP 構造体を受け取るポインタである。 |
vtbl 6 HRESULT QueryProviders(DWORD masks, IEnumVdsObject** ppEnum)
| masks | DWORD | in | 問い合わせ対象とするプロバイダの種類を絞り込むためのマスクを指定する。 |
| ppEnum | IEnumVdsObject** | out | 条件に一致したプロバイダを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。 |
vtbl 7 HRESULT QueryMaskedDisks(IEnumVdsObject** ppEnum)
| ppEnum | IEnumVdsObject** | out | マスクされた(非公開の)ディスクを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。 |
vtbl 8 HRESULT QueryUnallocatedDisks(IEnumVdsObject** ppEnum)
| ppEnum | IEnumVdsObject** | out | 未割り当てのディスクを列挙する IEnumVdsObject インターフェイスを受け取るポインタである。 |
vtbl 9 HRESULT GetObject(GUID ObjectId, VDS_OBJECT_TYPE type, IUnknown** ppObjectUnk)
| ObjectId | GUID | in | 取得対象オブジェクトの GUID を指定する。 |
| type | VDS_OBJECT_TYPE | in | 取得対象オブジェクトの種類を表す VDS_OBJECT_TYPE 値を指定する。 |
| ppObjectUnk | IUnknown** | out | 取得したオブジェクトの IUnknown インターフェイスを受け取るポインタである。 |
vtbl 10 HRESULT QueryDriveLetters(WCHAR wcFirstLetter, DWORD count, VDS_DRIVE_LETTER_PROP* pDriveLetterPropArray)
| wcFirstLetter | WCHAR | in | 問い合わせを開始する先頭のドライブ文字を指定する。 |
| count | DWORD | in | 問い合わせるドライブ文字の数を指定する。 |
| pDriveLetterPropArray | VDS_DRIVE_LETTER_PROP* | out | 各ドライブ文字のプロパティを表す VDS_DRIVE_LETTER_PROP 構造体の配列を受け取るポインタである。 |
vtbl 11 HRESULT QueryFileSystemTypes(VDS_FILE_SYSTEM_TYPE_PROP** ppFileSystemTypeProps, INT* plNumberOfFileSystems)
| ppFileSystemTypeProps | VDS_FILE_SYSTEM_TYPE_PROP** | out | サポートされているファイルシステムの種類のプロパティを表す VDS_FILE_SYSTEM_TYPE_PROP 構造体の配列を受け取るポインタである。 |
| plNumberOfFileSystems | INT* | out | 返されたファイルシステムの数を受け取るポインタである。 |
vtbl 12 HRESULT Reenumerate()
vtbl 13 HRESULT Refresh()
vtbl 14 HRESULT CleanupObsoleteMountPoints()
vtbl 15 HRESULT Advise(IVdsAdviseSink* pSink, DWORD* pdwCookie)
| pSink | IVdsAdviseSink* | in | VDS からの通知を受け取るコールバックである IVdsAdviseSink インターフェイスを指定する。 |
| pdwCookie | DWORD* | out | 登録を識別するためのクッキー値を受け取るポインタであり、後で Unadvise に渡す。 |
| dwCookie | DWORD | in | Advise で取得した、解除対象の登録を識別するクッキー値を指定する。 |
vtbl 17 HRESULT Reboot()
| ulFlags | DWORD | in | VDS サービスに設定するフラグを指定する。 |
| ulFlags | DWORD | in | VDS サービスから解除するフラグを指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IVdsService "{0818A8EF-9BA9-40D8-A6F9-E22833CC771E}" #usecom global IVdsService IID_IVdsService "{7D1933CB-86F6-4A98-8628-01BE94C9A575}" #comfunc global IVdsService_IsServiceReady 3 #comfunc global IVdsService_WaitForServiceReady 4 #comfunc global IVdsService_GetProperties 5 var #comfunc global IVdsService_QueryProviders 6 int,sptr #comfunc global IVdsService_QueryMaskedDisks 7 sptr #comfunc global IVdsService_QueryUnallocatedDisks 8 sptr #comfunc global IVdsService_GetObject 9 int,int,sptr #comfunc global IVdsService_QueryDriveLetters 10 int,int,var #comfunc global IVdsService_QueryFileSystemTypes 11 var,var #comfunc global IVdsService_Reenumerate 12 #comfunc global IVdsService_Refresh 13 #comfunc global IVdsService_CleanupObsoleteMountPoints 14 #comfunc global IVdsService_Advise 15 sptr,var #comfunc global IVdsService_Unadvise 16 int #comfunc global IVdsService_Reboot 17 #comfunc global IVdsService_SetFlags 18 int #comfunc global IVdsService_ClearFlags 19 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVdsService "{0818A8EF-9BA9-40D8-A6F9-E22833CC771E}" #usecom global IVdsService IID_IVdsService "{7D1933CB-86F6-4A98-8628-01BE94C9A575}" #comfunc global IVdsService_IsServiceReady 3 #comfunc global IVdsService_WaitForServiceReady 4 #comfunc global IVdsService_GetProperties 5 sptr #comfunc global IVdsService_QueryProviders 6 int,sptr #comfunc global IVdsService_QueryMaskedDisks 7 sptr #comfunc global IVdsService_QueryUnallocatedDisks 8 sptr #comfunc global IVdsService_GetObject 9 int,int,sptr #comfunc global IVdsService_QueryDriveLetters 10 int,int,sptr #comfunc global IVdsService_QueryFileSystemTypes 11 sptr,sptr #comfunc global IVdsService_Reenumerate 12 #comfunc global IVdsService_Refresh 13 #comfunc global IVdsService_CleanupObsoleteMountPoints 14 #comfunc global IVdsService_Advise 15 sptr,sptr #comfunc global IVdsService_Unadvise 16 int #comfunc global IVdsService_Reboot 17 #comfunc global IVdsService_SetFlags 18 int #comfunc global IVdsService_ClearFlags 19 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。