Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Диспетчер PnP предоставляет механизм уведомления драйверов и приложений при возникновении определенных событий на определенном устройстве или в системе в целом. Драйвер может зарегистрировать уведомление о следующих категориях событий:
КатегорияСобытияИзменениеИнтерфейсаУстройства
Когда драйвер регистрирует эту категорию событий в интерфейсе устройства, диспетчер PnP уведомляет драйвер следующих событий:
GUID_DEVICE_INTERFACE_ARRIVAL
Указывает, что включен интерфейс устройства указанного класса. Например, пользователь добавил новый диск на компьютер и диспетчер томов включил новый том (интерфейс устройства класса "том").GUID_УДАЛЕНИЕ_ИНТЕРФЕЙСА_УСТРОЙСТВА (DEVICE_INTERFACE_REMOVAL)
Указывает, что интерфейс устройства указанного класса отключен.Дополнительные сведения об интерфейсах устройств см. в разделе IoRegisterDeviceInterface и связанных подпрограмм.
КатегорияСобытияЦелевогоИзмененияУстройства
Когда драйвер регистрирует эту категорию событий на устройстве, диспетчер PnP уведомляет драйвер, когда на устройстве происходят следующие события:
GUID_TARGET_DEVICE_QUERY_REMOVE
Указывает, что диспетчер PnP собирался удалить драйверы для устройства. Несколько действий могут привести к этому событию, включая: пользователь попросил удалить указанное устройство с компьютера или пользователь выпустил запрос драйвера обновления для устройства. Это уведомление обращается к драйверам устройства с просьбой утвердить или наложить вето на предстоящую операцию удаления.GUID_TARGET_DEVICE_REMOVE_COMPLETE
Указывает, что указанное устройство было удалено с компьютера или что пользователь изменяет драйверы для устройства.GUID_ЦЕЛЕВОЕ_УСТРОЙСТВО_СНЯТИЕ_ОТМЕНЕНО
Указывает, что операция удаления на указанном устройстве отменена.GUID_XXX ( пользовательские события)
Указывает, что на указанном устройстве произошло пользовательское событие.Модуль записи драйверов может определить настраиваемое событие для устройства. Когда драйвер (или другой связанный компонент) уведомляет диспетчер PnP о том, что произошло пользовательское событие, диспетчер PnP уведомляет любые компоненты, зарегистрированные для уведомлений об изменениях целевого устройства на этом устройстве.
В отличие от регистрации изменений интерфейса устройства, которые можно считать "пассивным" интересом к интерфейсу, регистрация для изменений целевого устройства означает "активный" интерес к устройству.
EventCategoryHardwareProfileChange
Эта категория включает следующие события:
GUID_HWPROFILE_QUERY_CHANGE
Указывает, что пользователь попросил изменить профиль оборудования компьютера. Диспетчер PnP использует это уведомление, чтобы попросить зарегистрированных компонентов изменить профиль оборудования без нарушения работы системы. Зарегистрированные компоненты обычно успешно выполняют эти запросы.GUID_HWPROFILE_CHANGE_COMPLETE (ЗАВЕРШЕНИЕ ИЗМЕНЕНИЯ ПРОФИЛЯ АППАРАТНЫХ СРЕДСТВ)
Указывает, что профиль оборудования компьютера изменился. Если драйвер поддерживает параметры для конкретного профиля, такой драйвер должен обновить эти параметры после изменения профиля оборудования.GUID_ОТМЕНА_ИЗМЕНЕНИЯ_ПРОФИЛЯ_ОБОРУДОВАНИЯ
Указывает, что планируемое изменение профиля оборудования было отменено.
Уведомление PnP работает следующим образом для компонентов в режиме ядра:
Драйвер регистрирует уведомление о категории событий путем вызова IoRegisterPlugPlayNotification.
Подпрограмма обратного вызова уведомлений PnP остается зарегистрированной до тех пор, пока драйвер явно не удалит регистрацию.
Менеджер PnP вызывает функцию обратного вызова драйвера при возникновении события в зарегистрированной категории.
Драйвер удаляет регистрацию обратного вызова путем вызова IoUnregisterPlugPlayNotification.
Драйверы не должны создавать синхронное событие или ожидать асинхронного события во время обработки закрытия.
Дополнительные сведения о уведомлении PnP см. в следующих разделах:
Рекомендации по написанию функций обратного вызова уведомлений PnP
Использование уведомления об изменении интерфейса устройства PnP
Использование уведомления об изменении целевого устройства PnP
Использование уведомления об изменении профиля оборудования PnP