Функция 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 (см. примечания) |