Функция обратного вызова PFNKSPIN (ks.h)
Подпрограмма обратного вызова avStream minidriver вызывается в случаях, когда:
- Существуют данные, доступные для обработки структуры KSPIN . Используйте эту подпрограмму для выполнения обработки, ориентированной на пин-код.
- Соответствующий KSPIN выступает в качестве контакта приемника и подключен к источнику AVStream.
Синтаксис
PFNKSPIN Pfnkspin;
NTSTATUS Pfnkspin(
[in] PKSPIN Pin
)
{...}
Параметры
[in] Pin
Указатель на KSPIN с данными кадра, доступными для обработки.
Возвращаемое значение
Верните STATUS_SUCCESS для продолжения обработки. Верните STATUS_PENDING, чтобы остановить обработку до следующего запуска события.
Комментарии
Сведения об AVStrMiniPinProcess
Мини-driver указывает адрес этой подпрограммы в элементе Process структуры KSPIN_DISPATCH .
Укажите, что фильтр использует пин-ориентированную обработку , предоставив эту функцию диспетчеризации. Мини-driver устанавливает флаги закрепления в соответствующей KSPIN_DESCRIPTOR_EX структуре, которая определяет, когда AVStream вызывает AVStrMiniPinProcess. Если мини-диск не устанавливает флаги в дескрипторе, поведение по умолчанию заключается в том, что AVStream вызывает AVStrMiniPinProcess , когда новые данные поступают в ранее пустую очередь. Дополнительные сведения об обработке триггеров см. в разделе обработка Pin-Centric.
После обработки мини-диск может предотвратить заполнение кадра путем клонирования указателя потока переднего края. Для этого вызовите KsStreamPointerClone. См. раздел Указатели Stream переднего и конечного краев.
Кроме того, можно указать отдельный конечный край, задав KSPIN_FLAG_DISTINCT_TRAILING_EDGE на KSPIN_DESCRIPTOR_EX. Третий вариант — не продвигать указатель потока переднего края.
Отправка процесса выполняется либо по умолчанию IRQL = PASSIVE_LEVEL, либо, возможно, в DISPATCH_LEVEL, если мини-накопитель указал KSPIN_FLAG_DISPATCH_LEVEL_PROCESSING в соответствующем KSPIN_DESCRIPTOR_EX.
Эта подпрограмма является необязательной.
Сведения об AVStrMiniPinConnect
Мини-driver указывает адрес этой подпрограммы в элементе Connect своей структуры KSPIN_DISPATCH .
Верните STATUS_SUCCESS или ошибку, возвращенную при попытке установить внутреннее подключение. Не возвращайте STATUS_PENDING.
Эта подпрограмма является необязательной.
Также см. раздел Закрепления KS.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ks.h (включая Ks.h) |
IRQL | (См. раздел "Примечания") |