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


Правило ExclusiveResourceAccess (wdm)

Правило ExclusiveResourceAccess указывает, что драйвер вызывает ExAcquireResourceExclusiveLite перед вызовом ExReleaseResourceLite или ExReleaseResourceForThreadLite , и указывает, что драйвер вызывает ExReleaseResourceLite или ExReleaseResourceForThreadLite перед любыми последующими вызовами ExAcquireResourceExclusiveLite.

Вложенные вызовы разрешены, если они получают и освобождают различные ресурсы. Вложенные вызовы для получения или освобождения одних и того же ресурса нарушают это правило.

Это правило также указывает, что после завершения подпрограммы драйвер не должен иметь монопольного доступа к ресурсу. Средство проверки статических драйверов отслеживает конец процедур DriverEntry, AddDevice, StartIo, StartDevice, DpcForIsr, Cancel, Dispatch, RemoveDevice и Unload .

Модель драйвера: WDM

Проверка ошибок, обнаруженных с помощью этого правила

Как тестировать

Во время компиляции

Запустите средство проверки статических драйверов и укажите правило ExclusiveResourceAccess .

Выполните следующие действия, чтобы выполнить анализ кода.
  1. Подготовьте код (используйте объявления типов ролей).
  2. Запустите средство проверки статических драйверов.
  3. Просмотр и анализ результатов.

Дополнительные сведения см. в разделе Использование средства проверки статических драйверов для поиска дефектов в драйверах.

Применяется к

ExAcquireResourceExclusiveLiteExReleaseResourceForThreadLiteExReleaseResourceLite

См. также раздел

Предотвращение ошибок и взаимоблокировок при использовании спиновых блокировок