IVdsDiskOnline
COM公式ドキュメント
ディスクをオンラインにする、およびオフラインにするためのメソッドを提供します。Windows Vista: このインターフェースは Windows Vista with Service Pack 1 (SP1) 以降でのみサポートされます。代わりに IVdsDisk2 を使用してください。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ディスクをオンラインにします。
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換されたシステムエラーコードを返す場合もあります。エラーは VDS 自体、または使用している基盤の VDS プロバイダーから発生する可能性があります。返される可能性のある値には次のものがあります。
| 戻り値 | 説明 |
|---|---|
| オンライン操作に失敗しました。 |
解説(Remarks)
ダイナミックディスクが読み取り専用かつオフラインの場合、次の手順で読み取り/書き込み可能にしてオンラインにできます。
- 読み取り専用ビットをクリアします。(これは VDS_DISK_PROP 構造体の VDS_DF_READ_ONLY フラグです。)
- Online メソッドを呼び出します。
ディスクをオフラインにします。Windows Vista: このメソッドは Windows Vista with Service Pack 1 (SP1) 以降でのみサポートされます。代わりに IVdsDisk2::SetSANMode を使用してください。
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換されたシステムエラーコードを返す場合もあります。エラーは VDS 自体、または使用している基盤の VDS プロバイダーから発生する可能性があります。返される可能性のある値には次のものがあります。
| 戻り値 | 説明 |
|---|---|
| オフライン操作に失敗しました。 |
解説(Remarks)
ダイナミックディスクが読み取り/書き込み可能かつオンラインの場合、次の手順で読み取り専用にしてオフラインにできます。
- ディスク上の各ボリュームに対して、bForce および bPermanent パラメーターを TRUE に設定して IVdsVolumeMF::Dismount メソッドを呼び出します。
- Offline メソッドを呼び出します。
- 読み取り専用ビットを設定します。(これは VDS_DISK_PROP 構造体の VDS_DF_READ_ONLY フラグです。)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVdsDiskOnline "{90681B1D-6A7F-48E8-9061-31B7AA125322}"
#usecom global IVdsDiskOnline IID_IVdsDiskOnline "{}"
#comfunc global IVdsDiskOnline_Online 3
#comfunc global IVdsDiskOnline_Offline 4
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。