Exécution d’E/S de fichier mémoire
Les services d’E/S de fichier multimédia vous permettent de traiter un bloc de mémoire comme un fichier. Cela peut être utile si vous avez déjà une image de fichier en mémoire. Les fichiers mémoire vous permettent de réduire le nombre de conditions de cas spéciaux dans votre code, car, à des fins d’E/S, vous pouvez traiter les fichiers mémoire comme s’il s’agissait de fichiers sur disque. Vous pouvez également utiliser des fichiers de mémoire avec le Presse-papiers.
Comme pour les mémoires tampons d’E/S, les fichiers mémoire peuvent utiliser la mémoire allouée par l’application ou par le gestionnaire d’E/S de fichiers. En outre, les fichiers mémoire peuvent être extensibles ou non expandables. Lorsque le gestionnaire d’E/S de fichiers atteint la fin d’un fichier mémoire extensible, il développe le fichier mémoire par incrément prédéfini.
Pour ouvrir un fichier mémoire, utilisez la fonction mmioOpen avec le paramètre szFilename défini sur NULL et l’indicateur MMIO_READWRITE défini dans le paramètre dwOpenFlags . Définissez le paramètre lpmmioinfo pour qu’il pointe vers une structure MMIOINFO qui a été configurée comme suit :
- Définissez le membre pIOProc sur NULL.
- Définissez le membre fccIOProc sur FOURCC_MEM.
- Définissez le membre pchBuffer pour qu’il pointe vers le bloc de mémoire. Pour demander que le gestionnaire d’E/S de fichiers alloue le bloc de mémoire, définissez pchBuffer sur NULL.
- Définissez le membre cchBuffer sur la taille initiale du bloc de mémoire.
- Définissez le membre adwInfo sur la taille d’expansion minimale du bloc de mémoire. Pour un fichier de mémoire non expandable, définissez adwInfo sur NULL.
- Définissez tous les autres membres sur zéro.
Il n’existe aucune restriction sur l’allocation de mémoire pour une utilisation en tant que fichier mémoire non expandable.