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 分配器

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

默认分配器

特定于筛选器的分配器

分配方案