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 |