次の方法で共有


ExWaitForRundownProtectionRelease 関数 (wdm.h)

ExWaitForRundownProtectionRelease ルーチンは、既にランダウン保護が付与されているすべてのドライバーが共有オブジェクトへのアクセスを完了するまで待機します。

構文

void ExWaitForRundownProtectionRelease(
  [in, out] PEX_RUNDOWN_REF RunRef
);

パラメーター

[in, out] RunRef

ExInitializeRundownProtection ルーチンの以前の呼び出しによって初期化されたEX_RUNDOWN_REF構造体へのポインター。 ランダウン保護ルーチンでは、この構造体を使用して、関連付けられている共有オブジェクトの実行状態を追跡します。 この構造体はドライバーに対して不透明です。

戻り値

なし

解説

このルーチンは、共有メモリに存在し、他のドライバーによってアクセスされるオブジェクトを所有するドライバーによって呼び出されます。 このオブジェクトを削除する前に、所有ドライバーは、オブジェクトの未処理のアクセスが完了するまで待機するために、このルーチンを呼び出す必要があります。 ExWaitForRundownProtectionRelease が返された後、所有ドライバーはオブジェクトを安全に削除できます。

ExWaitForRundownProtectionRelease を呼び出した後、ExAcquireRundownProtection ルーチンは、共有オブジェクトにアクセスしようとしているドライバーからのランダウン保護の要求をそれ以上許可しません。 ルーチンは、以前にランダウン保護が付与されたすべてのドライバーがオブジェクトへのアクセスを完了するまで、戻るのを待機します。 各ドライバーが完了すると、 ExReleaseRundownProtection ルーチンを呼び出して、以前に取得したランダウン保護を解放します。 未処理のすべてのアクセスが完了すると、 ExWaitForRundownProtectionRelease が返され、オブジェクトを安全に削除できます。

以前にランダウン保護が付与されたすべてのドライバーが既に共有オブジェクトへのアクセスを終了したときに ExWaitForRundownProtectionRelease が呼び出された場合、ルーチンはオブジェクトの状態を 実行するように変更し、待機せずに直ちに返します。

共有オブジェクトを実行するために ExWaitForRundownProtectionRelease が呼び出されたが、 RunRef パラメーターは、このオブジェクトが既に実行されていることを示している場合、呼び出しは無効ですが、エラーとして扱われません。

詳細については、「 Run-Down Protection」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), SpNoWait(storport)

こちらもご覧ください

EX_RUNDOWN_REF

ExAcquireRundownProtection

ExInitializeRundownProtection

ExReleaseRundownProtection