Condividi tramite


Funzione KsMergeAutomationTables (ks.h)

La funzione KsMergeAutomationTables unisce due tabelle di automazione.

Sintassi

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

Parametri

[out] AutomationTableAB

Puntatore alla posizione in cui viene depositato un puntatore a un KSAUTOMATION_TABLE . Questa struttura è la tabella di automazione unita risultante.

[in, optional] AutomationTableA

Puntatore a una struttura KSAUTOMATION_TABLE che rappresenta la prima delle due tabelle di automazione da unire. Questa tabella è la tabella dominante rispetto alle voci duplicate. Se NULL, AutomationTableB viene copiato in AutomationTableAB e, facoltativamente, inserito in Bag.

[in, optional] AutomationTableB

Puntatore a una struttura KSAUTOMATION_TABLE che rappresenta il secondo delle due tabelle di automazione da unire. Se NULL, AutomationTableA viene copiato in AutomationTableAB e, facoltativamente, inserito in Bag.

[in, optional] Bag

La tabella di automazione appena creata viene inserita in questa KSOBJECT_BAG (equivalente al tipo PVOID) per la pulizia successiva. Questo parametro è facoltativo e,

Valore restituito

KsMergeAutomationTables restituisce STATUS_SUCCESS se l'unione viene completata correttamente. In caso di esito negativo, restituisce un codice di errore. Il codice di errore più frequente è STATUS_INSUFFICIENT_RESOURCES, che indica che sono presenti risorse di sistema insufficienti per completare l'unione.

Commenti

Se AutomationTableA e AutomationTableB sono NULL, questa routine non esegue alcuna azione e restituisce STATUS_SUCCESS.

Le voci in AutomationTableA hanno priorità nell'unione. Se è presente una voce visualizzata sia in AutomationTableA che in AutomationTableB, la voce in AutomationTableA è quella inserita nella tabella unita. La tabella di automazione appena creata viene inserita nel contenitore di oggetti richiesto, se disponibile.

Se una tabella di input si trova in un contenitore di oggetti in fase di chiamata, AVStream rimuove la tabella dal contenitore di oggetti prima che KsMergeAutomationTables restituisca .

Se il parametro Bag non è NULL, il minidriver deve accettare il mutex associato al contenitore di oggetti prima di chiamare questa routine. Se il contenitore è associato a un pin o a un filtro, il mutex del controllo deve essere mantenuto. Se il contenitore è associato a una factory di filtro o a un dispositivo, il mutex del dispositivo deve essere mantenuto. Per altre informazioni, vedere Mutexes in AVStream.

Vedere anche Contenitori di oggetti e Definizione di tabelle di automazione.

Requisiti

Requisito Valore
Client minimo supportato Disponibile nei sistemi operativi Microsoft Windows XP e versioni successive e DirectX 8.0 e versioni successive di DirectX.
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)
Libreria Ks.lib
IRQL PASSIVE_LEVEL

Vedi anche

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag