Realizar E/S de archivos de memoria
Los servicios de E/S de archivos multimedia permiten tratar un bloque de memoria como un archivo. Esto puede ser útil si ya tiene una imagen de archivo en memoria. Los archivos de memoria permiten reducir el número de condiciones especiales en el código porque, con fines de E/S, puede tratar los archivos de memoria como si fueran archivos basados en disco. También puede usar archivos de memoria con el Portapapeles.
Al igual que con los búferes de E/S, los archivos de memoria pueden usar la memoria asignada por la aplicación o por el administrador de E/S de archivos. Además, los archivos de memoria pueden ser expandibles o no expandibles. Cuando el administrador de E/S de archivos llega al final de un archivo de memoria expandible, expande el archivo de memoria mediante un incremento predefinido.
Para abrir un archivo de memoria, use la función mmioOpen con el parámetro szFilename establecido en NULL y la marca MMIO_READWRITE establecida en el parámetro dwOpenFlags . Establezca el parámetro lpmmioinfo para que apunte a una estructura MMIOINFO que se ha configurado de la siguiente manera:
- Establezca el miembro pIOProc en NULL.
- Establezca el miembro fccIOProc en FOURCC_MEM.
- Establezca el miembro pchBuffer para que apunte al bloque de memoria. Para solicitar que el administrador de E/S de archivos asigne el bloque de memoria, establezca pchBuffer en NULL.
- Establezca el miembro cchBuffer en el tamaño inicial del bloque de memoria.
- Establezca el miembro adwInfo en el tamaño de expansión mínimo del bloque de memoria. Para un archivo de memoria nonexpandable, establezca adwInfo en NULL.
- Establezca todos los demás miembros en cero.
No hay restricciones en la asignación de memoria para su uso como un archivo de memoria no ejecutable.