Partager via


KsMergeAutomationTables, fonction (ks.h)

La fonction KsMergeAutomationTables fusionne deux tables Automation.

Syntaxe

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

Paramètres

[out] AutomationTableAB

Pointeur vers l’emplacement où un pointeur vers un KSAUTOMATION_TABLE est déposé. Cette structure est la table Automation fusionnée résultante.

[in, optional] AutomationTableA

Pointeur vers une structure KSAUTOMATION_TABLE représentant la première des deux tables Automation à fusionner. Cette table est la table dominante en ce qui concerne les entrées en double. Si la valeur est NULL, AutomationTableB est copiée dans AutomationTableAB et éventuellement placée dans bag.

[in, optional] AutomationTableB

Pointeur vers une structure KSAUTOMATION_TABLE représentant la deuxième des deux tables Automation à fusionner. Si la valeur est NULL, AutomationTableA est copiée dans AutomationTableAB et éventuellement placée dans Bag.

[in, optional] Bag

La table Automation nouvellement créée est placée dans cette KSOBJECT_BAG (équivalent au type PVOID) pour propre ultérieurement. Ce paramètre est facultatif.

Valeur renvoyée

KsMergeAutomationTables retourne STATUS_SUCCESS si la fusion se termine correctement. En cas d’échec, il retourne un code d’erreur. Le code d’erreur le plus fréquent est STATUS_INSUFFICIENT_RESOURCES, ce qui indique que les ressources système sont insuffisantes pour terminer la fusion.

Remarques

Si AutomationTableA et AutomationTableB ont la valeur NULL, cette routine n’effectue aucune action et retourne STATUS_SUCCESS.

Les entrées dans AutomationTableA ont priorité dans la fusion. S’il existe une entrée qui apparaît à la fois dans AutomationTableA et AutomationTableB, l’entrée dans AutomationTableA est celle qui est placée dans la table fusionnée. La table Automation nouvellement créée est placée dans le sac d’objets demandé, le cas échéant.

Si une table d’entrée se trouve dans un conteneur d’objets au moment de l’appel, AVStream supprime la table du sac d’objets avant queKsMergeAutomationTables ne retourne.

Si le paramètre Bag n’a pas la valeur NULL, le minidriver doit prendre le mutex associé au sac d’objets avant d’appeler cette routine. Si le sac est associé à une broche ou à un filtre, le mutex de contrôle doit être conservé. Si le sac est associé à une fabrique de filtre ou à un appareil, le mutex de l’appareil doit être conservé. Pour plus d’informations, consultez Mutexes dans AVStream.

Consultez également Sacs d’objets et définition de tables Automation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et DirectX 8.0 et versions ultérieures de DirectX.
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib
IRQL PASSIVE_LEVEL

Voir aussi

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag