AVStream对象体系:
以下是AVStream设备的体系结构。
AVStream描述符:
AVStream mini驱动的描述符信息和filter类型,要通过调用嵌套的描述符数据结构接口KsInitializeDriver提供。每个关键的mini驱动组件,包含了设备,filter factory和pin factory及相关的描述符信息。就像在AVStream对象体系图中看到的,AVStream mini驱动最高级的描述符是设备描述符KSDEVICE_DESCRIPTOR.。
在设备描述符中,FilterDescriptors 成员变量指向一个KSFILTER_DESCRIPTOR结构体数组,KSFILTER_DESCRIPTOR用来描述可创建设备的filters类型。AVStream客户端可以调用KsCreateFilterFactory 来动态添加filter factory。KSFILTER_DESCRIPTOR用来指出filter支持多少pin类型,filter节点下面KS目录的注册量以及filter的拓扑结构。
每个filter描述符内部,mini驱动提供了一个指向KSPIN_DESCRIPTOR_EX结构数组的指针。每个pin描述符提供了filter可以实例化的pin类型。可以通过调用KsFilterCreatePinFactory创建额外的pin factory。
通常地,AVStream mini驱动代码有相应的静态描述符表,并且调用KsInitializeDriver 完成初始化工作。更多关于初始化驱动的细节,可以参考Initializing an AVStream Minidriver.
此外有其他类型的描述符存在,比如节点描述符KSNODE_DESCRIPTOR,用来描述给定的托普节点。
Dispatch表广泛用于上述三种主要描述符类型中。可以参考AVStream Dispatch Tables.