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


Правило PnpSurpriseRemove (wdm)

Правило PnpSurpriseRemove указывает, что драйвер не вызывает IoDeleteDevice или IoDetachDevice при обработке запроса IRP_MN_SURPRISE_REMOVAL.

Диспетчер PnP отправляет запрос IRP_MN_SURPRISE_REMOVAL, чтобы уведомить драйверы о том, что устройство больше не доступно для операций ввода-вывода и что оно, вероятно, было неожиданно удалено с компьютера.

  • Все драйверы PnP должны обрабатывать запросы IRP_MN_SURPRISE_REMOVAL.
  • Драйвер не должен вызывать IoDeleteDevice или IoDetachDevice на объектах устройств до тех пор, пока IRP_MN_SURPRISE_REMOVAL IRP не будет закрыт и все открытые дескрипторы устройства закрыты.
  • Затем диспетчер PnP отправляет запрос IRP_MN_REMOVE_DEVICE в стек устройств. В ответ на удаление IRP драйверы отсоединяют объекты устройства от стека и удаляют их.

Дополнительные сведения о том, как драйвер должен отвечать на запрос IRP_MN_SURPRISE_REMOVAL, см. в разделе Обработка IRP_MN_SURPRISE_REMOVAL запроса

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

Тестирование

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

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

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

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

Применимо к

IoDeleteDeviceIoDetachDevice

См. также

обработкаIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE запроса IRP_MN_SURPRISE_REMOVAL