KeEnterCriticalRegion routine

KeEnterCriticalRegion routine

KeEnterCriticalRegion 例程展示禁用普通内核APC的执行但不禁止特殊内核APC的运行。

Syntax

 

VOID KeEnterCriticalRegion(void);

 

Parameters

无参

Return value

None

Remarks

驱动程序调用这个例程进入一个关键区,在此关键区域中APC被推后执行直到驱动程序退出这个关键区。调用KeLeaveCriticalRegion 能退出关键区。在进入关键区后调用者应当尽快调用KeLeaveCriticalRegion 退出关键区。高层的驱动程序可以在当前线程请求当前IO操作的上下文中调用KeEnterCriticalRegion 在关键区中的线程同时禁用了用户APC和内核APC。但无法禁用特殊内核APC,有关APC类型的详细信息见: Types of APCs.

关键区能被递归进入,每个 KeEnterCriticalRegion 都必须有个匹配的 KeLeaveCriticalRegion.

驱动程序能使用一个关键区去获取和释放一个共享资源的独占的访问权,在这种情况下,例程ExEnterCriticalRegionAndAcquireResourceExclusive ExReleaseResourceAndLeaveCriticalRegion 能代替 KeEnterCriticalRegion KeLeaveCriticalRegion ,详见代码示例:ExEnterCriticalRegionAndAcquireResourceExclusive.

有关APC的更多信息,见Asynchronous Procedure Calls.

Requirements

Target platform

Universal

Version

Available starting with Windows 2000.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

NtosKrnl.lib

DLL

NtosKrnl.exe

IRQL

<= APC_LEVEL

DDI compliance rules

CriticalRegionsIrqlKeApcLte2WithinCriticalRegionHwStorPortProhibitedDDIs,WithinCriticalRegion(storport)

See also

ExEnterCriticalRegionAndAcquireResourceExclusive

ExReleaseResourceAndLeaveCriticalRegion

KeAreApcsDisabled

KeLeaveCriticalRegion

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值