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 の