Правило 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 . Чтобы выполнить анализ кода, выполните следующие действия.
Дополнительные сведения см. в статье Использование средства проверки статических драйверов для поиска дефектов в драйверах. |
Применяется к
См. также раздел
Обработка запроса IRP_MN_SURPRISE_REMOVALанализ драйвера с помощью средств проверки и анализа кодаIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE