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 中的 Mutexes。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Microsoft Windows XP 及更高版本的操作系统以及 DirectX 8.0 及更高版本的 DirectX 中可用。 |
目标平台 | 通用 |
标头 | ks.h (包括 Ks.h) |
Library | Ks.lib |
IRQL | PASSIVE_LEVEL |