Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Recupera os endereços das páginas que são gravadas em uma região de memória virtual.
Windows de 64 bits em sistemas baseados em Itanium: Devido à diferença nos tamanhos de página, o GetWriteWatch não tem suporte para aplicativos de 32 bits.
Sintaxe
UINT GetWriteWatch(
[in] DWORD dwFlags,
[in] PVOID lpBaseAddress,
[in] SIZE_T dwRegionSize,
[out] PVOID *lpAddresses,
[in, out] ULONG_PTR *lpdwCount,
[out] LPDWORD lpdwGranularity
);
Parâmetros
[in] dwFlags
Indica se a função redefine o estado de acompanhamento de gravação.
Para redefinir o estado de acompanhamento de gravação, defina esse parâmetro como WRITE_WATCH_FLAG_RESET. Se esse parâmetro for 0 (zero), GetWriteWatch não redefinirá o estado de rastreamento de gravação. Para obter mais informações, confira a seção Comentários deste tópico.
[in] lpBaseAddress
O endereço base da região de memória para a qual recuperar informações de rastreamento de gravação.
Esse endereço deve estar em uma região de memória alocada pela função VirtualAlloc usando MEM_WRITE_WATCH.
[in] dwRegionSize
O tamanho da região de memória para a qual recuperar informações de rastreamento de gravação, em bytes.
[out] lpAddresses
Um ponteiro para um buffer que recebe uma matriz de endereços de página na região de memória.
Os endereços indicam as páginas que foram gravadas desde que a região foi alocada ou o estado de acompanhamento de gravação foi redefinido.
[in, out] lpdwCount
Na entrada, essa variável indica o tamanho da matriz lpAddresses , em elementos de matriz.
Na saída, a variável recebe o número de endereços de página retornados na matriz.
[out] lpdwGranularity
Um ponteiro para uma variável que recebe o tamanho da página, em bytes.
Valor retornado
Se a função for bem-sucedida, o valor retornado será 0 (zero).
Se a função falhar, o valor retornado será um valor diferente de zero.
Comentários
Ao chamar a função VirtualAlloc para reservar ou confirmar memória, você pode especificar MEM_WRITE_WATCH. Esse valor faz com que o sistema acompanhe as páginas gravadas na região de memória confirmada. Você pode chamar a função GetWriteWatch para recuperar os endereços das páginas que foram gravadas desde que a região foi alocada ou o estado de rastreamento de gravação foi redefinido.
Para redefinir o estado de rastreamento de gravação, defina o valor WRITE_WATCH_FLAG_RESET no parâmetro dwFlags . Como alternativa, você pode chamar a função ResetWriteWatch para redefinir o estado de acompanhamento de gravação. No entanto, se você usar ResetWriteWatch, deverá garantir que nenhum thread seja gravado na região durante o intervalo entre as chamadas GetWriteWatch e ResetWriteWatch . Caso contrário, pode haver páginas escritas que você não detecta.
A função GetWriteWatch pode ser útil para criadores de perfil, ferramentas de depuração ou coletores de lixo.
Requisitos
| Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
| Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
| Plataforma de Destino | Windows |
| Cabeçalho | memoryapi.h (inclua Windows.h, Memoryapi.h) |
| Biblioteca | onecore.lib |
| DLL | Kernel32.dll |