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.
Un allocator est un objet KS qui instancie les mémoires tampons de données appelées trames pour les requêtes 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 buffers, par exemple la RAM intégrée dans une carte vidéo. Toutefois, la plupart des minidrivers utilisent l’allocateur par défaut pour allouer de 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’assure de répondre aux exigences et peut optimiser les performances en réutilisant les images jetées.
Un minidriver crée un allocateur en appelant la routine KsCreateAllocator ou les fonctions associées. Dans cet appel, le minidriver transmet un pointeur à une structure KSALLOCATOR_FRAMING . Cette structure contient des paramètres décrivant l’allocateur demandé.
Dans le modèle de classe de flux, les minidrivers 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 manipulateur de récepteur spécifié.
Les minidrivers qui fournissent des allocateurs devraient é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 minidrivers s’exécutant sous AVStream peuvent inclure des pins 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 champ, si vous ne souhaitez pas spécifier d’allocateur pour cette broche.
En outre, les mini-drivers AVStream utilisent la structure KSALLOCATOR_FRAMING_EX pour spécifier les exigences d’allocator. Les clients utilisent ensuite la propriété KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX pour récupérer les exigences d’encadrement d’un point de connexion. Pour plus d'informations, consultez les gestionnaires AVStream.
Cette section contient les informations supplémentaires suivantes :