Функция 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 |