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


Правило MarkingInterlockedQueuedIrps (wdm)

Правило MarkingInterlockedQueuedIrps указывает, что драйвер правильно помечает IRP как ожидающий, прежде чем помещает его в очередь для дальнейшей обработки.

Это правило также указывает, что драйвер вызывает IoMarkIrpPending и правильно помечает IRP как ожидающий, прежде чем он вызовет любую из следующих функций для добавления IRP в заблокированную очередь:

Драйверы должны вызывать IoMarkIrpPending перед добавлением IRP, требующего дополнительной обработки, в заблокированную очередь. В противном случае IRP может быть выведен из очереди, завершен другой подпрограммой драйвера и освобожден системой до вызова IoMarkIrpPending , что приведет к сбою.

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

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

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

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

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

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

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

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

ExInterlockedInsertHeadListExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList

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

Синхронизация отмены IRP MarkIrpPending