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) |