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