Правило CriticalRegions (wdm)
Правило CriticalRegions указывает, что драйвер должен вызвать KeEnterCriticalRegion перед вызовом KeLeaveCriticalRegion и что драйвер вызывает KeLeaveCriticalRegion перед любыми последующими вызовами KeEnterCriticalRegion. (Вложенные вызовы разрешены.)
Это правило также указывает, что драйвер вызывает KeLeaveCriticalRegion , чтобы повторно включить доставку обычных вызовов асинхронных процедур ядра (APC) перед возвратом.
В документации по WDK для KeEnterCriticalRegion и KeLeaveCriticalRegion объясняется, что вызывающий объект этих функций может выполняться по адресу IRQL<=APC_LEVEL. В этом случае это правило применяет рекомендации.
Модель драйвера: WDM
Проверка ошибок, обнаруженных с помощью этого правила: 0xC4 проверки ошибок: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040003)
Как тестировать
Во время компиляции |
---|
Запустите средство проверки статических драйверов и укажите правило CriticalRegions . Выполните следующие действия, чтобы выполнить анализ кода.
Дополнительные сведения см. в разделе Использование средства проверки статических драйверов для поиска дефектов в драйверах. |
во время выполнения |
---|
Запустите средство проверки драйверов и выберите параметр Проверка соответствия DDI (дополнительная). |
Применяется к
ExEnterCriticalRegionAndAcquireResourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion