Compartilhar via


Função KsMergeAutomationTables (ks.h)

A função KsMergeAutomationTables mescla duas tabelas de automação.

Sintaxe

KSDDKAPI NTSTATUS KsMergeAutomationTables(
  [out]          PKSAUTOMATION_TABLE *AutomationTableAB,
  [in, optional] PKSAUTOMATION_TABLE AutomationTableA,
  [in, optional] PKSAUTOMATION_TABLE AutomationTableB,
  [in, optional] KSOBJECT_BAG        Bag
);

Parâmetros

[out] AutomationTableAB

Um ponteiro para o local em que um ponteiro para um KSAUTOMATION_TABLE é depositado. Essa estrutura é a tabela de automação mesclada resultante.

[in, optional] AutomationTableA

Um ponteiro para uma estrutura KSAUTOMATION_TABLE que representa a primeira das duas tabelas de automação a serem mescladas. Esta tabela é a tabela dominante em relação a entradas duplicadas. Se NULL, AutomationTableB será copiado para AutomationTableAB e, opcionalmente, colocado em Bag.

[in, optional] AutomationTableB

Um ponteiro para uma estrutura KSAUTOMATION_TABLE que representa a segunda das duas tabelas de automação a serem mescladas. Se NULL, AutomationTableA será copiado para AutomationTableAB e, opcionalmente, colocado em Bag.

[in, optional] Bag

A tabela de automação recém-criada é colocada neste KSOBJECT_BAG (equivalente ao tipo PVOID) para limpo posteriores. Esse parâmetro é opcional.

Retornar valor

KsMergeAutomationTables retornará STATUS_SUCCESS se a mesclagem for concluída com êxito. Se não tiver êxito, ele retornará um código de erro. O código de erro mais frequente é STATUS_INSUFFICIENT_RESOURCES, o que indica que não há recursos suficientes do sistema para concluir a mesclagem.

Comentários

Se AutomationTableA e AutomationTableB forem NULL, essa rotina não executará nenhuma ação e retornará STATUS_SUCCESS.

As entradas em AutomationTableA têm prioridade na mesclagem. Se houver uma entrada que apareça em AutomationTableA e AutomationTableB, a entrada em AutomationTableA será a que é colocada na tabela mesclada. A tabela de automação recém-criada será colocada no recipiente de objetos solicitado se um for fornecido.

Se uma tabela de entrada estiver em um recipiente de objetos no momento da chamada, o AVStream removerá a tabela do recipiente de objetos antes que KsMergeAutomationTables retorne.

Se o parâmetro Bag não for NULL, o minidriver deverá usar o mutex associado ao recipiente de objetos antes de chamar essa rotina. Se o recipiente estiver associado a um pino ou um filtro, o mutex de controle deverá ser mantido. Se o recipiente estiver associado a uma fábrica de filtros ou um dispositivo, o mutex do dispositivo deverá ser mantido. Para obter mais informações, confira Mutexes no AVStream.

Consulte também Sacos de Objetos e Definindo Tabelas de Automação.

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 PASSIVE_LEVEL

Confira também

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag