Compartilhar via


Estrutura KSFILTERFACTORY (ks.h)

A estrutura KSFILTERFACTORY representa uma fábrica de filtros.

Sintaxe

typedef struct _KSFILTERFACTORY {
  const KSFILTER_DESCRIPTOR *FilterDescriptor;
  KSOBJECT_BAG              Bag;
  PVOID                     Context;
} KSFILTERFACTORY, *PKSFILTERFACTORY;

Membros

FilterDescriptor

Um ponteiro para uma estrutura KSFILTER_DESCRIPTOR que descreve as características dos filtros criados por essa fábrica.

Bag

Esse membro especifica o KSOBJECT_BAG (equivalente ao tipo PVOID) associado a essa fábrica de filtros. Os sacos de objeto são estruturas usadas para associar memória dinâmica a um objeto AVStream específico. Qualquer coisa no recipiente de objetos da fábrica de filtros é limpa automaticamente quando a fábrica de filtros é excluída. Consulte a seção conceitual sobre de Sacos de Objeto para obter mais informações.

Context

Um ponteiro para um endereço de memória que o cliente pode usar para associar informações de contexto à fábrica de filtros. O AVStream não usa esse membro de forma alguma. Observe que qualquer memória dinâmica associada à fábrica de filtros deve ser colocada no recipiente de objetos com KsAddItemToObjectBag. de Contexto é inicializado para o valor do de contexto membro do KSDEVICE pai no momento em que a fábrica é criada. Consulte da hierarquia de objetos do AVStream.

Observações

Uma fábrica de filtros representa explicitamente a capacidade de um dispositivo de instanciar um determinado tipo de filtro, conforme descrito por um descritor de filtro.

Os drivers de hardware normalmente usam essa estrutura para gerenciar uma função específica do hardware que é exposta como um tipo de filtro. Os filtros de software geralmente não precisam gerenciar o dispositivo nesse nível.

Os objetos de fábrica de filtro são criados de duas maneiras. Eles podem ser criados durante o processamento do AddDevice, conforme indicado pela lista de descritores de filtro do descritor do dispositivo. Eles também podem ser criados explicitamente pelo cliente em uma chamada para KsCreateFilterFactory. O cliente pode criar fábricas de filtro a qualquer momento, mas isso normalmente é feito durante o processamento do IRP inicial PnP quando uma avaliação dos recursos atribuídos indica quais tipos de filtros devem ser expostos pelo dispositivo.

Para fins de sincronização, o tempo de vida das fábricas de filtro criadas implicitamente é definido como o intervalo que começa quando a função de expedição de criação do dispositivo do cliente é (ou seria) chamada e terminada depois que a função de expedição de remoção PnP do dispositivo do cliente é (ou seria) chamada. O tempo de vida das fábricas de filtros criadas explicitamente chamando KsCreateFilterFactory é iniciado imediatamente após o retorno dessa chamada.

Consulte também de sacos de objeto.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no Microsoft DirectX 8.0 e versões posteriores.
cabeçalho ks.h (incluir Ks.h)

Consulte também

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory