Функция KsFilterAttemptProcessing (ks.h)
Функция KsFilterAttemptProcessing пытается инициировать обработку фильтра.
Синтаксис
void KsFilterAttemptProcessing(
[in] PKSFILTER Filter,
[in] BOOLEAN Asynchronous
);
Параметры
[in] Filter
Указатель на структуру KSFILTER, представляющую объект фильтра AVStream, на котором выполняется попытка обработки.
[in] Asynchronous
Этот параметр содержит указание на то, должен ли диспетчер обработки выполняться асинхронно или нет (должно ли происходить). Асинхронная диспетчеризация гарантируется, если это TRUE; однако диспетчеры синхронной обработки управляются условиями, описанными ниже.
Возвращаемое значение
Никакой
Замечания
Если мини-driver вызывает KsFilterAttemptProcessing при выполнении всех условий, необходимых для обработки данных, происходит отправка обработки. Дополнительные сведения о обратном вызове процесса см. в KSFILTER_DISPATCH. Чтобы попытка привести к фактической отправке, шлюз управления процессами фильтра должен находиться в открытом состоянии. В отличие от обработки, ориентированной на закрепление, обработка с фильтрацией имеет множество условий, влияющих на шлюз управления процессом. Дополнительные сведения об этих требованиях см. в Filter-Centric обработке и Pin-Centric обработке.
Если шлюз управления процессом открыт, диспетчер обработки происходит синхронно или асинхронно. Если вызывающий объект задает TRUE в параметре асинхронной, то диспетчеризация обработки всегда выполняется асинхронно в рабочем элементе. Однако если вызывающий объект запрашивает синхронную обработку, диспетчер выполняется синхронно только в том случае, если система находится в IRQL, с которой мини-driver может обрабатывать обработку. Если система находится на PASSIVE_LEVEL, то диспетчер гарантированно будет синхронно. И наоборот, если система находится на DISPATCH_LEVEL, диспетчер выполняется синхронно, только если KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING указан в фильтре. В противном случае рабочий элемент помещается в очередь для выполнения обработки.
Обратите внимание, что это только попытка обработки; вызов этой функции не гарантирует, что обработка начнется. Обработка происходит только в том случае, если шлюз управления процессом открыт. Дополнительные сведения см. в разделе перезапуска обработки в AVStream и шлюзах управления потоками в AVStream.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Microsoft Windows XP и более поздних операционных системах и версиях DirectX 8.0 и более поздних версий DirectX. |
целевая платформа | Всеобщий |
заголовка | ks.h (include Ks.h) |
библиотеки | Ks.lib |
IRQL | <=DISPATCH_LEVEL |