SetProcessDynamicEHContinuationTargets 関数 (processthreadsapi.h)
指定したプロセスの動的例外処理継続ターゲットを設定します。
構文
BOOL SetProcessDynamicEHContinuationTargets(
HANDLE Process,
USHORT NumberOfTargets,
PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets
);
パラメーター
Process
プロセスへのハンドル。 このハンドルには 、PROCESS_SET_INFORMATION アクセス権が必要です。 詳細については、「 プロセス のセキュリティとアクセス権」を参照してください。
NumberOfTargets
設定する動的例外処理継続ターゲットの数を指定します。
Targets
動的例外処理継続ターゲットの配列へのポインター。 この構造の詳細については、「 PROCESS_DYNAMIC_EH_CONTINUATION_TARGET」を参照してください。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 関数が失敗した場合でも、指定された継続ターゲットの一部が正常に処理されている可能性があることに注意してください。 呼び出し元は、Targets で指定された個々の継続ターゲットのフラグをチェックして、正常に処理されたかどうかを判断する必要があります。
注釈
プロセスに対してユーザー モードのハードウェア強制スタック保護が有効になっている場合、 RtlRestoreContext や SetThreadContext などのスレッドの実行コンテキストを変更する API を呼び出すときに、新しい実行コンテキストで指定された命令ポインターに対して検証が実行されます。
RtlRestoreContext は、ブロックを含む__except
ターゲット フレームにアンワインドし、継続ターゲットでコードの実行を開始するために、構造化例外処理 (SEH) 例外アンワインド中に使用されます。
したがって、 RtlRestoreContext によるアンワインド操作を許可するには、オペレーティング システムが有効なすべての継続ターゲットの命令アドレスを認識する必要があります。
コンパイル済みバイナリの場合、継続ターゲットの一覧はリンカーによって生成され、バイナリ イメージに格納されます。
動的コードの場合、継続ターゲットは SetProcessDynamicEHContinuationTargets を使用して指定する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 ビルド 20348 |
サポートされている最小のサーバー | Windows 10 ビルド 20348 |
Header | processthreadsapi.h |