Функция mmioAdvance (mmiscapi.h)
Функция mmioAdvance перемещает буфер ввода-вывода файла, настроенный для прямого доступа к буферу ввода-вывода с помощью функции mmioGetInfo .
MMRESULT mmioAdvance(
HMMIO hmmio,
LPMMIOINFO pmmioinfo,
UINT fuAdvance
);
hmmio
Дескриптор файла, открытый с помощью функции mmioOpen .
pmmioinfo
Указатель на структуру MMIOINFO , полученную с помощью функции mmioGetInfo . Эта структура используется для задания сведений о текущем файле, а затем обновляется после расширения буфера. Этот параметр является необязательным.
fuAdvance
Флаги для операции. Это может быть один из следующих вариантов.
Значение | Значение |
---|---|
MMIO_READ | Буфер заполняется из файла. |
MMIO_WRITE | Буфер записывается в файл. |
Возвращает MMSYSERR_NOERROR в случае успешного выполнения или ошибку в противном случае. Возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Невозможно развернуть указанный файл памяти, вероятно, потому, что член adwInfo структуры MMIOINFO был установлен в нулевое значение в начальном вызове функции mmioOpen . |
|
Произошла ошибка при заполнении буфера. |
|
Содержимое буфера не удалось записать на диск. |
|
Недостаточно памяти для расширения файла памяти для дальнейшей записи. |
|
Указанный файл не открыт для буферизованного ввода-вывода. |
Если файл открыт для чтения, буфер ввода-вывода заполняется с диска. Если файл открыт для записи и флаг MMIO_DIRTY установлен в элементе dwFlags структуры MMIOINFO , буфер записывается на диск. Элементы pchNext,pchEndRead и pchEndWrite структуры MMIOINFO обновляются с учетом нового состояния буфера ввода-вывода.
Если указанный файл открыт для записи или для чтения и записи, буфер ввода-вывода сбрасывается на диск перед чтением следующего буфера. Если буфер ввода-вывода не может быть записан на диск, так как диск заполнен, mmioAdvance возвращает MMIOERR_CANNOTWRITE.
Если указанный файл открыт только для записи, необходимо указать флаг MMIO_WRITE.
Если вы выполнили запись в буфер ввода-вывода, необходимо установить флаг MMIO_DIRTY в элементе dwFlags структуры MMIOINFO перед вызовом mmioAdvance. В противном случае буфер не будет записан на диск.
Если конец файла достигнут, mmioAdvance по-прежнему успешно возвращается, несмотря на то, что больше данные не могут быть прочитаны. Чтобы проверка для конца файла, проверка, равны ли члены pchNext и pchEndRead структуры MMIOINFO после вызова mmioAdvance.
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | mmiscapi.h (включая Mmiscapi.h, Windows.h) |
Библиотека | Winmm.lib |
DLL | Winmm.dll |