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


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

Замечания

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

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

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

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

См. также пакеты объектов.

Требования

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

См. также

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory