Allocation de tampons pour la lecture de fichiers

Dans le scénario de lecture de fichiers le plus basique, les mémoires tampons utilisées pour fournir des exemples sont allouées par l’objet de lecture (l’objet lecteur ou l’objet lecteur synchrone). Toutefois, vous pouvez allouer vous-même des tampons. Pour plus d’informations sur les avantages de l’allocation de vos propres tampons, consultez prise en charge de l’exemple allouépar l’utilisateur.

Pour utiliser vos propres mémoires tampons pour la lecture de fichiers, procédez comme suit.

  1. Implémentez un rappel ou des rappels pour que le lecteur appelle lorsqu’il a besoin d’une mémoire tampon. Si vous lisez des exemples de sortie, utilisez IWMReaderAllocatorEx :: AllocateForOutputEx. Si vous lisez des exemples de flux, utilisez IWMReaderAllocatorEx :: AllocateForStreamEx. Incluez la logique de gestion des mémoires tampon adaptée à votre application.
  2. Allouez un pool de mémoires tampons que vous allez utiliser pour la lecture de fichiers.
  3. Configurez le lecteur ou le lecteur synchrone pour la lecture. Pour plus d’informations, consultez lecture de fichiers avec le lecteur asynchrone ou lecture de fichiers avec le lecteur synchrone.
  4. Avant de commencer l’écriture, appelez IWMReaderAdvanced :: SetAllocateForOutput ou IWMReaderAdvanced :: SetAllocateForStream pour chaque sortie et flux pour lesquels vous allouez des tampons à l’aide de l’objet lecteur. Pour le lecteur synchrone, appelez IWMSyncReader2 :: SetAllocateForOutput ou IWMSyncReader2 :: SetAllocateForStream à la place.
  5. Commencez la lecture du fichier.

L’objet de lecture appelle le rappel d’allocateur approprié et récupère des exemples de votre application. La logique de gestion de la mémoire tampon doit inclure un moyen de signaler qu’une mémoire tampon est libre d’être réutilisée. En général, une mémoire tampon est replacée dans le pool lors du rendu de son contenu. Selon votre application, il se peut que vous ayez besoin de quelques tampons dans le pool ou un grand nombre.

Lecture des fichiers ASF