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 |
---|---|
|
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. |
|
Beim erneuten Füllen des Puffers ist ein Fehler aufgetreten. |
|
Der Inhalt des Puffers konnte nicht auf den Datenträger geschrieben werden. |
|
Es war nicht genügend Arbeitsspeicher vorhanden, um eine Speicherdatei zum weiteren Schreiben zu erweitern. |
|
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 |