IWbemBackupRestore
COM公式ドキュメント
IWbemBackupRestore インターフェイスは、WMI リポジトリの内容をバックアップおよび復元します。
解説(Remarks)
既定のモードは、強制モードフラグを設定した場合と同じであり、すべてのアクティブな接続を切断します。その結果、新しい接続が確立されるまで、WMI へのアクティブな COM 接続からリモート プロシージャ コール (RPC) エラーが発生します。
復元操作の実行中は、リポジトリへのアクティブな接続が存在してはなりません。このため、既定のパラメーターを使用し、かつアクティブな接続が存在する場合、復元操作は失敗します。すべてのアクティブな接続を切断するフラグを指定できます。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IWbemBackupRestore::Backup メソッドは、静的リポジトリの内容を別のファイルにバックアップします。
| strBackupToFile | LPWSTR | in | リポジトリの内容のバックアップ先となるファイル名を格納した、16 ビット Unicode 文字による定数の null 終端文字列です。 |
| lFlags | INT | in | 予約済みです。このパラメーターは 0 (ゼロ) である必要があります。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧に、HRESULT に格納される値を示します。
IWbemBackupRestore::Restore メソッドは、現在のリポジトリの内容を削除し、あらかじめ指定されたバックアップの内容で復元します。
| strRestoreFromFile | LPWSTR | in | 復元するファイルのファイル名を格納した、16 ビット Unicode 文字による定数の null 終端文字列です。指定するファイルは、事前に IWbemBackupRestore::Backup で作成されたファイルを指している必要があります。 |
| lFlags | INT | in | 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 公式リファレンス: 英語 (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から自動取得)。