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

IWbemBackupRestore

COM
IIDc49e32c7-bc8b-11d2-85d4-00105a1f8304継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWbemBackupRestore インターフェイスは、WMI リポジトリの内容をバックアップおよび復元します。

解説(Remarks)

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

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

Note 呼び出しを行うクライアントでは、適切な特権が有効になっている必要があります。バックアップには SE_RESTORE_NAME 特権が必要であり、復元にも SE_RESTORE_NAME が必要です。特権を有効にするには、クライアント アプリケーションがその特権を持つユーザー アカウントで実行されており、かつ Windows の AdjustTokenPrivileges 関数を使用して特権を有効にする必要があります。
Windows を実行しているコンピューターでは、ローカル ユーザーであれば誰でもこれらの呼び出しを行えますが、リモート ユーザーは root 名前空間に対する WBEM_FULL_WRITE_REP アクセス権を持っている必要があります。

メソッド 2

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

vtbl 3 HRESULT Backup(LPWSTR strBackupToFile, INT lFlags)

IWbemBackupRestore::Backup メソッドは、静的リポジトリの内容を別のファイルにバックアップします。

strBackupToFileLPWSTRinリポジトリの内容のバックアップ先となるファイル名を格納した、16 ビット Unicode 文字による定数の null 終端文字列です。
lFlagsINTin予約済みです。このパラメーターは 0 (ゼロ) である必要があります。

戻り値

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

vtbl 4 HRESULT Restore(LPWSTR strRestoreFromFile, INT lFlags)

IWbemBackupRestore::Restore メソッドは、現在のリポジトリの内容を削除し、あらかじめ指定されたバックアップの内容で復元します。

strRestoreFromFileLPWSTRin復元するファイルのファイル名を格納した、16 ビット Unicode 文字による定数の null 終端文字列です。指定するファイルは、事前に IWbemBackupRestore::Backup で作成されたファイルを指している必要があります。
lFlagsINTin

WBEM_BACKUP_RESTORE_FLAGS 列挙型の次のフラグのいずれかです。

WBEM_FLAG_BACKUP_RESTORE_DEFAULT

アクティブなクライアントをシャットダウンしません。アクティブなクライアントが存在する場合はエラーを返します。

WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN

アクティブなクライアントをすべてシャットダウンします。

戻り値

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

解説(Remarks)

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

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

// The pInt variable is of type IWbemBackupRestore*
pInt->Restore(
        L"c:\\\\Windows\\System32\\wbem\\repository\\back.x",
        WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN
      );
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWbemBackupRestore "{C49E32C7-BC8B-11D2-85D4-00105A1F8304}"
#usecom global IWbemBackupRestore IID_IWbemBackupRestore "{C49E32C6-BC8B-11D2-85D4-00105A1F8304}"
#comfunc global IWbemBackupRestore_Backup   3 wstr,int
#comfunc global IWbemBackupRestore_Restore  4 wstr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。