Función KsMergeAutomationTables (ks.h)

La función KsMergeAutomationTables combina dos tablas de automatización.

Sintaxis

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

Parámetros

[out] AutomationTableAB

Puntero a la ubicación en la que se deposita un puntero a un KSAUTOMATION_TABLE . Esta estructura es la tabla de automatización combinada resultante.

[in, optional] AutomationTableA

Puntero a una estructura de KSAUTOMATION_TABLE que representa el primero de las dos tablas de automatización que se van a combinar. Esta tabla es la tabla dominante con respecto a las entradas duplicadas. Si es NULL, AutomationTableB se copia en AutomationTableAB y, opcionalmente, se coloca en bag.

[in, optional] AutomationTableB

Puntero a una estructura de KSAUTOMATION_TABLE que representa el segundo de las dos tablas de automatización que se van a combinar. Si es NULL, AutomationTableA se copia en AutomationTableAB y, opcionalmente, se coloca en bag.

[in, optional] Bag

La tabla de automatización recién creada se coloca en este KSOBJECT_BAG (equivalente al tipo PVOID) para la limpieza posterior. Este parámetro es opcional.

Valor devuelto

KsMergeAutomationTables devuelve STATUS_SUCCESS si la combinación se completa correctamente. Si no se realiza correctamente, devuelve un código de error. El código de error más frecuente es STATUS_INSUFFICIENT_RESOURCES, lo que indica que no hay recursos del sistema suficientes para completar la combinación.

Comentarios

Si AutomationTableA y AutomationTableB son NULL, esta rutina no realiza ninguna acción y devuelve STATUS_SUCCESS.

Las entradas de AutomationTableA tienen prioridad en la combinación. Si hay una entrada que aparece en AutomationTableA y AutomationTableB, la entrada de AutomationTableA es la que se coloca en la tabla combinada. La tabla de automatización recién creada se coloca en el contenedor de objetos solicitado si se proporciona uno.

Si una tabla de entrada está en un contenedor de objetos en el momento de la llamada, AVStream quita la tabla del contenedor de objetos antes de que KsMergeAutomationTables devuelva.

Si el parámetro Bag no es NULL, el minidriver debe tomar la exclusión mutua asociada al contenedor de objetos antes de llamar a esta rutina. Si la bolsa está asociada a un pin o un filtro, se debe mantener la exclusión mutua del control. Si la bolsa está asociada a un generador de filtros o a un dispositivo, se debe mantener la exclusión mutua del dispositivo. Para obtener más información, vea Exclusión mutua en AVStream.

Consulte también Contenedores de objetos y Definición de tablas de automatización.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Universal
Encabezado ks.h (incluya Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL

Consulte también

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag