Поделиться через


Структура KSFILTERFACTORY (ks.h)

Структура 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. Контекст инициализируется значением элемента Context родительского KSDEVICE во время создания фабрики. См . раздел Иерархия объектов AVStream.

Комментарии

Фабрика фильтров явно представляет возможность устройства создавать экземпляры фильтра заданного типа, как описано дескриптором фильтра.

Драйверы оборудования обычно используют эту структуру для управления определенной функцией оборудования, которая предоставляется в качестве типа фильтра. Фильтрам программного обеспечения обычно не требуется управлять устройством на этом уровне.

Объекты фабрики фильтров создаются двумя способами. Их можно создать во время обработки AddDevice, как указано в списке дескрипторов фильтра дескриптора устройства. Они также могут быть созданы явным образом клиентом при вызове KsCreateFilterFactory. Клиент может создавать фабрики фильтров в любое время, но обычно это делается во время обработки IRP запуска PnP, когда оценка назначенных ресурсов указывает, какие типы фильтров должны быть предоставлены устройством.

Для целей синхронизации время существования фабрик фильтров, созданных неявно, определяется как интервал, начинающийся при вызове (или бы) функции диспетчеризации создания устройства клиента, и заканчивается после того, как функция удаления PnP устройства клиента вызывается (или будет вызываться). Время существования фабрик фильтров, созданных явным образом путем вызова KsCreateFilterFactory , начинается сразу после этого вызова.

См. также раздел Контейнеры объектов.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также в Microsoft DirectX 8.0 и более поздних версиях.
Верхняя часть ks.h (включая Ks.h)

См. также раздел

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory