Поделиться через


Функция KsPinAttemptProcessing (ks.h)

Функция KsPinAttemptProcessing используется для возобновления обработки определенного контакта в фильтре, ориентированном на закрепление. Он пытается инициировать обработку пин-кода , отправляя вызов диспетчеризации обработки к объекту обработки Pin.

Синтаксис

void KsPinAttemptProcessing(
  [in] PKSPIN  Pin,
  [in] BOOLEAN Asynchronous
);

Параметры

[in] Pin

Указатель на структуру KSPIN , представляющую закрепленный объект AVStream, для которого требуется выполнить обработку.

Предупреждение

Этот параметр является обязательным. Если вы вызываете KsPinAttemptProcessing со значением PinNULL, это может привести к нестабильной работе системы.

[in] Asynchronous

Этот параметр указывает предпочтение мини-драйвера: должна ли обработка выполняться синхронно или асинхронно. Если задано значение TRUE, обработка всегда является асинхронной. Однако синхронная обработка происходит только при определенных обстоятельствах. Дополнительные сведения см. в разделе Примечания ниже.

Возвращаемое значение

None

Remarks

Для возобновления обработки в различных ситуациях может потребоваться вызвать KsPinAttemptProcessing. Например, если клиент отключил шлюз управления обработкой с помощью KsGateTurnInputOff, вызовите эту функцию, когда будете готовы к попытке обработки. Обратите внимание, что это приводит к отправке обработки только в том случае, если шлюз управления процессом находится в открытом состоянии. Другая ситуация связана с тем, что мини-диск ранее возвращал STATUS_PENDING в диспетчер обработки. Дополнительные сведения см. в разделах Перезапуск обработки в AVStream и Шлюзы управления потоком в AVStream.

Диспетчеризация обработки выполняется синхронно или асинхронно и только в том случае, если шлюз управления обработкой открыт. Флаг Асинхронный указывает предпочтение мини-драйвера. Если мини-driver запрашивает асинхронную отправку процесса, она всегда является асинхронной. Однако даже если вызывающий объект задает значение Асинхронное значение FALSE, синхронная диспетчеризация происходит только в том случае, если система в настоящее время работает на IRQL меньше максимального значения обработки IRQL. Иными словами, если мини-диск не указывает обработку на уровне диспетчеризации и вызов выполняется в IRQL = DISPATCH_LEVEL, то вызов выполняется в асинхронном рабочем элементе на PASSIVE_LEVEL независимо от значения Асинхронный. Дополнительные сведения см. в разделах Фильтрация обработки и Обработка, ориентированная на пин-код.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL <=DISPATCH_LEVEL (см. примечания)

См. также раздел

KSFILTER_DISPATCH

KsFilterAttemptProcessing

KsGateCaptureThreshold