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


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

Функция KsFilterAttemptProcessing пытается инициировать обработку фильтра.

Синтаксис

void KsFilterAttemptProcessing(
  [in] PKSFILTER Filter,
  [in] BOOLEAN   Asynchronous
);

Параметры

[in] Filter

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

[in] Asynchronous

Этот параметр содержит указание на то, должна ли обработка выполняться асинхронно (если она возникает). Асинхронная диспетчеризация гарантируется, если задано значение TRUE; однако для синхронной обработки применяются описанные ниже условия.

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

None

Remarks

Если мини-диск вызывает KsFilterAttemptProcessing при выполнении всех условий, необходимых для обработки данных, происходит диспетчеризация обработки. Дополнительные сведения о обратном вызове процесса см. в разделе KSFILTER_DISPATCH. Чтобы попытка привела к фактической отправке, шлюз управления процессом фильтра должен находиться в открытом состоянии. В отличие от обработки, ориентированной на закрепление, фильтрация имеет множество условий, влияющих на шлюз управления процессом. Дополнительные сведения об этих требованиях см. в разделах Обработка, ориентированная на фильтрацию и Обработка, ориентированная на закрепление.

Если шлюз управления процессом открыт, диспетчеризация обработки выполняется синхронно или асинхронно. Если вызывающий объект указывает ЗНАЧЕНИЕ TRUE в параметре Асинхронно , обработка диспетчеризации всегда выполняется асинхронно в рабочем элементе. Однако если вызывающий объект запрашивает отправку синхронной обработки, отправка выполняется синхронно только в том случае, если система в настоящее время находится на irQL, на котором мини-диск может обрабатывать обработку. Если система находится на PASSIVE_LEVEL, отправка гарантированно будет выполняться синхронно. И наоборот, если система находится на DISPATCH_LEVEL, диспетчеризация выполняется синхронно, только если в фильтре указано KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING. В противном случае рабочий элемент помещается в очередь для выполнения обработки.

Обратите внимание, что это только попытка обработки; Вызов этой функции не гарантирует, что начнется обработка. Обработка происходит только в том случае, если шлюз управления процессом "открыт". Дополнительные сведения см. в разделах Перезапуск обработки в AVStream и Шлюзы управления потоком в AVStream.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версий.
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL <=DISPATCH_LEVEL

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

KSFILTER_DISPATCH

KSGATE

KsGateCaptureThreshold

KsPinAttemptProcessing