VirtualFree
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 |