Обработка события GUID_TARGET_DEVICE_REMOVE_CANCELLED
Если запрос IRP_MN_QUERY_REMOVE_DEVICE завершается сбоем, диспетчер PnP отправляет IRP_MN_CANCEL_REMOVE_DEVICE IRP драйверам устройства. После успешного завершения отмены и удаления IRP диспетчер PnP вызывает все процедуры обратного вызова уведомлений, зарегистрированные для EventCategoryTargetDeviceChange на устройстве. Диспетчер PnP указывает NotificationStructure. Событие GUID_TARGET_DEVICE_REMOVE_CANCELLED.
При обработке события GUID_TARGET_DEVICE_REMOVE_CANCELLED подпрограмма обратного вызова уведомлений должна:
Повторная регистрация для получения уведомлений о целевом устройстве.
Так как драйвер закрыл предыдущий дескриптор регистрации в ответ на уведомление об удалении запроса, драйвер должен открыть новый дескриптор. Драйвер должен:
Удалите старую регистрацию с помощью IoUnregisterPlugPlayNotification.
Откройте новый дескриптор устройства.
Повторная регистрация для получения уведомления о новом дескрипторе с помощью IoRegisterPlugPlayNotification.