Partager via


GetWriteWatch, fonction (memoryapi.h)

Récupère les adresses des pages écrites dans une région de mémoire virtuelle.

Windows 64 bits sur les systèmes Itanium : En raison de la différence de taille de page, GetWriteWatch n’est pas pris en charge pour les applications 32 bits.

Syntaxe

UINT GetWriteWatch(
  [in]      DWORD     dwFlags,
  [in]      PVOID     lpBaseAddress,
  [in]      SIZE_T    dwRegionSize,
  [out]     PVOID     *lpAddresses,
  [in, out] ULONG_PTR *lpdwCount,
  [out]     LPDWORD   lpdwGranularity
);

Paramètres

[in] dwFlags

Indique si la fonction réinitialise l’état de suivi des écritures.

Pour réinitialiser l’état de suivi des écritures, définissez ce paramètre sur WRITE_WATCH_FLAG_RESET. Si ce paramètre a la valeur 0 (zéro), GetWriteWatch ne réinitialise pas l’état de suivi des écritures. Pour plus d’informations, consultez la section Remarques de cette rubrique.

[in] lpBaseAddress

Adresse de base de la région de mémoire pour laquelle récupérer les informations de suivi des écritures.

Cette adresse doit se trouver dans une région de mémoire allouée par la fonction VirtualAlloc à l’aide de MEM_WRITE_WATCH.

[in] dwRegionSize

Taille de la région de mémoire pour laquelle récupérer les informations de suivi des écritures, en octets.

[out] lpAddresses

Pointeur vers une mémoire tampon qui reçoit un tableau d’adresses de page dans la région de mémoire.

Les adresses indiquent les pages qui ont été écrites dans depuis que la région a été allouée ou que l’état de suivi de l’écriture a été réinitialisé.

[in, out] lpdwCount

Lors de l’entrée, cette variable indique la taille du tableau lpAddresses , dans les éléments du tableau.

À la sortie, la variable reçoit le nombre d’adresses de page retournées dans le tableau.

[out] lpdwGranularity

Pointeur vers une variable qui reçoit la taille de page, en octets.

Valeur retournée

Si la fonction réussit, la valeur de retour est 0 (zéro).

Si la fonction échoue, la valeur de retour est une valeur différente de zéro.

Notes

Lorsque vous appelez la fonction VirtualAlloc pour réserver ou valider de la mémoire, vous pouvez spécifier MEM_WRITE_WATCH. Cette valeur permet au système de suivre les pages écrites dans la région de mémoire validée. Vous pouvez appeler la fonction GetWriteWatch pour récupérer les adresses des pages qui ont été écrites depuis que la région a été allouée ou que l’état de suivi de l’écriture a été réinitialisé.

Pour réinitialiser l’état de suivi des écritures, définissez la valeur WRITE_WATCH_FLAG_RESET dans le paramètre dwFlags . Vous pouvez également appeler la fonction ResetWriteWatch pour réinitialiser l’état de suivi des écritures. Toutefois, si vous utilisez ResetWriteWatch, vous devez vous assurer qu’aucun thread n’écrit dans la région pendant l’intervalle entre les appels GetWriteWatch et ResetWriteWatch . Sinon, il peut y avoir des pages écrites que vous ne détectez pas.

La fonction GetWriteWatch peut être utile pour les profileurs, les outils de débogage ou les récupérateurs de mémoire.

Spécifications

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête memoryapi.h (inclure Windows.h, Memoryapi.h)
Bibliothèque onecore.lib
DLL Kernel32.dll

Voir aussi

Fonctions de gestion de la mémoire

ResetWriteWatch

VirtualAlloc