Funzione mmioAdvance (mmiscapi.h)
La funzione mmioAdvance fa avanzare il buffer di I/O di un file configurato per l'accesso diretto al buffer I/O con la funzione mmioGetInfo .
Sintassi
MMRESULT mmioAdvance(
HMMIO hmmio,
LPMMIOINFO pmmioinfo,
UINT fuAdvance
);
Parametri
hmmio
Handle di file di un file aperto tramite la funzione mmioOpen .
pmmioinfo
Puntatore alla struttura MMIOINFO ottenuta usando la funzione mmioGetInfo . Questa struttura viene usata per impostare le informazioni sul file corrente e quindi viene aggiornata dopo che il buffer è avanzato. Questo parametro è facoltativo e,
fuAdvance
Flag per l'operazione. Può essere una delle seguenti.
Valore | Significato |
---|---|
MMIO_READ | Il buffer viene riempito dal file. |
MMIO_WRITE | Il buffer viene scritto nel file. |
Valore restituito
Restituisce MMSYSERR_NOERROR se l'esito positivo o un errore in caso contrario. I valori di errore possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
Impossibile espandere il file di memoria specificato, probabilmente perché il membro adwInfo della struttura MMIOINFO è stato impostato su zero nella chiamata iniziale alla funzione mmioOpen . |
|
Errore durante il riempimento del buffer. |
|
Impossibile scrivere il contenuto del buffer su disco. |
|
Memoria insufficiente per espandere un file di memoria per ulteriori operazioni di scrittura. |
|
Il file specificato non viene aperto per le operazioni di I/O memorizzate nel buffer. |
Commenti
Se il file viene aperto per la lettura, il buffer di I/O viene riempito dal disco. Se il file viene aperto per la scrittura e il flag MMIO_DIRTY viene impostato nel membro dwFlags della struttura MMIOINFO , il buffer viene scritto su disco. I membri pchNext,pchEndRead e pchEndWrite della struttura MMIOINFO vengono aggiornati per riflettere il nuovo stato del buffer di I/O.
Se il file specificato viene aperto per la scrittura o per la lettura e la scrittura, il buffer di I/O viene scaricato su disco prima della lettura del buffer successivo. Se il buffer di I/O non può essere scritto su disco perché il disco è pieno, mmioAdvance restituisce MMIOERR_CANNOTWRITE.
Se il file specificato è aperto solo per la scrittura, è necessario specificare il flag di MMIO_WRITE.
Se è stato scritto nel buffer di I/O, è necessario impostare il flag MMIO_DIRTY nel membro dwFlags della struttura MMIOINFO prima di chiamare mmioAdvance. In caso contrario, il buffer non verrà scritto su disco.
Se viene raggiunta la fine del file, mmioAdvance restituisce comunque correttamente anche se non è possibile leggere altri dati. Per verificare la fine del file, verificare se i membri pchNext e pchEndRead della struttura MMIOINFO sono uguali dopo aver chiamato mmioAdvance.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | mmiscapi.h (include Mmiscapi.h, Windows.h) |
Libreria | Winmm.lib |
DLL | Winmm.dll |