Função KsStreamPointerClone (ks.h)

A função KsStreamPointerClone cria um clone de um determinado ponteiro de fluxo.

Sintaxe

KSDDKAPI NTSTATUS KsStreamPointerClone(
  [in]           PKSSTREAM_POINTER  StreamPointer,
  [in, optional] PFNKSSTREAMPOINTER CancelCallback,
  [in]           ULONG              ContextSize,
  [out]          PKSSTREAM_POINTER  *CloneStreamPointer
);

Parâmetros

[in] StreamPointer

Um ponteiro para uma estrutura KSSTREAM_POINTER que representa o ponteiro de fluxo que deve ser clonado.

[in, optional] CancelCallback

Opcional. Um ponteiro para uma rotina AVStrMiniCancelCallback fornecida por minidriver. O AVStream chamará essa rotina se o IRP associado ao CloneStreamPointer for cancelado.

[in] ContextSize

Esse parâmetro indica quantos bytes de informações de contexto do minidriver o ponteiro de fluxo de clone resultante deve ter. Se diferente de zero, o número solicitado de bytes será alocado imediatamente após o ponteiro de fluxo retornado e o campo Contexto de CloneStreamPointer apontará para a memória alocada.

[out] CloneStreamPointer

Um ponteiro para um ponteiro para uma estrutura KSSTREAM_POINTER . Após a conclusão bem-sucedida da operação de clonagem, CloneStreamPointer contém um ponteiro para o endereço do ponteiro de fluxo clonado.

Retornar valor

KsStreamPointerClone retorna STATUS_SUCCESS, indicando que a operação de clonagem foi concluída normalmente ou um código de erro apropriado.

Comentários

O clone resultante inicialmente refere-se ao mesmo quadro de dados que o ponteiro de fluxo original e está no mesmo estado (bloqueado ou desbloqueado). Adicionar um ponteiro de fluxo de clone referenciando um quadro de dados incrementa a contagem de referência nesse quadro específico. Observe que o quadro em questão e, portanto, o IRP ao qual o quadro pertence, não é concluído até que a contagem de referência cai para zero.

Você pode usar o parâmetro ContextSize dessa chamada para minimizar as chamadas de alocação.

Consulte também Stream Ponteiros.

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

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsets

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerDelete

KsStreamPointerLock

KsStreamPointerUnlock