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 ersten der beiden Automatisierungstabellen darstellt, die zusammengeführt werden sollen. Diese Tabelle ist die dominante Tabelle in Bezug auf doppelte Einträge. Wenn NULL-, wird AutomationTableB- in AutomationTableAB kopiert und optional in Bagplatziert.

[in, optional] AutomationTableB

Ein Zeiger auf eine KSAUTOMATION_TABLE Struktur, die die zweite der beiden zu verbindenden Automatisierungstabellen darstellt. Wenn NULL-, wird AutomationTableA- in AutomationTableAB kopiert und optional in Bagplatziert.

[in, optional] Bag

Die neu erstellte Automatisierungstabelle wird in diesem KSOBJECT_BAG (entspricht dem Typ PVOID) zur späteren Bereinigung platziert. Dieser Parameter ist optional.

Rückgabewert

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

Bemerkungen

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

Die Einträge in AutomationTableA- haben Vorrang im Seriendruck-. Wenn es einen Eintrag gibt, der in AutomationTableA und AutomationTableB-angezeigt wird, ist der Eintrag in AutomationTableA- der Eintrag, der in der zusammengeführten Tabelle platziert wird. Die neu erstellte Automatisierungstabelle wird in der angeforderten Objektsammlung platziert, wenn 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 parameter Bag nicht NULL-ist, sollte der Minidriver den dem Objektbehälter zugeordneten Mutex vor dem Aufrufen dieser Routine übernehmen. Wenn der Beutel einem Pin oder einem Filter zugeordnet ist, muss der Steuermutex gehalten werden. Wenn der Beutel einer Filterfabrik oder einem Gerät zugeordnet ist, sollte der Gerätemutex gehalten werden. Weitere Informationen finden Sie unter Mutexes in AVStream.

Siehe auch Objektbehälter und Definieren von Automatisierungstabellen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher directX-Versionen.
Zielplattform- Universal
Header- ks.h (enthalten Ks.h)
Library Ks.lib
IRQL- PASSIVE_LEVEL

Siehe auch

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag