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


Функция KeEnterCriticalRegion (wdm.h)

Подпрограмма KeEnterCriticalRegion временно отключает выполнение обычных ПТР ядра, но не препятствует запуску специальных БТР ядра.

Синтаксис

void KeEnterCriticalRegion();

Возвращаемое значение

None

Remarks

Драйвер вызывает эту подпрограмму, чтобы войти в критический регион, в котором выполнение обычных APC ядра откладывается до тех пор, пока этот драйвер не выйдет из критической области путем вызова подпрограммы KeLeaveCriticalRegion . Любой вызывающий объект KeEnterCriticalRegion должен вызывать KeLeaveCriticalRegion как можно быстрее после входа в критический регион.

Драйверы самого высокого уровня могут вызывать KeEnterCriticalRegion при выполнении в контексте потока, запрашивающего текущую операцию ввода-вывода.

В потоке, который находится внутри критического региона, отключены как пользовательские, так и обычные АСП ядра, но не специальные АСП ядра. Дополнительные сведения об этих типах APC см. в разделе Типы APC.

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

Драйвер может использовать критически важный регион для получения и освобождения монопольного доступа к общему ресурсу. В этом случае вместо процедур KeEnterCriticalRegionAndAcquireResourceExclusive и ExReleaseResourceAndLeaveCriticalRegion можно использовать вместо процедур KeEnterCriticalRegion и KeLeaveCriticalRegion . Дополнительные сведения см. в примере кода в exEnterCriticalRegionAndAcquireResourceExclusive.

Дополнительные сведения о APC см. в разделе Асинхронные вызовы процедур.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.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

ExReleaseResourceAndLeaveCriticalRegion

KeAreApcsDisabled

KeLeaveCriticalRegion