Win32 API 日本語リファレンス
ホームSystem.Wmi › IWbemBackupRestoreEx

IWbemBackupRestoreEx

COM
IIDa359dec5-e813-4834-8a2a-ba7f1d777d76継承元IWbemBackupRestore自前メソッド開始 vtbl5

公式ドキュメント

IWbemBackupRestoreEx インターフェイスは、リポジトリの内容のバックアップと復元を行います。

解説(Remarks)

既定のモードは強制モードフラグを設定した場合と同じであり、アクティブなすべての接続を切断します。そのため、新しい接続が確立されるまで、WMI へのアクティブな COM 接続からはリモートプロシージャコール (RPC) エラーが発生します。

復元操作の実行中は、リポジトリへのアクティブな接続が存在してはなりません。このため、既定のパラメーターを使用していてアクティブな接続がある場合、復元操作は失敗します。アクティブなすべての接続を切断するフラグを指定することもできます。

呼び出しを行うクライアントは、適切な特権が有効になっている必要があります。バックアップには SE_RESTORE_NAME 特権が必要であり、復元にも SE_RESTORE_NAME が必要です。特権を有効にするには、クライアントアプリケーションがその特権を持つユーザーアカウントで実行されており、かつ Windows の AdjustTokenPrivileges 関数を使用して特権を有効にする必要があります。

これらの呼び出しはローカルユーザーであれば誰でも実行できますが、リモートユーザーは root 名前空間に対する WBEM_FULL_WRITE_REP アクセス権を持っている必要があります。

メソッド 2

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

vtbl 5 HRESULT Pause()

IWbemBackupRestoreEx::Pause メソッドは、Windows Management Instrumentation (WMI) リポジトリへの書き込み操作をロックアウトします。読み取り操作がブロックされる場合もあります。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧は、HRESULT に含まれる値を示しています。

解説(Remarks)

Pause メソッドを実装する場合は、できるだけ早く Resume メソッドを呼び出してください。Resume が 15 分以内に呼び出されない場合は、自動的に呼び出されます。Resume を呼び出さずに同一オブジェクトに対して Pause を 2 回呼び出すと失敗します。2 つのオブジェクトに対して同時に Pause を呼び出すと、最初のオブジェクトで Resume が呼び出されるまで 2 番目のオブジェクトがロックされる可能性があります。

注意 Pause メソッドを実装するには、メソッドを呼び出す前にクライアントユーザーが SE_BACKUP_NAME を保持している必要があります。

使用例

次の C++ の例は、IWbemBackupRestoreEx::Pause メソッドを正しく呼び出す方法を示しています。

// The pInt variable is of type IWbemBackupRestoreEx*
pInt->Pause();
vtbl 6 HRESULT Resume()

IWbemBackUpRestoreEx::Resume メソッドは、Windows Management Instrumentation (WMI) リポジトリのロックを解放し、操作を続行できるようにします。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧は、HRESULT に含まれる値を示しています。

解説(Remarks)

Pause メソッドを呼び出した場合は、必ず Resume メソッドを呼び出す必要があります。Resume は、Pause メソッドを実装した IWbemBackUpRestoreEx と同じインスタンスに対して呼び出す必要があります。Resume を呼び出さずにオブジェクトを解放すると、Resume メソッドが自動的に実行されます。

注意 Resume メソッドを実装するには、メソッドを呼び出す前にクライアントユーザーが SE_BACKUP_NAME を保持している必要があります。

使用例

次の C++ の例は、IWbemBackUpRestoreEx::Resume メソッドを呼び出す方法を示しています。

// The pInt variable is of type IWbemBackupRestoreEx*
pInt->Resume();
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWbemBackupRestoreEx "{A359DEC5-E813-4834-8A2A-BA7F1D777D76}"
#usecom global IWbemBackupRestoreEx IID_IWbemBackupRestoreEx "{}"
#comfunc global IWbemBackupRestoreEx_Pause   5
#comfunc global IWbemBackupRestoreEx_Resume  6
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。