Función GetWriteWatch (memoryapi.h)

Recupera las direcciones de las páginas que se escriben en en una región de memoria virtual.

Windows de 64 bits en sistemas basados en Itanium: Debido a la diferencia en los tamaños de página, GetWriteWatch no es compatible con las aplicaciones de 32 bits.

Sintaxis

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 si la función restablece el estado de seguimiento de escritura.

Para restablecer el estado de seguimiento de escritura, establezca este parámetro en WRITE_WATCH_FLAG_RESET. Si este parámetro es 0 (cero), GetWriteWatch no restablece el estado de seguimiento de escritura. Para obtener más información, vea la sección Comentarios.

[in] lpBaseAddress

Dirección base de la región de memoria para la que se va a recuperar información de seguimiento de escritura.

Esta dirección debe estar en una región de memoria asignada por la función VirtualAlloc mediante MEM_WRITE_WATCH.

[in] dwRegionSize

Tamaño de la región de memoria para la que se va a recuperar información de seguimiento de escritura, en bytes.

[out] lpAddresses

Puntero a un búfer que recibe una matriz de direcciones de página en la región de memoria.

Las direcciones indican las páginas en las que se ha escrito desde que se ha asignado la región o se ha restablecido el estado de seguimiento de escritura.

[in, out] lpdwCount

En la entrada, esta variable indica el tamaño de la matriz lpAddresses , en los elementos de matriz.

En la salida, la variable recibe el número de direcciones de página que se devuelven en la matriz.

[out] lpdwGranularity

Puntero a una variable que recibe el tamaño de página, en bytes.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es 0 (cero).

Si se produce un error en la función, el valor devuelto es un valor distinto de cero.

Comentarios

Al llamar a la función VirtualAlloc para reservar o confirmar memoria, puede especificar MEM_WRITE_WATCH. Este valor hace que el sistema realice un seguimiento de las páginas que se escriben en la región de memoria confirmada. Puede llamar a la función GetWriteWatch para recuperar las direcciones de las páginas en las que se ha escrito desde que se ha asignado la región o se ha restablecido el estado de seguimiento de escritura.

Para restablecer el estado de seguimiento de escritura, establezca el valor de WRITE_WATCH_FLAG_RESET en el parámetro dwFlags . Como alternativa, puede llamar a la función ResetWriteWatch para restablecer el estado de seguimiento de escritura. Sin embargo, si usa ResetWriteWatch, debe asegurarse de que ningún subproceso escriba en la región durante el intervalo entre las llamadas GetWriteWatch y ResetWriteWatch . De lo contrario, puede haber páginas escritas que no detecte.

La función GetWriteWatch puede ser útil para generadores de perfiles, herramientas de depuración o recolectores de elementos no utilizados.

Requisitos

   
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado memoryapi.h (incluya Windows.h, Memoryapi.h)
Library onecore.lib
Archivo DLL Kernel32.dll

Consulte también

Funciones de administración de memoria

ResetWriteWatch

VirtualAlloc