Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le pilote de classe AVStream utilise un allocator pour allouer des mémoires tampons de données dans des unités appelées frames. Un frame est un segment de mémoire continue, dont la taille est spécifiée par le fournisseur via le membre AllocatorFraming de KSPIN_DESCRIPTOR_EX.
Les minidrivers accèdent à ces mémoires tampons par le biais de l’API Stream Pointers ; appelez KsPinGetLeadingEdgeStreamPointer pour acquérir un pointeur dans le flux.
Les clients AVStream peuvent obtenir des informations sur les exigences de tramage d'un connecteur à l'aide de la propriété en lecture seule KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX. Cette propriété retourne une structure de type KSALLOCATOR_FRAMING_EX qui décrit les exigences d’encadrement de la broche.
Lorsque les données ne sont plus utilisées, AVStream utilise l’allocateur pour libérer la mémoire tampon.
AVStream fournit un allocateur par défaut. L’allocateur par défaut alloue la mémoire du pool en fonction des exigences d’allocator que le minidriver fournit dans le membre AllocatorFraming de la structure KSPIN_DESCRIPTOR_EX .
Un fournisseur avec des exigences d’allocation spécifiques à l’appareil peut écrire un minidriver qui inclut ses propres routines d’allocation. Par exemple, vous pouvez fournir un allocateur si votre pilote alloue de la mémoire à partir d’une mémoire tampon DMA commune.
Pour fournir un allocateur, fournissez une structure KSALLOCATOR_DISPATCH qui contient des pointeurs vers les routines de rappel fournies par le fournisseur suivantes :
Fournissez un pointeur vers cette structure de répartition d’allocator dans le membre Allocator de la structure KSPIN_DISPATCH décrivant l’épingle pour laquelle cet allocateur instancie les images.
Fournissez un pointeur vers cette structure de distribution des broches dans le membre Dispatch de la structure KSPIN_DESCRIPTOR_EX correspondante. Pour en savoir plus sur les structures de répartition dans AVStream, lisez les tables de répartition AVStream.
Au moment de l’exécution, le gestionnaire de graphiques (par exemple, le module proxy de streaming du noyau ) gère la sélection de l’allocateur. Un allocateur fourni par le fournisseur n’est pas garanti pour être sélectionné par le gestionnaire de graphiques.
Un allocateur en mode noyau est choisi uniquement si la connexion est en mode noyau. De plus, votre allocateur peut être rejeté s’il existe une incompatibilité entre les exigences de l'allocateur et les capacités de votre allocateur. Si votre allocator n’est pas sélectionné, votre routine de rappel AVStrMiniInitializeAllocator n’est jamais appelée.
Consultez également les services DMA AVStream et les pointeurs de flux.