Функция 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 , и AutomationTableB имеют значение NULL, эта подпрограмма не выполняет никаких действий и возвращает STATUS_SUCCESS.
Записи в AutomationTableA имеют приоритет в слиянии. Если в AutomationTableA и AutomationTableB есть запись, то в AutomationTableA будет помещена запись в объединенную таблицу. Только что созданная таблица автоматизации помещается в запрошенный контейнер объектов, если она указана.
Если входная таблица находится в контейнере объектов во время вызова, AVStream удаляет таблицу из контейнера объектов до возврата KsMergeAutomationTables .
Если параметр Bag не имеет значение NULL, перед вызовом этой процедуры мини-driver должен принять мьютекс, связанный с контейнером объектов. Если контейнер связан с булавкой или фильтром, необходимо удерживать мьютекс элемента управления. Если контейнер связан с фабрикой фильтров или устройством, то мьютекс устройства должен быть удержан. Дополнительные сведения см. в разделе Мьютексы в AVStream.
Также см . статьи Контейнеры объектов и Определение таблиц автоматизации.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версиях. |
Целевая платформа | Универсальное |
Верхняя часть | ks.h (включая Ks.h) |
Библиотека | Ks.lib |
IRQL | PASSIVE_LEVEL |