次の方法で共有


KeEnterCriticalRegion 関数 (ntddk.h)

KeEnterCriticalRegion ルーチンは、通常のカーネル APC の実行を一時的に無効にしますが、特別なカーネル APCs の実行を妨げるものではありません。

構文

void KeEnterCriticalRegion();

戻り値

なし

解説

ドライバーは、このルーチンを呼び出して、このドライバーが KeLeaveCriticalRegion ルーチンを呼び出すことによって重要な領域を終了するまで、通常のカーネル APC の実行が延期される重要な領域に入ります。 KeEnterCriticalRegion の呼び出し元は、クリティカル リージョンに入った後、できるだけ早く KeLeaveCriticalRegion を呼び出す必要があります。

最上位レベルのドライバーは、現在の I/O 操作を要求したスレッドのコンテキストで実行中に KeEnterCriticalRegion を呼び出すことができます。

クリティカル リージョン内にあるスレッドでは、ユーザー APC と通常のカーネル APC の両方が無効になっていますが、特別なカーネル API は無効になっています。 これらの APC の種類の詳細については、「 APC の種類」を参照してください。

重要なリージョンは再帰的に入力でき、 KeEnterCriticalRegion の各呼び出しには 、KeLeaveCriticalRegion への一致する呼び出しが必要です。

ドライバーは、重要なリージョンを使用して、共有リソースへの排他的アクセスを取得および解放できます。 この場合は、KeEnterCriticalRegion ルーチンと KeLeaveCriticalRegion ルーチンの代わりに、ExEnterCriticalRegionAndAcquireResourceExclusive ルーチンと ExReleaseResourceAndLeaveCriticalRegion ルーチンを使用できます。 詳細については、「 ExEnterCriticalRegionAndAcquireResourceExclusive」のコード例を参照してください。

APC の詳細については、「 非同期プロシージャ 呼び出し」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL
DDI コンプライアンス規則 CriticalRegions(wdm)HwStorPortProhibitedDDIs(storport)IrqlKeApcLte2(wdm)WithinCriticalRegion(storport)、WithinCriticalRegion(storport)、 WithinCriticalRegion(wdm)

こちらもご覧ください

ExEnterCriticalRegionAndAcquireResourceExclusive

ExReleaseResourceAndLeaveCriticalRegion

KeAreApcsDisabled

KeLeaveCriticalRegion