KeEnterCriticalRegion 函式 (ntddk.h)
KeEnterCriticalRegion 例程會暫時停用正常核心 APC 的執行,但不會防止特殊核心 APC 執行。
Syntax
void KeEnterCriticalRegion();
傳回值
無
備註
驅動程式會呼叫此例程,以進入執行一般核心 APC 的重要區域,直到此驅動程式呼叫 KeLeaveCriticalRegion 例程結束重要區域為止。 任何 KeEnterCriticalRegion 的呼叫端都應該在進入重要區域之後儘快呼叫 KeLeaveCriticalRegion 。
在要求目前 I/O 作業的線程內容中執行時,最高層級驅動程式可以呼叫 KeEnterCriticalRegion 。
重要區域內的線程同時停用使用者 APC 和一般核心 APC,但未停用特殊核心 APC。 如需這些 APC 類型的詳細資訊,請參閱 APC 的類型。
重要區域可以遞歸輸入,而且每個對 KeEnterCriticalRegion 的呼叫都必須具有 KeLeaveCriticalRegion 的相符呼叫。
驅動程式可以使用重要區域來取得和釋放共用資源的獨佔存取權。 在此情況下, 可以使用 ExEnterCriticalRegionAndAcquireResourceExclusive 和 ExReleaseResourceAndLeaveCriticalRegion 例程,而不是 KeEnterCriticalRegion 和 KeLeaveCriticalRegion 例程。 如需詳細資訊,請參閱 ExEnterCriticalRegionAndAcquireResourceExclusive 中的程式碼範例。
如需 APC 的詳細資訊,請參閱 異步過程調用。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI 合規性規則 | CriticalRegions (wdm) 、 HwStorPortProhibitedDIS (storport ) 、 IrqlKeApcLte2 (wdm ) 、 WithinCriticalRegion (storport) 、 WithinCriticalRegion (storport ) 、 WithinCriticalRegion (wdm) |
另請參閱
ExEnterCriticalRegionAndAcquireResourceExclusive