KS Allocators
Un allocator est un objet KS qui instancie des mémoires tampons de données appelées frames pour les demandes d’E/S. 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 peuvent prendre en charge les allocateurs pour plusieurs types de mémoire tampon, pour instance ram embarquée dans un carte vidéo. Toutefois, la plupart des minidrivers utilisent l’répartiteur par défaut pour allouer la mémoire système. Les minidrivers peuvent spécifier la taille du cadre, le nombre maximal d’images et les exigences d’alignement. L’allocateur par défaut s’occupe de répondre aux exigences et peut optimiser les performances en réutilisant les images ignorées.
Un minidriver crée un allocator en appelant la routine KsCreateAllocator ou les fonctions associées. Dans cet appel, le minidriver passe un pointeur vers une structure KSALLOCATOR_FRAMING . Cette structure contient des paramètres décrivant l’allocateur demandé.
Dans le modèle de classe de flux, les mini-disques qui créent des allocateurs prennent en charge la propriété KSPROPERTY_CONNECTION_ALLOCATORFRAMING . Il s’agit d’une demande en lecture seule qui retourne un pointeur vers la structure KSALLOCATOR_FRAMING appropriée pour le handle récepteur spécifié.
Les mini-disques qui fournissent des allocateurs doivent également prendre en charge la propriété KSPROPERTY_STREAM_ALLOCATOR . Cette propriété fournit un accès en lecture/écriture au handle de l’allocateur actuellement affecté au point de connexion de flux.
Les mini-disques s’exécutant sous AVStream peuvent inclure des broches qui implémentent leurs propres allocateurs. Pour ce faire, définissez le membre KSALLOCATOR_DISPATCH de la structure KSPIN_DISPATCH . Spécifiez NULL pour ce membre si vous ne souhaitez pas spécifier d’allocator pour cette broche.
En outre, les mini-drivers AVStream utilisent la structure KSALLOCATOR_FRAMING_EX pour spécifier les exigences d’allocation. Les clients utilisent ensuite la propriété KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX pour récupérer les exigences de cadrage d’une broche. Pour plus d’informations, consultez Allocators AVStream .
Cette section contient les informations supplémentaires suivantes :