Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Формат данных — это один набор параметров, описывающих некоторые аспекты подключения. Например, формат звуковых данных может указывать определенный формат звука на X выборках в секунду и битах Y на выборку.
Диапазон данных задает последовательность допустимых параметров. Например, диапазон звуковых данных может указывать определенный формат звука в семплах A-B в секунду и C-D битах на выборку.
Минидрайвер предоставляет список поддерживаемых диапазонов данных для конкретного пина в элементе DataRanges соответствующей структуры KSPIN_DESCRIPTOR.
В AVStream минидрайверы могут предоставлять свои собственные обработчики пересечения диапазона данных, предоставляя указатель на подпрограмму обратного вызова минидрайвера в члене IntersectHandlerKSPIN_DESCRIPTOR_EX. Чтобы разрешить AVStream пересекать диапазоны, задайте для этого элемента значение NULL. См. AVStrMiniIntersectHandlerEx, чтобы узнать, как определить функцию обратного вызова.
Если минидрайвер предоставляет обработчик пересечения, когда необходимо выполнить пересечение, минидрайвер получает два диапазона данных, которые соответствуют основным типам, подформату и описателям. Также обязательные атрибуты диапазонов данных совпадают.
Если диапазоны пересекаются и достаточно буферного пространства предоставляется в параметре Data подпрограммы обратного вызова AVStrMiniIntersectHandlerEx, процедура пересечения выбирает формат в пересечении и возвращает его вызывающему объекту в буфере, на который указывает Data.
Если два диапазона данных не пересекаются, обработчик возвращает STATUS_NO_MATCH.
Если минидрайвер указал диспетчеризацию AVStrMiniPinSetDataFormat, то AVStream вызывает эту функцию, чтобы сообщить минидрайверу, что AVStream устанавливает определенный формат на пине. Укажите указатель на подпрограмму обратного вызова AVStrMiniPinSetDataFormat в элементе SetDataFormat структуры KSPIN_DISPATCH. (Минидрайверы, которые являются клиентами потокового класса, получают команду SRB_SET_DATA_FORMAT вместо AVStrMiniPinSetDataFormat.)
Минидрайвер может отказаться от предлагаемого формата, вернув STATUS_NO_MATCH из AVStrMiniPinSetDataFormat.
Помимо первоначального вызова AVStrMiniPinSetDataFormat перед созданием пина, ваш минидрайвер может получить второй вызов AVStrMiniPinSetDataFormat непосредственно перед переходом пина в состояние RUN. Если клиент AVStream или stream класса является минидрайвером для записи видео и вы получите такое уведомление, этот диспетчер содержит фактические параметры поверхности. Если возможно, минидрайвер не должен давать сбой при изменении второго формата. Не предполагайте, что будет выполняться второй вызов диспетчера.
Микродрайвер должен записывать данные в том формате, который содержался в последнем успешном вызове AVStrMiniPinSetDataFormat.