Обработка событий изменения профиля оборудования
В определенное время во время изменения профиля оборудования диспетчер PnP вызывает подпрограммы обратного вызова уведомлений, зарегистрированные для EventCategoryHardwareProfileChange:
Перед изменением профиля оборудования компьютера диспетчер PnP вызывает зарегистрированные процедуры обратного вызова уведомлений и задает NotificationStructure. Событие GUID_HWPROFILE_QUERY_CHANGE.
После изменения профиля оборудования компьютера диспетчер PnP вызывает процедуры обратного вызова зарегистрированных уведомлений и задает NotificationStructure. Событие GUID_HWPROFILE_CHANGE_COMPLETE.
Если изменение профиля оборудования компьютера отменено, диспетчер PnP вызывает процедуры обратного вызова зарегистрированных уведомлений и задает NotificationStructure. Событие GUID_HWPROFILE_CHANGE_CANCELLED.
Для события GUID_HWPROFILE_QUERY_CHANGE диспетчер PnP вызывает подпрограммы обратного вызова в пользовательском режиме, а затем вызывает подпрограммы обратного вызова в режиме ядра. В ответ на событие GUID_HWPROFILE_QUERY_CHANGE подпрограмма обратного вызова уведомлений драйвера обычно просто возвращает STATUS_SUCCESS.
Для события GUID_HWPROFILE_CHANGE_COMPLETE диспетчер PnP вызывает подпрограммы обратного вызова в режиме ядра, а затем вызывает подпрограммы обратного вызова в пользовательском режиме. В ответ на такое событие подпрограмма обратного вызова драйвера может обновить параметры профиля оборудования.
Для события GUID_HWPROFILE_CHANGE_CANCELLED диспетчер PnP вызывает подпрограммы обратного вызова в режиме ядра, а затем подпрограммы пользовательского режима. В ответ на такое событие процедура обратного вызова драйвера обычно просто возвращает STATUS_SUCCESS. Если драйвер выполнял какие-либо операции в ответ на событие GUID_HWPROFILE_QUERY_CHANGE, драйвер отменяет эти операции в ответ на событие отмены.