次の方法で共有


KeEnterCriticalRegion 関数 (ntddk.h)

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

構文

void KeEnterCriticalRegion();

戻り値

何一つ

備考

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

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

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

重要な領域は再帰的に入力でき、KeEnterCriticalRegion の各呼び出しには、KeLeaveCriticalRegion する一致する呼び出しが必要です。

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー ntddk.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ 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