KSFILTERFACTORY 结构表示筛选器工厂。
语法
typedef struct _KSFILTERFACTORY {
const KSFILTER_DESCRIPTOR *FilterDescriptor;
KSOBJECT_BAG Bag;
PVOID Context;
} KSFILTERFACTORY, *PKSFILTERFACTORY;
成员
FilterDescriptor
指向描述此工厂创建的筛选器特征的 KSFILTER_DESCRIPTOR 结构的指针。
Bag
此成员指定与此筛选器工厂关联的KSOBJECT_BAG(等效于 PVOID 类型)。 对象包是用于将动态内存与特定 AVStream 对象关联的结构。 筛选器工厂对象包中的任何内容都会在删除筛选器工厂时自动清理。 有关详细信息,请参阅 对象包 的概念部分。
Context
指向客户端可用于将上下文信息与筛选器工厂关联的内存地址的指针。 AVStream 不会以任何方式使用此成员。 请注意,与筛选器工厂关联的任何动态内存都应放置在对象包中,KsAddItemToObjectBag。 上下文 初始化为创建工厂时父 KSDEVICE 的 上下文 成员的值。 请参阅 AVStream 对象层次结构。
言论
筛选器工厂显式表示设备实例化给定类型的筛选器的能力,如筛选器描述符所述。
硬件的驱动程序通常使用此结构来管理作为筛选器类型公开的硬件的特定功能。 软件筛选器通常不需要在此级别管理设备。
筛选器工厂对象以两种方式创建。 可以在 AddDevice 处理期间创建它们,如设备描述符的筛选器描述符列表指示。 客户端还可以在调用 KsCreateFilterFactory时显式创建它们。 客户端可以随时创建筛选器工厂,但在 PnP 启动 IRP 的处理过程中,通常会在评估分配的资源指示设备必须公开哪种类型的筛选器时执行此作。
出于同步的目的,隐式创建的筛选器工厂的生存期定义为从客户端的设备创建调度函数(或将在客户端的设备 PnP 删除调度函数(或将)调用后调用和结束的间隔。 通过调用 KsCreateFilterFactory 显式创建的筛选器工厂的生存期会在该调用返回后立即启动。
另请参阅 对象包。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Microsoft Windows XP 及更高版本的作系统和 Microsoft DirectX 8.0 及更高版本中提供。 |
标头 | ks.h (包括 Ks.h) |