ExWaitForRundownProtectionReleaseCacheAware 関数 (wdm.h)

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

構文

void ExWaitForRundownProtectionReleaseCacheAware(
  [in, out] PEX_RUNDOWN_REF_CACHE_AWARE RunRef
);

パラメーター

[in, out] RunRef

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

戻り値

なし

解説

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

ExWaitForRundownProtectionReleaseCacheAware を呼び出した後、ExAcquireRundownProtectionCacheAware ルーチンは、共有オブジェクトにアクセスしようとしているドライバーからのキャッシュ対応のランダウン保護に対する要求をそれ以上許可しません。

このルーチンは、以前にキャッシュ対応のランダウン保護が付与されたすべてのドライバーがオブジェクトへのアクセスを完了するまで、戻るのを待機します。 各ドライバーが完了すると、 ExReleaseRundownProtectionCacheAware ルーチンを呼び出して、以前に取得したキャッシュ対応のランダウン保護を解放します。 未処理のすべてのアクセスが完了すると、 ExWaitForRundownProtectionReleaseCacheAware が返され、オブジェクトを安全に削除できます。

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

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

詳細については、「 キャッシュ対応のランダウン保護」を参照してください。

要件

要件
サポートされている最小のサーバー Windows Server 2003 Service Pack 1
Header wdm.h (Wdm.h を含む)
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), SpNoWait(storport)

こちらもご覧ください

ExAcquireRundownProtectionCacheAware

ExAcquireRundownProtectionCacheAwareEx

ExAllocateCacheAwareRundownProtection

ExFreeCacheAwareRundownProtection

ExInitializeRundownProtectionCacheAware

ExReInitializeRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAwareEx

ExRundownCompletedCacheAware

ExSizeOfRundownProtectionCacheAware