Поделиться через


Функция KsMergeAutomationTables (ks.h)

Функция KsMergeAutomationTables объединяет две таблицы автоматизации.

Синтаксис

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

Параметры

[out] AutomationTableAB

Указатель на расположение, в котором помещается указатель на KSAUTOMATION_TABLE. Эта структура является результирующей объединенной таблицей автоматизации.

[in, optional] AutomationTableA

Указатель на структуру KSAUTOMATION_TABLE, представляющую первую из двух таблиц автоматизации для слияния. Эта таблица является доминирующей таблицей в отношении повторяющихся записей. Если NULL, AutomationTableB копируется в AutomationTableAB и при необходимости помещается в пакет .

[in, optional] AutomationTableB

Указатель на структуру KSAUTOMATION_TABLE, представляющую второй из двух таблиц автоматизации для слияния. Если NULL, AutomationTableA копируется в AutomationTableAB и при необходимости помещается в пакет .

[in, optional] Bag

Созданная таблица автоматизации помещается в эту KSOBJECT_BAG (эквивалентную типу PVOID) для последующей очистки. Этот параметр является необязательным.

Возвращаемое значение

KsMergeAutomationTables возвращает STATUS_SUCCESS, если слияние успешно завершено. Если ошибка не выполнена, возвращается код ошибки. Наиболее частым кодом ошибки является STATUS_INSUFFICIENT_RESOURCES, что указывает на нехватку системных ресурсов для завершения слияния.

Замечания

Если AutomationTableA и AutomationTableBNULL, эта подпрограмма не выполняет никаких действий и возвращает STATUS_SUCCESS.

Записи в AutomationTableA имеют приоритет вслияния. Если в AutomationTableA и AutomationTableBесть запись в AutomationTableA , которая помещается в объединенную таблицу. Только что созданная таблица автоматизации помещается в запрошенный контейнер объектов, если он указан.

Если входная таблица находится в контейнере объектов во время вызова, AVStream удаляет таблицу из контейнера объектов до KsMergeAutomationTables.

Если параметр bag не NULL, мини-driver должен принимать мьютекс, связанный с контейнером объектов перед вызовом этой процедуры. Если сумка связана с закреплением или фильтром, необходимо хранить мьютекс элемента управления. Если контейнер связан с фабрикой фильтров или устройством, необходимо провести мьютекс устройства. Дополнительные сведения см. в Мьютексах в AVStream.

См. также пакеты объектов и определение таблиц автоматизации.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows XP и более поздних операционных системах и версиях DirectX 8.0 и более поздних версий DirectX.
целевая платформа Всеобщий
заголовка ks.h (include Ks.h)
библиотеки Ks.lib
IRQL PASSIVE_LEVEL

См. также

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag