Compartilhar via


VirtualFree

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função libera ou decommits, ou ambos, uma região de páginas dentro o espaço de endereço virtual da processo de chamada.

Syntax

BOOL VirtualFree(
  LPVOID lpAddress,
  DWORD dwSize,
  DWORD dwFreeType
);

Parameters

  • lpAddress
    [no] Ponteiro para o endereço de base da região de páginas a ser liberada.

    Se a pasta dwFreeType parâmetro inclui o sinalizador MEM_RELEASE, este parâmetro deve ser o endereço básico retornado pela função a VirtualAlloc quando a região de páginas foi reservada.

  • dwSize
    [no] Especifica o tamanho, em bytes, da região a ser liberada.

    Se a pasta dwFreeType parâmetro inclui o sinalizador MEM_RELEASE, este parâmetro deve ser zero.

    Caso contrário, a região de páginas afetadas inclui todas as páginas que contêm um ou mais bytes no intervalo a partir de lpAddress parâmetro para lpAddress sinal de mais dwSize. Isso significa que um 2-intervalo byte espalhados um limite página faz com que ambas as páginas ser liberado.

  • dwFreeType
    [no] Especifica o tipo de livre operação.

    Você pode especificar um do seguinte sinalizadores.

    Valor Descrição

    MEM_DECOMMIT

    Decommits a região especificada de páginas confirmadas.

    Uma tentativa decommit uma página não confirmada não causar a função falha. Isso significa que um intervalo de páginas confirmadas ou Não Confirmadas pode ser decommitted sem sendo preocupado sobre uma falha.

    MEM_RELEASE

    Libera a região especificada de páginas reservadas.

    Se este sinalizador for especificado, o dwSize parâmetro deve ser zero ou a função falhará.

Return Value

Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.

Remarks

VirtualFree Pode executar Uma do seguinte operações:

  • Decommit uma região de páginas confirmadas ou não confirmadas.
  • Libere uma região de páginas reservadas.
  • Decommit e versão uma região de páginas confirmadas ou não confirmadas.

A versão uma região de páginas, o intervalo de páginas deve estar no mesmo estado (todos reservado ou Todos confirmadas) e a toda a região originalmente reservado pelo O VirtualAlloc função deve ser lançada no mesmo tempo.

Se apenas parte as páginas de original região reservada são confirmadas, chamar primeiro VirtualFree Para decommit a páginas confirmadas e, em seguida, chamar VirtualFree novamente para versão o bloco inteiro.

Páginas que foram lançadas são livre disponível páginas para operações subseqüentes alocação. Tentando ler de ou de gravação para um livre página resulta em uma exceção violação de acesso.

VirtualFree Pode decommit uma página não confirmada. Isso significa que um intervalo de páginas confirmadas ou Não Confirmadas pode ser decommitted sem sendo preocupado sobre uma falha.

Decommitting uma página libera seu físico armazenamento, em memória ou no arquivo de paginação no disco. Se uma página é decommitted, mas não lançada, seu estado muda para reservado e ele pode ser confirmado novamente por um chamar subseqüente para O VirtualAlloc.

Tentando ler de ou Gravação para uma página reservado resulta em uma exceção violação de acesso.

O atual estado do intervalo de páginas deve ser compatível com o tipo de livre operação especificada pela dwFreeType parâmetro. Caso contrário, o função falhar e não páginas são lançadas ou decommitted.

Requirements

Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Memory Management Functions
LocalAlloc
VirtualAlloc