Compartilhar via


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 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. Um dos seguintes pode ser feito:

KSSTREAM_POINTER_STATE_UNLOCKED

Adquira o ponteiro do fluxo de borda à esquerda, 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 seja 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 à esquerda. Se nenhum quadro de dados estiver associado ao ponteiro de fluxo, retorne NULL. Se um ponteiro nãonulo for retornado, ele será um ponteiro de fluxo bloqueado e terá um quadro de dados associado a ele. Quadros associados a um ponteiro de fluxo bloqueado não podem ser cancelados.

Retornar valor

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 pino 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.

Comentários

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 uma chamada KsStreamPointerAdvanceXxx ou KsStreamPointerUnlock . Os dados mais antigos também poderão existir na fila se existirem ponteiros de fluxo clonados para quadros mais antigos do que aquele apontado pela borda à direita.

Os quadros de dados que residem na janela entre o ponteiro do fluxo de borda à esquerda 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 são bloqueados por padrão e, portanto, podem ser cancelados.

KsPinGetTrailingEdgeStreamPointer é usado principalmente em filtros centrados em pinos. Para obter mais informações, consulte Processamento centrado em pin e processamento centrado em filtro.

KsPinGetTrailingEdgeStreamPointer não funcionará a menos que o descritor de pino para o pino especifique que a fila deve ter uma borda à direita distinta definindo o sinalizador KSPIN_FLAG_DISTINCT_TRAILING_EDGE.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no DirectX 8.0 e versões posteriores do DirectX.
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib
IRQL <=DISPATCH_LEVEL

Confira também

KsPinGetLeadingEdgeStreamPointer

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerClone

KsStreamPointerDelete

KsStreamPointerLock

KsStreamPointerUnlock