Freigeben über


KsMergeAutomationTables-Funktion (ks.h)

Die KsMergeAutomationTables-Funktion führt zwei Automatisierungstabellen zusammen.

Syntax

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

Parameter

[out] AutomationTableAB

Ein Zeiger auf die Position, an der ein Zeiger auf eine KSAUTOMATION_TABLE abgelegt wird. Diese Struktur ist die resultierende zusammengeführte Automatisierungstabelle.

[in, optional] AutomationTableA

Ein Zeiger auf eine KSAUTOMATION_TABLE Struktur, die die erste der beiden zusammenzuführenden Automatisierungstabellen darstellt. Diese Tabelle ist die dominierende Tabelle in Bezug auf doppelte Einträge. Bei NULL wird AutomationTableB in AutomationTableAB kopiert und optional in bag platziert.

[in, optional] AutomationTableB

Ein Zeiger auf eine KSAUTOMATION_TABLE Struktur, die die zweite der beiden zusammenzuführenden Automatisierungstabellen darstellt. Bei NULL wird AutomationTableA in AutomationTableAB kopiert und optional in bag platziert.

[in, optional] Bag

Die neu erstellte Automatisierungstabelle wird in dieser KSOBJECT_BAG (entspricht dem Typ PVOID) für spätere sauber platziert. Dieser Parameter ist optional.

Rückgabewert

KsMergeAutomationTables gibt STATUS_SUCCESS zurück, wenn die Zusammenführung erfolgreich abgeschlossen wurde. Wenn der Fehler nicht erfolgreich ist, wird ein Fehlercode zurückgegeben. Der häufigste Fehlercode ist STATUS_INSUFFICIENT_RESOURCES, was angibt, dass nicht genügend Systemressourcen vorhanden sind, um die Zusammenführung abzuschließen.

Hinweise

Wenn AutomationTableA und AutomationTableBNULL sind, führt diese Routine keine Aktion aus und gibt STATUS_SUCCESS zurück.

Die Einträge in AutomationTableA haben beim Zusammenführen Priorität. Wenn ein Eintrag sowohl in AutomationTableA als auch in AutomationTableB angezeigt wird, ist der Eintrag in AutomationTableA der Eintrag, der in der zusammengeführten Tabelle platziert wird. Die neu erstellte Automatisierungstabelle wird im angeforderten Objektbehälter platziert, sofern eine bereitgestellt wird.

Wenn sich eine Eingabetabelle zur Aufrufzeit in einem Objektbehälter befindet, entfernt AVStream die Tabelle aus dem Objektbehälter , bevor KsMergeAutomationTables zurückgibt.

Wenn der Bag-Parameter nicht NULL ist, sollte der Minidriver den Mutex übernehmen, der dem Objektbehälter zugeordnet ist, bevor diese Routine aufgerufen wird. Wenn der Beutel einem Stift oder filter zugeordnet ist, muss der Kontrollmutex gehalten werden. Wenn die Tasche einer Filterfabrik oder einem Gerät zugeordnet ist, sollte der Gerätemutex gehalten werden. Weitere Informationen finden Sie unter Mutexes in AVStream.

Weitere Informationen finden Sie unter Objekttaschen und Definieren von Automatisierungstabellen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher DirectX-Versionen.
Zielplattform Universell
Header ks.h (einschließlich Ks.h)
Bibliothek Ks.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag