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

IVdsDiskOnline

COM
IID90681b1d-6a7f-48e8-9061-31b7aa125322継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ディスクをオンラインにする、およびオフラインにするためのメソッドを提供します。Windows Vista: このインターフェースは Windows Vista with Service Pack 1 (SP1) 以降でのみサポートされます。代わりに IVdsDisk2 を使用してください。

メソッド 2

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Online()

ディスクをオンラインにします。

戻り値

このメソッドは、E_INVALIDARGE_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換されたシステムエラーコードを返す場合もあります。エラーは VDS 自体、または使用している基盤の VDS プロバイダーから発生する可能性があります。返される可能性のある値には次のものがあります。

戻り値 説明
VDS_E_FAILED_TO_ONLINE_DISK
オンライン操作に失敗しました。

解説(Remarks)

ダイナミックディスクが読み取り専用かつオフラインの場合、次の手順で読み取り/書き込み可能にしてオンラインにできます。

  1. 読み取り専用ビットをクリアします。(これは VDS_DISK_PROP 構造体の VDS_DF_READ_ONLY フラグです。)
  2. Online メソッドを呼び出します。
ベーシックディスクが読み取り専用かつオフラインの場合も同じ方法で読み取り/書き込み可能にしてオンラインにできますが、手順の順序は問いません。
vtbl 4 HRESULT Offline()

ディスクをオフラインにします。Windows Vista: このメソッドは Windows Vista with Service Pack 1 (SP1) 以降でのみサポートされます。代わりに IVdsDisk2::SetSANMode を使用してください。

戻り値

このメソッドは、E_INVALIDARGE_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換されたシステムエラーコードを返す場合もあります。エラーは VDS 自体、または使用している基盤の VDS プロバイダーから発生する可能性があります。返される可能性のある値には次のものがあります。

戻り値 説明
VDS_E_FAILED_TO_OFFLINE_DISK
オフライン操作に失敗しました。

解説(Remarks)

ダイナミックディスクが読み取り/書き込み可能かつオンラインの場合、次の手順で読み取り専用にしてオフラインにできます。

  1. ディスク上の各ボリュームに対して、bForce および bPermanent パラメーターを TRUE に設定して IVdsVolumeMF::Dismount メソッドを呼び出します。
  2. Offline メソッドを呼び出します。
  3. 読み取り専用ビットを設定します。(これは VDS_DISK_PROP 構造体の VDS_DF_READ_ONLY フラグです。)
ベーシックディスクが読み取り/書き込み可能かつオンラインの場合も同じ方法で読み取り専用にしてオフラインにできますが、手順の順序は問いません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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が無いため "{}"(他メソッド/アクティベーションで取得)。