mmioAdvance-Funktion (mmiscapi.h)

Die mmioAdvance-Funktion erhöht den E/A-Puffer einer Datei, die für den direkten E/A-Pufferzugriff mit der mmioGetInfo-Funktion eingerichtet ist.

Syntax

MMRESULT mmioAdvance(
  HMMIO      hmmio,
  LPMMIOINFO pmmioinfo,
  UINT       fuAdvance
);

Parameter

hmmio

Dateihandle einer Datei, die mithilfe der funktion mmioOpen geöffnet wurde.

pmmioinfo

Zeiger auf die MMIOINFO-Struktur , die mithilfe der mmioGetInfo-Funktion abgerufen wird. Diese Struktur wird verwendet, um die aktuellen Dateiinformationen festzulegen, und dann wird sie aktualisiert, nachdem der Puffer erweitert wurde. Dieser Parameter ist optional.

fuAdvance

Flags für den Vorgang. Dies kann eine der folgenden Sein.

Wert Bedeutung
MMIO_READ Puffer wird aus der Datei gefüllt.
MMIO_WRITE Puffer wird in die Datei geschrieben.

Rückgabewert

Gibt MMSYSERR_NOERROR zurück, wenn erfolgreich oder andernfalls ein Fehler aufgetreten ist. Mögliche Fehlerwerte sind:

Rückgabecode Beschreibung
MMIOERR_CANNOTEXPAND
Die angegebene Speicherdatei kann nicht erweitert werden, wahrscheinlich weil das adwInfo-Element der MMIOINFO-Struktur beim ersten Aufruf der mmioOpen-Funktion auf 0 festgelegt wurde.
MMIOERR_CANNOTREAD
Beim erneuten Füllen des Puffers ist ein Fehler aufgetreten.
MMIOERR_CANNOTWRITE
Der Inhalt des Puffers konnte nicht auf den Datenträger geschrieben werden.
MMIOERR_OUTOFMEMORY
Es war nicht genügend Arbeitsspeicher vorhanden, um eine Speicherdatei zum weiteren Schreiben zu erweitern.
MMIOERR_UNBUFFERED
Die angegebene Datei wird für gepufferte E/A-Vorgänge nicht geöffnet.

Hinweise

Wenn die Datei zum Lesen geöffnet wird, wird der E/A-Puffer vom Datenträger gefüllt. Wenn die Datei zum Schreiben geöffnet und das MMIO_DIRTY-Flag im dwFlags-Member der MMIOINFO-Struktur festgelegt ist, wird der Puffer auf den Datenträger geschrieben. Die Mitglieder pchNext,pchEndRead und pchEndWrite der MMIOINFO-Struktur werden aktualisiert, um den neuen Zustand des E/A-Puffers widerzuspiegeln.

Wenn die angegebene Datei zum Schreiben oder zum Lesen und Schreiben geöffnet wird, wird der E/A-Puffer auf den Datenträger geleert, bevor der nächste Puffer gelesen wird. Wenn der E/A-Puffer nicht auf den Datenträger geschrieben werden kann, weil der Datenträger voll ist, gibt mmioAdvance MMIOERR_CANNOTWRITE zurück.

Wenn die angegebene Datei nur zum Schreiben geöffnet ist, muss das flag MMIO_WRITE angegeben werden.

Wenn Sie in den E/A-Puffer geschrieben haben, müssen Sie das MMIO_DIRTY-Flag im dwFlags-Element der MMIOINFO-Struktur festlegen, bevor Sie mmioAdvance aufrufen. Andernfalls wird der Puffer nicht auf den Datenträger geschrieben.

Wenn das Ende der Datei erreicht ist, wird mmioAdvance trotzdem erfolgreich zurückgegeben, auch wenn keine weiteren Daten gelesen werden können. Um das Ende der Datei zu überprüfen, überprüfen Sie nach dem Aufrufen von mmioAdvance, ob die Elemente pchNext und pchEndRead der MMIOINFO-Struktur gleich sind.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mmiscapi.h (einschließlich Mmiscapi.h, Windows.h)
Bibliothek Winmm.lib
DLL Winmm.dll