次の方法で共有


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 保護」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (解説を参照)
DDI コンプライアンス規則 する hwStorPortProhibitedDDDIs(storport) する

関連項目

EX_RUNDOWN_REF

ExInitializeRundownProtection

ExReleaseRundownProtection