Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Если вы пишете минидрайвер AVStream, см. "Обработка событий в AVStream".
Наборы событий — это группы связанных событий, для которых прослушиватель может запрашивать уведомление. Например, прослушиватель может регистрироваться для уведомления об изменениях состояния устройства или изменениях в положении потока. При возникновении события ядро потоковой передачи уведомляет всех клиентов, зарегистрированных для этого события.
Минидрайверы описывают, как они поддерживают событие, предоставляя KSEVENT_ITEM структуру, содержащую указатели на обработчики подпрограмм.
Прослушиватели регистрируются для уведомлений, вызывая подпрограмму ядра потоковой передачи KsSynchronousDeviceControl с управляющим кодом IOCTL_KS_ENABLE_EVENT и указателями на структуры KSEVENT и KSEVENTDATA.
Запрос IOCTL_KS_DISABLE_EVENT отключает указанное событие. Тот же указатель, который использовался для включения события, должен использоваться для отключения. Этот указатель однозначно идентифицирует событие. При необходимости клиент может указать указатель NULL и длину нуля, чтобы отключить все активные события для клиента.
Все наборы событий должны поддерживать флаг KSEVENT_TYPE_BASICSUPPORT. Ознакомьтесь со списком доступных флагов событий KSEVENT .
Для некоторых типов событий требуются дополнительные параметры для регистрации для уведомления о событиях. Например, событие KSEVENT_CLOCK_POSITION_MARK на часах активируется, когда часы достигают определенной метки времени. Следовательно, клиенты, которые регистрируются для уведомления об этом событии, должны указать метку времени, с которой активируется событие.
В таком случае минидрайвер передает дополнительные параметры данных в буфере данных после структуры KSEVENTDATA. Минидрайверы, поддерживающие такой тип события, используют расширенную структуру данных, из которой первый элемент имеет тип KSEVENTDATA для хранения уведомительных данных.