Поделиться через


Критические и защищенные регионы

Поток, который находится в критическом регионе , выполняется с пользовательскими APC и обычными APC ядра отключены. Поток в защищенном регионе выполняется со всеми отключенными APC.

Критические регионы

Драйвер может войти в критически важный регион и выйти из нее следующим образом:

  • Вызовите KeEnterCriticalRegion , чтобы войти в критический регион.

  • Вызовите KeLeaveCriticalRegion , чтобы выйти из критического региона.

Каждый вызов KeEnterCriticalRegion должен иметь соответствующий вызов KeLeaveCriticalRegion.

Защищенные регионы

Драйвер может войти в защищенную область и выйти из нее следующим образом:

  • Вызовите KeEnterGuardedRegion , чтобы войти в защищенный регион.

  • Вызовите KeLeaveGuardedRegion , чтобы покинуть защищенный регион.

Каждый вызов KeEnterGuardedRegion должен иметь соответствующий вызов KeLeaveGuardedRegion.

Драйверы, разработанные для Windows Server 2003 и более поздних версий Windows, могут использовать защищенные регионы для отключения специальных api-интерфейсов ядра. Драйверы, разработанные для более ранних операционных систем, могут отключать специальные APC ядра, повышая текущее значение IRQL до APC_LEVEL путем вызова KeRaiseIrql. Используйте KeLowerIrql , чтобы уменьшить текущее значение IRQL до предыдущего.