Función mmioAdvance (mmiscapi.h)
La función mmioAdvance avanza el búfer de E/S de un archivo configurado para el acceso directo al búfer de E/S con la función mmioGetInfo .
Sintaxis
MMRESULT mmioAdvance(
HMMIO hmmio,
LPMMIOINFO pmmioinfo,
UINT fuAdvance
);
Parámetros
hmmio
Identificador de archivo de un archivo abierto mediante la función mmioOpen .
pmmioinfo
Puntero a la estructura MMIOINFO obtenida mediante la función mmioGetInfo . Esta estructura se usa para establecer la información del archivo actual y, a continuación, se actualiza después de que el búfer esté avanzado. Este parámetro es opcional.
fuAdvance
Marcas para la operación. Puede ser uno de los siguientes.
Valor | Significado |
---|---|
MMIO_READ | El búfer se rellena desde el archivo. |
MMIO_WRITE | El búfer se escribe en el archivo. |
Valor devuelto
Devuelve MMSYSERR_NOERROR si se realiza correctamente o si se produce un error en caso contrario. Entre los valores de error posibles se incluyen los siguientes.
Código devuelto | Descripción |
---|---|
|
El archivo de memoria especificado no se puede expandir, probablemente porque el miembro adwInfo de la estructura MMIOINFO se estableció en cero en la llamada inicial a la función mmioOpen . |
|
Error al rellenar el búfer. |
|
El contenido del búfer no se pudo escribir en el disco. |
|
No había suficiente memoria para expandir un archivo de memoria para su posterior escritura. |
|
El archivo especificado no se abre para E/S almacenado en búfer. |
Comentarios
Si el archivo se abre para leerlo, el búfer de E/S se rellena desde el disco. Si el archivo se abre para escribir y la marca de MMIO_DIRTY se establece en el miembro dwFlags de la estructura MMIOINFO , el búfer se escribe en el disco. Los miembros pchNext,pchEndRead y pchEndWrite de la estructura MMIOINFO se actualizan para reflejar el nuevo estado del búfer de E/S.
Si el archivo especificado se abre para escribir o para leer y escribir, el búfer de E/S se vacía en el disco antes de leer el búfer siguiente. Si el búfer de E/S no se puede escribir en el disco porque el disco está lleno, mmioAdvance devuelve MMIOERR_CANNOTWRITE.
Si el archivo especificado está abierto solo para escribir, se debe especificar la marca MMIO_WRITE.
Si ha escrito en el búfer de E/S, debe establecer la marca MMIO_DIRTY en el miembro dwFlags de la estructura MMIOINFO antes de llamar a mmioAdvance. De lo contrario, el búfer no se escribirá en el disco.
Si se alcanza el final del archivo, mmioAdvance todavía devuelve correctamente aunque no se puedan leer más datos. Para comprobar el final del archivo, compruebe si los miembros pchNext y pchEndRead de la estructura MMIOINFO son iguales después de llamar a mmioAdvance.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | mmiscapi.h (include Mmiscapi.h, Windows.h) |
Library | Winmm.lib |
Archivo DLL | Winmm.dll |