关键区域和受保护区域

在禁用用户 APC 和正常内核 APC 的情况下,位于 关键区域中 的线程执行。 受保护的区域中的线程在禁用所有 APC 的情况下运行。

关键区域

驱动程序可以进入和退出关键区域,如下所示:

每次调用 KeEnterCriticalRegion 都必须具有对 KeLeaveCriticalRegion 的匹配调用。

受保护的区域

驱动程序可以进入和退出受保护的区域,如下所示:

KeEnterGuardedRegion 的每次调用都必须具有对 KeLeaveGuardedRegion 的匹配调用。

为 Windows Server 2003 及更高版本的 Windows 开发的驱动程序可以使用受保护的区域来禁用特殊的内核 APC。 为早期操作系统开发的驱动程序可以通过调用 KeRaiseIrql 将当前 IRQL 提高到 APC_LEVEL来禁用特殊内核 APC。 使用 KeLowerIrql 将当前 IRQL 降低到以前的值。