Inizializzazione di un minidriver AVStream

Un minidriver AVStream che non gestisce l'inizializzazione del dispositivo chiama KsInitializeDriver dalla routine DriverEntry del minidriver. KsInitializeDriver inizializza l'oggetto driver di un driver AVStream, oltre all'invio IRP, pnP aggiunge messaggi di dispositivo e scarica.

Nel chiamare KsInitializeDriver, il minidriver passa un puntatore all'oggetto driver per inizializzare un puntatore al percorso del Registro di sistema e, facoltativamente, un oggetto descrittore di dispositivo. Si noti che il passaggio dell KSDEVICE_DESCRIPTOR o object non è obbligatorio. Se il minidriver passa un descrittore di dispositivo, AVStream crea un dispositivo con le caratteristiche specificate al momento di AddDevice.

L'oggetto descrittore di dispositivo contiene un puntatore a una KSDEVICE_DISPATCH struttura e una matrice di descrittori di filtro. Specificare un KSFILTER_DESCRIPTOR per ogni tipo di filtro supportato dal minidriver. Quando il minidriver chiama KsInitializeDriver, AVStream crea un oggetto filter factory per ogni tipo di filtro esposto dal minidriver. Viene quindi creata un'istanza dei singoli filtri dalla factory di filtri alla ricezione di un IRP di creazione per l'elemento di creazione associato. Ogni descrittore di filtro contiene un puntatore a una matrice di KSPIN_DESCRIPTOR_EX oggetti . AVStream crea una factory di pin sul filtro pertinente per ogni tipo di pin esposto dal minidriver tramite tale filtro.

Quando viene stabilita una connessione a un determinato tipo di pin in un filtro, la factory di pin AVStream crea un oggetto pin. Si noti che ogni filtro deve esporre almeno un pin. Il minidriver usa il membro InstancesNecessary di KSPIN_DESCRIPTOR_EX per identificare il numero di istanze di questo tipo di pin necessarie per il corretto funzionamento del filtro. Analogamente, il minidriver può imporre un massimo sul numero di pin di cui la factory dei pin può creare un'istanza usando il membro InstancesPossible di questa struttura.

AVStream supporta due tipi di elaborazione: elaborazione incentrata sui filtri e elaborazione incentrato sui pin. Quando si eseguono il layout dei descrittori, decidere quale tipo di elaborazione eseguirà ogni tipo di filtro.

Installazione di un minidriver AVStream

Un minidriver AVStream deve avere un file INF utilizzato dal sistema per installare il driver. Un file AVStream INF si basa sul formato INF comune, descritto in Creazione di un file INF. È anche possibile fare riferimento ai file INF forniti con i driver di esempio AVStream in Windows Driver Kit (WDK). Tenere presenti le linee guida specifiche di AVStream seguenti.

Se si scrive un minidriver per un dispositivo padre, la sezione AddReg del file INF deve contenere:

[ParentName.AddReg]
HKR,"ENUM\[DeviceName]",pnpid,,"[string]"

Se si scrive un minidriver per un dispositivo figlio, la sezione AddReg deve contenere:

[Manufacturer]
...=ChildName
[ChildName]
...=ChildName.Device,AVStream\[string]

Si noti che "AVStream" sarebbe "Stream" per un driver di classe di flusso.

Per tutti i minidriver AVStream, la stringa di riferimento specifica del filtro nel file INF deve corrispondere al membro ReferenceGuid della KSFILTER_DESCRIPTOR struttura.

Per altre informazioni sui descrittori, vedere Descrittori AVStream.