Перечисление CM_NOTIFY_ACTION (cfgmgr32.h)
Это перечисление определяет Plug and Play типы событий устройства.
Синтаксис
typedef enum _CM_NOTIFY_ACTION {
CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL,
CM_NOTIFY_ACTION_DEVICEQUERYREMOVE,
CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED,
CM_NOTIFY_ACTION_DEVICEREMOVEPENDING,
CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE,
CM_NOTIFY_ACTION_DEVICECUSTOMEVENT,
CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED,
CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED,
CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED,
CM_NOTIFY_ACTION_MAX
} CM_NOTIFY_ACTION, *PCM_NOTIFY_ACTION;
Константы
CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL Значение: 0 Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE. Это действие указывает, что интерфейс устройства, соответствующий условиям фильтра, был включен. |
CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE. Это действие указывает, что интерфейс устройства, соответствующий условиям фильтра, отключен. |
CM_NOTIFY_ACTION_DEVICEQUERYREMOVE Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE. Это действие указывает, что устройство удаляется. Чтобы выполнить удаление запроса, вызовите CloseHandle , чтобы закрыть все дескрипторы, открытые для устройства. Если этого не сделать, открытый дескриптор не позволит успешно удалить запрос этого устройства. Дополнительные сведения см. в разделе Регистрация для уведомления о прибытии и удалении интерфейса устройства . Чтобы наказать вето на удаление запроса, верните ERROR_CANCELLED. Однако рекомендуется не наложить вето на удаление запроса и разрешить его выполнение, закрыв все дескрипторы, открытые для устройства. |
CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE. Это действие указывает, что запрос на удаление устройства завершился сбоем. Если вы закрыли дескриптор для этого устройства во время предыдущего уведомления о CM_NOTIFY_ACTION_DEVICEQUERYREMOVE, откройте новый дескриптор для устройства, чтобы продолжить отправку запросов ввода-вывода на него. Дополнительные сведения см. в разделе Регистрация для уведомления о прибытии и удалении интерфейса устройства . |
CM_NOTIFY_ACTION_DEVICEREMOVEPENDING Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE. Устройство будет удалено. Если у вас по-прежнему есть открытый дескриптор для устройства, вызовите CloseHandle , чтобы закрыть дескриптор устройства. Дополнительные сведения см. в разделе Регистрация для уведомления о прибытии и удалении интерфейса устройства . Система может отправлять уведомление CM_NOTIFY_ACTION_DEVICEREMOVEPENDING , не отправляя соответствующее CM_NOTIFY_ACTION_DEVICEQUERYREMOVE сообщение. В таких случаях приложения и драйверы должны восстановиться после потери устройства как можно лучше. |
CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE. Устройство удалено. Если у вас по-прежнему есть открытый дескриптор для устройства, вызовите CloseHandle , чтобы закрыть дескриптор устройства. Дополнительные сведения см. в разделе Регистрация для уведомления о прибытии и удалении интерфейса устройства . Система может отправлять уведомление CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE без отправки соответствующих CM_NOTIFY_ACTION_DEVICEQUERYREMOVE или CM_NOTIFY_ACTION_DEVICEREMOVEPENDING сообщений. В таких случаях приложения и драйверы должны восстановиться после потери устройства как можно лучше. |
CM_NOTIFY_ACTION_DEVICECUSTOMEVENT Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE. Это действие отправляется при возникновении пользовательского события, определенного драйвером. |
CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE. Это действие отправляется при перечислении нового экземпляра устройства, соответствующего условиям фильтра. |
CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE. Это действие отправляется при запуске экземпляра устройства, соответствующего условиям фильтра. |
CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED Для этого значения задайте элемент FilterType структуры CM_NOTIFY_FILTER . для CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE. Это действие отправляется, когда экземпляр устройства, соответствующий условиям фильтра, больше не присутствует. |
CM_NOTIFY_ACTION_MAX Не используйте. |
Комментарии
Когда драйвер вызывает функцию CM_Register_Notification , параметр pCallback содержит указатель на подпрограмму, вызываемую при возникновении указанного события PnP. Параметр Action подпрограммы обратного вызова — это значение из перечисления CM_NOTIFY_ACTION .
Требования
Требование | Значение |
---|---|
Заголовок | cfgmgr32.h |