Condividi tramite


Struttura KSFILTERFACTORY (ks.h)

La struttura KSFILTERFACTORY rappresenta una factory di filtro.

Sintassi

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

Membri

FilterDescriptor

Puntatore a una struttura KSFILTER_DESCRIPTOR che descrive le caratteristiche dei filtri creati da questa factory.

Bag

Questo membro specifica il KSOBJECT_BAG (equivalente al tipo PVOID) associato a questa factory di filtro. I contenitori di oggetti sono strutture usate per associare la memoria dinamica a un oggetto AVStream specifico. Qualsiasi elemento nel contenitore oggetti factory filtro viene pulito automaticamente quando la factory di filtro viene eliminata. Per altre informazioni, vedere la sezione concettuale su contenitori di oggetti.

Context

Puntatore a un indirizzo di memoria che il client può usare per associare le informazioni di contesto alla factory di filtro. AVStream non usa questo membro in alcun modo. Si noti che qualsiasi memoria dinamica associata alla factory di filtro deve essere inserita nel contenitore oggetti con KsAddItemToObjectBag. Context viene inizializzato sul valore del membro Context del KS DEVICE padre al momento della creazione della factory. Vedere gerarchia di oggetti AVStream.

Osservazioni

Una factory di filtro rappresenta in modo esplicito la capacità di un dispositivo di creare un'istanza di un determinato tipo di filtro come descritto da un descrittore di filtro.

I driver per l'hardware usano in genere questa struttura per gestire una funzione specifica dell'hardware esposto come tipo di filtro. I filtri software in genere non devono gestire il dispositivo a questo livello.

Gli oggetti factory di filtro vengono creati in due modi. Possono essere creati durante l'elaborazione addDevice come indicato dall'elenco dei descrittori di filtro del dispositivo. Possono anche essere creati in modo esplicito dal client in una chiamata a KsCreateFilterFactory. Il client può creare factory di filtri in qualsiasi momento, ma in genere questa operazione viene eseguita durante l'elaborazione dell'IRP di avvio PnP quando una valutazione delle risorse assegnate indica quali tipi di filtri devono essere esposti dal dispositivo.

Ai fini della sincronizzazione, la durata delle factory di filtro create in modo implicito viene definita come l'intervallo a partire dal momento in cui la funzione dispatch creata dal dispositivo del client è (o sarebbe) chiamata e termina dopo la chiamata della funzione dispatch PnP del dispositivo del client (o sarebbe). La durata delle factory di filtro create in modo esplicito chiamando KsCreateFilterFactory inizia immediatamente dopo la restituzione della chiamata.

Vedere anche contenitori di oggetti.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Microsoft Windows XP e nei sistemi operativi successivi e in Microsoft DirectX 8.0 e versioni successive.
intestazione ks.h (include Ks.h)

Vedere anche

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory