Função KsPinGetTrailingEdgeStreamPointer (ks.h)
A função KsPinGetTrailingEdgeStreamPointer adquire o ponteiro de fluxo de borda à direita para a fila associada ao pino especificado.
Sintaxe
KSDDKAPI PKSSTREAM_POINTER KsPinGetTrailingEdgeStreamPointer(
[in] PKSPIN Pin,
[in] KSSTREAM_POINTER_STATE State
);
Parâmetros
[in] Pin
Um ponteiro para a estrutura de KSPIN para cuja fila retornará o ponteiro de fluxo de borda à direita.
[in] State
Esse parâmetro especifica o estado no qual adquirir o ponteiro de fluxo de borda à direita. Pode ser um dos seguintes:
KSSTREAM_POINTER_STATE_UNLOCKED
Adquira o ponteiro do fluxo de borda superior, independentemente de fazer referência a um quadro de dados ou não.
Nenhuma tentativa pode ser feita para acessar os dados associados ao ponteiro até que o ponteiro esteja bloqueado. Observe também que os quadros associados a um ponteiro de fluxo desbloqueado podem ser cancelados.
KSSTREAM_POINTER_STATE_LOCKED
Adquira e bloqueie o ponteiro do fluxo de borda superior. Se nenhum quadro de dados estiver associado ao ponteiro de fluxo, retorne NULL. Se um ponteiro denão nulo for retornado, ele será um ponteiro de fluxo bloqueado e terá um quadro de dados associado a ele. Os quadros associados a um ponteiro de fluxo bloqueado não podem ser cancelados.
Valor de retorno
KsPinGetTrailingEdgeStreamPointer retorna um ponteiro para uma estrutura KSSTREAM_POINTER que representa o ponteiro de fluxo de borda à direita ou NULL. Um valor retornado de NULL pode indicar que não há borda à direita para a fila associada ao pino. Nesse caso, o descritor de pino provavelmente não especifica que o pino deve ter uma borda à direita distinta. Como alternativa, NULL pode indicar que não há nenhuma fila associada ao pino. Nesse caso, o pin em questão não usa o mecanismo de transporte padrão. Um valor retornado de NULL também pode indicar que uma tentativa de bloquear a borda à direita falhou. Em outras palavras, não há nenhum quadro de dados atualmente associado à borda superior.
Observações
O ponteiro de fluxo de borda à direita é um ponteiro especial para o fluxo de dados que existe se e somente se o descritor de pino para o pino especificar uma borda à direita distinta. Se esse ponteiro existir, ele apontará para os dados mais antigos da fila, a menos que seja especificamente avançado por um KsStreamPointerAdvancexxx ou uma chamada do KsStreamPointerUnlock. Os dados mais antigos também poderão existir na fila se existirem ponteiros de fluxo clonados para quadros mais antigos do que o apontado pela borda à direita.
Os quadros de dados que residem na janela entre o ponteiro do fluxo de borda superior e o ponteiro de fluxo de borda à direita têm pelo menos uma contagem de referência e, portanto, não sairão da fila e serão concluídos até que saiam da janela como resultado do avanço da borda à direita. Observe que os quadros entre a borda superior e a borda à direita não não bloqueados por padrão e, portanto, podem ser cancelados.
KsPinGetTrailingEdgeStreamPointer é usado principalmente em filtros centrados em pin. Para obter mais informações, consulte Pin-Centric de Processamento e Filter-Centricde Processamento.
KsPinGetTrailingEdgeStreamPointer não funcionará, a menos que o descritor de pino do pino especifique que a fila deve ter uma borda à direita distinta definindo o sinalizador KSPIN_FLAG_DISTINCT_TRAILING_EDGE.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no DirectX 8.0 e versões posteriores do DirectX. |
da Plataforma de Destino | Universal |
cabeçalho | ks.h (incluir Ks.h) |
biblioteca | Ks.lib |
IRQL | <=DISPATCH_LEVEL |
Consulte também
KsPinGetLeadingEdgeStreamPointer