ExAcquireRundownProtection 関数 (wdm.h)

ExAcquireRundownProtection ルーチンは、呼び出し元がオブジェクトに安全にアクセスできるように、共有オブジェクトのランダウン保護を取得しようとします。

構文

BOOLEAN ExAcquireRundownProtection(
  [in, out] PEX_RUNDOWN_REF RunRef
);

パラメーター

[in, out] RunRef

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

戻り値

ExAcquireRundownProtection は、ルーチンが呼び出し元のランダウン保護を正常に取得した場合に TRUE を 返します。 それ以外の場合は、 FALSE を返しますFALSE の戻り値は、オブジェクトの実行が開始され、オブジェクトが無効として扱われる必要があることを示します。

注釈

共有オブジェクトに安全にアクセスするために、ドライバーは ExAcquireRundownProtection を呼び出して、オブジェクトのランダウン保護を取得します。 ルーチンは TRUE を 返し、ランダウン保護が有効であることを示します。 ランダウン保護が有効な場合、ドライバーは、アクセスが完了する前にオブジェクトが削除されるリスクなしに、オブジェクトに安全にアクセスできます。

ランダウン ブロック自体が非ページである限り、この関数は DISPATCH_LEVEL で呼び出すことができます。

アクセスが完了すると、ドライバーは ExReleaseRundownProtection を呼び出して、以前に取得したランダウン保護を解放します。

ExAcquireRundownProtectionFALSE を返した場合、オブジェクトにアクセスできなくなります。 たとえば、オブジェクトを新しいオブジェクトに置き換える場合、呼び出し元はオブジェクト所有者が新しいオブジェクトを作成するのを待ってから、新しいオブジェクトへのアクセスをネゴシエートする必要があります。

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

要件

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

こちらもご覧ください

EX_RUNDOWN_REF

ExInitializeRundownProtection

ExReleaseRundownProtection