Partager via


fonction mmioAdvance (mmiscapi.h)

La fonction mmioAdvance avance la mémoire tampon d’E/S d’un fichier configuré pour l’accès direct à la mémoire tampon d’E/S avec la fonction mmioGetInfo .

Syntaxe

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

Paramètres

hmmio

Handle de fichier d’un fichier ouvert à l’aide de la fonction mmioOpen .

pmmioinfo

Pointeur vers la structure MMIOINFO obtenue à l’aide de la fonction mmioGetInfo . Cette structure est utilisée pour définir les informations de fichier actuelles, puis elles sont mises à jour une fois la mémoire tampon avancée. Ce paramètre est facultatif.

fuAdvance

Indicateurs de l’opération. Il peut s’agir de l’un des éléments suivants.

Valeur Signification
MMIO_READ La mémoire tampon est remplie à partir du fichier.
MMIO_WRITE La mémoire tampon est écrite dans le fichier.

Valeur retournée

Retourne MMSYSERR_NOERROR en cas de réussite ou une erreur dans le cas contraire. Les valeurs d’erreur possibles sont les suivantes.

Code de retour Description
MMIOERR_CANNOTEXPAND
Le fichier mémoire spécifié ne peut pas être développé, probablement parce que le membre adwInfo de la structure MMIOINFO a été défini sur zéro dans l’appel initial à la fonction mmioOpen .
MMIOERR_CANNOTREAD
Une erreur s’est produite lors du rechargement de la mémoire tampon.
MMIOERR_CANNOTWRITE
Le contenu de la mémoire tampon n’a pas pu être écrit sur le disque.
MMIOERR_OUTOFMEMORY
Il n’y avait pas assez de mémoire pour développer un fichier mémoire pour une écriture ultérieure.
MMIOERR_UNBUFFERED
Le fichier spécifié n’est pas ouvert pour les E/S mises en mémoire tampon.

Notes

Si le fichier est ouvert pour lecture, la mémoire tampon d’E/S est remplie à partir du disque. Si le fichier est ouvert pour l’écriture et que l’indicateur MMIO_DIRTY est défini dans le membre dwFlags de la structure MMIOINFO , la mémoire tampon est écrite sur le disque. Les membres pchNext,pchEndRead et pchEndWrite de la structure MMIOINFO sont mis à jour pour refléter le nouvel état de la mémoire tampon d’E/S.

Si le fichier spécifié est ouvert pour l’écriture ou pour la lecture et l’écriture, la mémoire tampon d’E/S est vidée sur le disque avant la lecture de la mémoire tampon suivante. Si la mémoire tampon d’E/S ne peut pas être écrite sur le disque, car le disque est plein, mmioAdvance retourne MMIOERR_CANNOTWRITE.

Si le fichier spécifié est ouvert uniquement pour l’écriture, l’indicateur MMIO_WRITE doit être spécifié.

Si vous avez écrit dans la mémoire tampon d’E/S, vous devez définir l’indicateur MMIO_DIRTY dans le membre dwFlags de la structure MMIOINFO avant d’appeler mmioAdvance. Sinon, la mémoire tampon n’est pas écrite sur le disque.

Si la fin du fichier est atteinte, mmioAdvance retourne toujours avec succès même si aucune donnée supplémentaire ne peut être lue. Pour case activée pour la fin du fichier, case activée si les membres pchNext et pchEndRead de la structure MMIOINFO sont égaux après l’appel de mmioAdvance.

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête mmiscapi.h (inclure Mmiscapi.h, Windows.h)
Bibliothèque Winmm.lib
DLL Winmm.dll