Compartilhar via


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

Confira também

Funções de gerenciamento da memória

ResetWriteWatch

Virtualalloc