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 |