次の方法で共有


PshedSynchronizeExecution 関数 (ntddk.h)

PshedSynchronizeExecution 関数は、特定の関数の実行を、エラー ソースのハードウェア エラー処理と同期します。

構文

NTPSHEDAPI BOOLEAN PshedSynchronizeExecution(
  [in] PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
  [in] PKSYNCHRONIZE_ROUTINE         SynchronizeRoutine,
  [in] PVOID                         SynchronizeContext
);

パラメーター

[in] ErrorSource

エラー ソースを記述する WHEA_ERROR_SOURCE_DESCRIPTOR 構造体へのポインター。

[in] SynchronizeRoutine

ErrorSource パラメーターによって記述されたエラー ソースのハードウェア エラー処理と同期される、呼び出し元が指定した関数へのポインター。 SynchronizeRoutine 関数は次のように宣言されます。

BOOLEAN
SynchronizeRoutine(
    _In_ PVOID  SynchronizeContext
    );

SynchronizeContext

SynchronizeContext パラメーターで PshedSynchronizeExecution 関数に渡されるコンテキスト値。

[in] SynchronizeContext

SynchronizeRoutine パラメーターによって指される関数に渡される、呼び出し元が指定したコンテキスト領域へのポインター。

戻り値

PshedSynchronizeExecution は、 SynchronizeRoutine パラメーターによって指される関数によって返される値を返します。

注釈

PSHED プラグインは 、PshedSynchronizeExecution 関数を呼び出して、特定の関数の実行をエラー ソースのハードウェア エラー処理と同期します。 これは、PSHED プラグインが、通常のハードウェア エラー処理フローの外部で実行されるコードと、通常のハードウェア エラー処理フローの一部として実行されるコードの間でリソースを共有する場合に必要です。 ハードウェア エラーの処理の詳細については、「 エラー処理」を参照してください。

この関数が呼び出されると、次の処理が行われます。

  1. IRQL は、エラー ソースの低レベルハードウェア エラー ハンドラー (LLHEH) が実行される IRQL に発生します。

  2. SynchronizeContext パラメーターで指定されたコンテキスト領域へのアクセスは、関連するスピン ロックを取得することによって LLHEH と同期されます。

  3. SynchronizeRoutine パラメーターで指定された関数が呼び出されます。

PshedSynchronizeExecution 関数の呼び出し元は、IRQL <= DIRQL で実行されている必要があります。つまり、エラー ソースの LLHEH が実行される IRQL 以下である必要があります。

要件

要件
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
Library Pshed.lib
[DLL] Pshed.dll
IRQL IRQL <= DIRQL

こちらもご覧ください

WHEA_ERROR_SOURCE_DESCRIPTOR