Função GetWriteWatch (memoryapi.h)
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 |