KS 分配器

分配器是一个 KS 对象,用于为 I/O 请求实例化名为的数据缓冲区。 帧是连续内存的一个区块,其大小是通过KSPIN_DESCRIPTOR_EXAllocatorFraming成员由供应商指定的。

微型驱动程序可以支持多个缓冲区类型的分配器,例如视频卡中的板载 RAM。 但是,大多数微型驱动程序使用 默认分配器 来分配系统内存。 微型驱动程序可以指定帧大小、最大帧数和对齐要求。 默认分配器负责满足要求,并且可以通过重用丢弃的帧来优化性能。

微型驱动程序通过调用 KsCreateAllocator 例程或相关函数来创建分配器。 在此调用中,微型驱动程序将指针传递给 KSALLOCATOR_FRAMING 结构。 此结构包含描述所请求分配器的参数。

在流类模型中,创建分配器的微型驱动程序支持 KSPROPERTY_CONNECTION_ALLOCATORFRAMING 属性。 这是一个只读请求,用于返回一个指向指定汇点句柄相关KSALLOCATOR_FRAMING结构的指针。

提供分配器的微型驱动程序还应支持 KSPROPERTY_STREAM_ALLOCATOR 属性。 此属性提供对当前分配给流连接点的分配器的句柄的读/写访问权限。

在 AVStream 中运行的微型驱动程序可能包括一些引脚,这些引脚实现了自己的分配器。 为此,请设置KSPIN_DISPATCH结构的KSALLOCATOR_DISPATCH成员。 如果不需要为该引脚指定分配器,请为该成员指定NULL

此外,AVStream 微型驱动程序使用 KSALLOCATOR_FRAMING_EX 结构来指定分配器要求。 然后,客户端使用 KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX 属性检索引脚的框架要求。 有关详细信息 ,请参阅 AVStream 分配器

本部分包含以下附加信息:

默认分配器

筛选特定分配器

分配方案