Предоставление уведомления о событиях
Служба WIA уведомляет мини-хранилище WIA о поддерживаемом событии устройства, вызывая метод IWiaMiniDrv::d rvNotifyPnpEvent . В этом методе мини-диск реализует функциональные возможности для конкретного устройства, необходимые для реагирования на событие. Служба WIA вызывает метод IWiaMiniDrv::d rvNotifyPnpEvent только для события, которое мини-driver указал, что устройство может поддерживать в методе IWiaMiniDrv::d rvGetCapabilities .
Мини-driver инициирует событие либо с помощью механизма событий STI, либо с помощью wiasQueueEvent для добавления уведомления о событии с этого устройства в очередь событий.
Асинхронное поведение: управление питанием и отмена ввода-вывода
В большинстве случаев служба WIA гарантирует, что драйверу одновременно выполняется только один вызов. Однако некоторые методы по своей природе являются асинхронными и повторными. Хорошим примером этого является метод IWiaMiniDrv::d rvNotifyPnpEvent .
Служба WIA использует этот метод для уведомления драйвера о событиях, которые могут потребовать немедленных действий. Например, когда служба WIA получает событие Plug and Play, указывающее, что устройство было удалено, она немедленно информирует драйвер. Другие примеры включают события управления питанием и запросы на отмену ввода-вывода от приложений.
Пример реализации метода IWiaMiniDrv::d rvNotifyPnpEvent , демонстрирующий, как он должен реагировать на события различных типов, см. в разделе Добавление поддержки событий прерывания.