Распределители KS
Распределитель — это объект KS, который создает экземпляры буферов данных, называемых кадрами для запросов ввода-вывода. Кадр — это блок непрерывной памяти, размер которого определяется поставщиком через элемент AllocatorFramingKSPIN_DESCRIPTOR_EX.
Мини-накопители могут поддерживать распределители для нескольких типов буферов, например встроенную ОЗУ в видео карта. Однако большинство мини-накопителей используют распределитель по умолчанию для выделения системной памяти. Мини-накопители могут указывать размер кадра, максимальное количество кадров и требования к выравниванию. Распределитель по умолчанию отвечает требованиям и может оптимизировать производительность за счет повторного использования отброшенных кадров.
Мини-диск создает распределитель, вызывая подпрограмму KsCreateAllocator или связанные функции. В этом вызове мини-диск передает указатель на структуру KSALLOCATOR_FRAMING . Эта структура содержит параметры, описывающие запрошенный распределитель.
В модели класса потока мини-драйверы, создающие распределители, поддерживают свойство KSPROPERTY_CONNECTION_ALLOCATORFRAMING . Это запрос только для чтения, который возвращает указатель на соответствующую структуру KSALLOCATOR_FRAMING для указанного дескриптора приемника.
Мини-драйверы, предоставляющие распределители, также должны поддерживать свойство KSPROPERTY_STREAM_ALLOCATOR . Это свойство предоставляет доступ на чтение и запись к дескриптору распределителя, назначенного в данный момент точке подключения потока.
Мини-накопители, работающие в AVStream, могут включать контакты, реализующие собственные распределители. Для этого задав элемент KSALLOCATOR_DISPATCH структуры KSPIN_DISPATCH . Укажите значение NULL для этого элемента, если вы не хотите указывать распределитель для этого контакта.
Кроме того, мини-драйверы AVStream используют структуру KSALLOCATOR_FRAMING_EX для указания требований к распределителю. Затем клиенты используют свойство KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX для получения требований к обрамлениям для контакта. Дополнительные сведения см. в разделе Распределители AVStream .
В этом разделе содержатся следующие дополнительные сведения: