Função KsPinAttemptProcessing (ks.h)
A função KsPinAttemptProcessing é usada para retomar o processamento em um pin específico em um filtro centrado em pin. Ele tenta iniciar o processamento no Pin enviando uma chamada de expedição de processamento para fixar o objeto de processamento do.
Sintaxe
void KsPinAttemptProcessing(
[in] PKSPIN Pin,
[in] BOOLEAN Asynchronous
);
Parâmetros
[in] Pin
Um ponteiro para uma estrutura de KSPIN que representa o objeto de pino AVStream no qual tentar o processamento.
Aviso
Esse parâmetro é obrigatório. Se você chamar KsPinAttemptProcessing com um Fixar valor de NULL, a instabilidade do sistema poderá resultar.
[in] Asynchronous
Esse parâmetro indica a preferência do minidriver se o processamento deve ocorrer de forma síncrona ou assíncrona. Se VERDADEIRO, o processamento será sempre assíncrono. No entanto, o processamento síncrono só acontece em determinadas circunstâncias. Para obter mais informações, consulte a seção Comentários abaixo.
Valor de retorno
Nenhum
Observações
Um minidriver pode precisar chamar KsPinAttemptProcessing para retomar o processamento em várias situações. Por exemplo, se o cliente tiver desligado a porta de controle de processamento com KsGateTurnInputOff, chame essa função quando estiver pronto para tentar o processamento. Observe que isso só causará uma expedição de processamento se a porta de controle do processo estiver no estado aberto. Outra situação envolve o minidriver ter retornado anteriormente STATUS_PENDING para uma expedição de processamento. Para obter mais detalhes, consulte Reiniciar o processamento no AVStream e portões de controle de fluxo no AVStream.
A expedição de processamento ocorre de forma síncrona ou assíncrona e somente se a porta de controle de processamento estiver aberta. O sinalizador de assíncrono especifica a preferência do minidriver. Se o minidriver solicitar uma expedição de processo assíncrono, a expedição será sempre assíncrona. No entanto, mesmo que o chamador defina assíncrono para FALSE, uma expedição síncrona ocorrerá apenas se o sistema estiver em execução em um IRQL menor que o IRQL de processamento máximo. Em outras palavras, se o minidriver não especificar o processamento de nível de expedição e a chamada for feita em IRQL = DISPATCH_LEVEL, a chamada ocorrerá em um item de trabalho assíncrono em PASSIVE_LEVEL independentemente do valor de assíncrono. Para obter mais informações, consulte Filter-Centric de Processamento e Pin-Centricde Processamento.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Universal |
cabeçalho | ks.h (incluir Ks.h) |
biblioteca | Ks.lib |
IRQL | <=DISPATCH_LEVEL (Consulte comentários) |