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 中,并选择性地放置在 Bag中。
[in, optional] AutomationTableB
指向表示要合并的两个自动化表的第二个 KSAUTOMATION_TABLE 结构的指针。 如果 NULL,AutomationTableA 将复制到 AutomationTableAB,并选择性地放置在 Bag中。
[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,则微型驱动程序应在调用此例程之前获取与对象包关联的互斥体。 如果包与引脚或筛选器相关联,则必须保留控制互斥体。 如果包与筛选器工厂或设备相关联,则应保留设备互斥体。 有关详细信息,请参阅 AVStream 中的互斥体。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Microsoft Windows XP 及更高版本的作系统以及 DirectX 8.0 及更高版本的 DirectX 版本中提供。 |
目标平台 | 普遍 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |
IRQL | PASSIVE_LEVEL |