Função mmioAdvance (mmiscapi.h)
A função mmioAdvance avança o buffer de E/S de um arquivo configurado para acesso direto ao buffer de E/S com a função mmioGetInfo .
Sintaxe
MMRESULT mmioAdvance(
HMMIO hmmio,
LPMMIOINFO pmmioinfo,
UINT fuAdvance
);
Parâmetros
hmmio
Identificador de arquivo de um arquivo aberto usando a função mmioOpen .
pmmioinfo
Ponteiro para a estrutura MMIOINFO obtida usando a função mmioGetInfo . Essa estrutura é usada para definir as informações de arquivo atuais e, em seguida, é atualizada depois que o buffer é avançado. Esse parâmetro é opcional.
fuAdvance
Sinalizadores para a operação. Pode ser um dos seguintes.
Valor | Significado |
---|---|
MMIO_READ | O buffer é preenchido do arquivo. |
MMIO_WRITE | O buffer é gravado no arquivo. |
Valor retornado
Retorna MMSYSERR_NOERROR se tiver êxito ou um erro de outra forma. Os valores de erro possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O arquivo de memória especificado não pode ser expandido, provavelmente porque o membro adwInfo da estrutura MMIOINFO foi definido como zero na chamada inicial para a função mmioOpen . |
|
Ocorreu um erro ao recarregar o buffer. |
|
O conteúdo do buffer não pôde ser gravado no disco. |
|
Não havia memória suficiente para expandir um arquivo de memória para gravação adicional. |
|
O arquivo especificado não é aberto para E/S em buffer. |
Comentários
Se o arquivo for aberto para leitura, o buffer de E/S será preenchido do disco. Se o arquivo for aberto para gravação e o sinalizador MMIO_DIRTY for definido no membro dwFlags da estrutura MMIOINFO , o buffer será gravado no disco. Os membros pchNext,pchEndRead e pchEndWrite da estrutura MMIOINFO são atualizados para refletir o novo estado do buffer de E/S.
Se o arquivo especificado for aberto para gravação ou para leitura e gravação, o buffer de E/S será liberado para o disco antes que o próximo buffer seja lido. Se o buffer de E/S não puder ser gravado no disco porque o disco está cheio, mmioAdvance retornará MMIOERR_CANNOTWRITE.
Se o arquivo especificado estiver aberto somente para gravação, o sinalizador MMIO_WRITE deverá ser especificado.
Se você tiver gravado no buffer de E/S, deverá definir o sinalizador MMIO_DIRTY no membro dwFlags da estrutura MMIOINFO antes de chamar mmioAdvance. Caso contrário, o buffer não será gravado no disco.
Se o final do arquivo for atingido, mmioAdvance ainda retornará com êxito, embora não seja possível ler mais dados. Para marcar para o final do arquivo, marcar se os membros pchNext e pchEndRead da estrutura MMIOINFO forem iguais depois de chamar mmioAdvance.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | mmiscapi.h (inclua Mmiscapi.h, Windows.h) |
Biblioteca | Winmm.lib |
DLL | Winmm.dll |