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 |