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 を呼び出して、以前に取得したランダウン保護を解放します。
ExAcquireRundownProtection が FALSE を返した場合、オブジェクトにアクセスできなくなります。 たとえば、オブジェクトを新しいオブジェクトに置き換える場合、呼び出し元はオブジェクト所有者が新しいオブジェクトを作成するのを待ってから、新しいオブジェクトへのアクセスをネゴシエートする必要があります。
詳細については、「 Run-Down Protection」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (「解説」を参照) |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport) |