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. Sacos de objetos 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 em Sacos de Objetos 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. O contexto é inicializado para o valor do membro Context do KSDEVICE pai no momento em que a fábrica é criada. Consulte Hierarquia de objetos AVStream.

Comentários

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 de 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 filtros a qualquer momento, mas isso normalmente é feito durante o processamento do IRP inicial PnP quando uma avaliação de 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 de 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 começa imediatamente após o retorno dessa chamada.

Consulte também Sacos de Objeto.

Requisitos

Requisito Valor
Cliente mínimo com suporte 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 (inclua Ks.h)

Confira também

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory