次の方法で共有


SRSetRestorePointA 関数 (srrestoreptapi.h)

システム復元で復元ポイントを作成できるように、一連の変更の開始と終了を指定します。

スクリプト可能な同等のスクリプトについては、「CreateRestorePoint参照してください。

構文

BOOL SRSetRestorePointA(
  [in]  PRESTOREPOINTINFOA pRestorePtSpec,
  [out] PSTATEMGRSTATUS    pSMgrStatus
);

パラメーター

[in] pRestorePtSpec

復元ポイントを指定する RESTOREPOINTINFO 構造体へのポインター。

[out] pSMgrStatus

状態情報を受け取る STATEMGRSTATUS 構造体へのポインター。

戻り値

関数が成功した場合、戻り値は TRUE。 pSMgrStatus の llSequenceNumber メンバー 復元ポイントのシーケンス番号を受け取ります。

関数が失敗した場合、戻り値は FALSE。 pSMgrStatus の nStatus メンバー エラー情報を受け取ります。

備考

NETWORKService、LocalService、および System が SRSetRestorePointを使用するすべてのプロセスにコールバックできるようにするには、COM セキュリティ 初期化する必要があります。 これは、SRSetRestorePoint が正常に動作するために必要です。 CoInitializeEx および CoInitializeSecurityに対する COM 呼び出しの設定については、「システム復元の使用 」を参照してください。

この関数はセーフ モードでは呼び出すことができません。 また、システムの復元が無効になっている場合にも失敗します (を無効にするを参照してください)。

この関数を呼び出すと、システム復元はレジストリとその他のシステム データベースの完全なスナップショットを取得します。

アプリケーションでは、読み込み時の動的リンクを使用してシステム復元関数を呼び出さないでください。 代わりに、LoadLibrary 関数を使用して SrClient.dll を読み込み、GetProcAddress を して関数を呼び出します。

RESTOREPOINTINFO 構造体 メンバー BEGIN_SYSTEM_CHANGEに設定された dwEventType メンバーを使用して SRSetRestorePoint を呼び出して、復元ポイントを作成します。 システムへの変更が完了したら、dwEventType END_SYSTEM_CHANGEに設定 SRSetRestorePoint 呼び出します。

ユーザーがアプリケーションのインストールを取り消した場合、インストーラーはインストールの開始時に作成した復元ポイントを削除できます。 復元ポイントの削除は省略可能であり、取り消し中にインストーラーによって意図しない変更が行われないようにすることができます。 インストーラーが復元ポイントを削除する場合は、SRRemoveRestorePoint 関数を呼び出すことができます。 または dwRestorePointType を CANCELLED_OPERATION に設定し、dwEventType を END_SYSTEM_CHANGE に設定 、llSequenceNumber SRSetRestorePointへの初期呼び出しによって返される値に設定されている SRSetRestorePoint 呼び出します。

SRSetRestorePoint入れ子になった呼び出しを行うときは注意してください。 詳細については、「SRSetRestorePointへの入れ子になった呼び出しを する」を参照してください。

Windows 8:

新しいレジストリ キーを使用すると、アプリケーション開発者は復元ポイントの作成頻度を変更できます。

アプリケーションはこのキーを作成して使用する必要があります。このキーはシステム内で既に存在しないためです。 キーが存在しない場合は、既定で次のことが適用されます。 アプリケーションが SRSetRestorePoint 関数を呼び出して復元ポイントを作成した場合、過去 24 時間以内に復元ポイントが作成された場合、Windows はこの新しい復元ポイントの作成をスキップします。 システム復元では、STATEMGRSTATUS 構造体の IISequenceNumber メンバーを、その日に前に作成した復元ポイントのシーケンス番号に設定し、nStatus メンバーの値を ERROR_SUCCESSに設定します。

SRSetRestorePoint 関数は、TRUE返します。

開発者は、HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestoreレジストリ キーの下 SystemRestorePointCreationFrequency DWORD 値を作成するアプリケーションを作成できます。 このレジストリ キーの値は、復元ポイントの作成頻度を変更できます。

アプリケーション SRSetRestorePoint を呼び出して復元ポイントを作成し、レジストリ キーの値が 0 の場合、システム復元では新しい復元ポイントの作成はスキップされません。

アプリケーション SRSetRestorePoint を呼び出して復元ポイントを作成し、レジストリ キーの値が整数 N の場合、システム復元では、前の N 分間に復元ポイントが作成された場合、新しい復元ポイントの作成はスキップされます。

Windows 8:

Windows 8 で実行されているシステム復元では、システムの復元にのみ関連するブート ボリューム内のファイルが監視されます。 Windows 8 で実行されているシステム復元によって作成されたブート ボリュームのスナップショットは、その後、以前のバージョンの Windows によってスナップショットが公開された場合に削除される可能性があります。 システム ボリュームは 1 つだけですが、マルチブート システムのオペレーティング システムごとに 1 つのブート ボリュームがあることに注意してください。

開発者は、HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestoreレジストリ キーの下に ScopeSnapshots DWORD 値を作成するアプリケーションを作成できます。 このレジストリ キーの値が 0 の場合、システム復元では、以前のバージョンの Windows と同じ方法でブート ボリュームのスナップショットが作成されます。 この値が削除されると、Windows 8 で実行されているシステム復元は、システム復元のみに関連するブート ボリューム内のファイルを監視するスナップショットの作成を再開します。

例については、「システム復元の使用 」を参照してください。

手記

srrestoreptapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SRSetRestorePoint を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー サポートされていません
ターゲット プラットフォーム の ウィンドウズ
ヘッダー srrestoreptapi.h
DLL SrClient.dll

関連項目

SRRemoveRestorePoint の