Descripteurs AVStream
Un minidriver AVStream décrit lui-même et les types de filtres qu’il prend en charge en fournissant des structures de descripteur imbriquées dans l’appel à KsInitializeDriver. Chaque composant clé (l’appareil, la fabrique de filtres et la fabrique d’épingles ) a un descripteur associé.
Comme indiqué dans la hiérarchie d’objets AVStream, le descripteur de niveau le plus élevé pour un minidriver AVStream est le descripteur d’appareil , KSDEVICE_DESCRIPTOR.
Dans le descripteur d’appareil, le membre FilterDescriptors pointe vers un tableau de structures KSFILTER_DESCRIPTOR qui décrivent les types de filtres que cet appareil peut créer. Les clients AVStream peuvent appeler KsCreateFilterFactory pour ajouter dynamiquement des fabriques de filtres.
Une KSFILTER_DESCRIPTOR indique le nombre de types d’épingles pris en charge par le filtre, les catégories KS sous lesquelles le filtre doit être inscrit et la topologie du filtre. À l’intérieur de chaque descripteur de filtre, le minidriver fournit un pointeur vers un tableau de structures KSPIN_DESCRIPTOR_EX . Chacun de ces descripteurs d’épingle décrit un type d’épingle que ce filtre peut instancier. Vous pouvez créer des fabriques d’épingles supplémentaires en appelant KsFilterCreatePinFactory.
En règle générale, les minidrivers AVStream placent des tables de descripteurs statiques dans leur source et appellent KsInitializeDriver pour effectuer le travail d’installation. Pour plus d’informations sur l’initialisation de votre pilote, consultez Initialisation d’un minidriver AVStream.
Il existe également d’autres types de descripteurs, tels que le descripteur de nœud KSNODE_DESCRIPTOR, qui décrit un nœud de topologie donné.
La table dispatch est commune à chacun des trois types de descripteurs main. Consultez Tables de répartition AVStream.