XMemGetWriteWatch
Récupère l’adresse des pages qui ont fait l’objet d’écritures dans une plage d’adresses virtuelles.Syntaxe
Paramètres
dwFlags _In_Type : DWORD Indique si l’état du suivi des écritures est réinitialisé après l’appel à XMemGetWriteWatch. Spécifiez
WRITE_WATCH_FLAG_RESET pour indiquer que le suivi des écritures doit être réinitialisé. Sinon, spécifiez 0.
lpBaseAddress _In_Type : PVOID Adresse de base de la plage pour laquelle récupérer les informations de suivi des écritures. dwRegionSize _In_
Type : SIZE_T Taille de la plage pour laquelle récupérer les informations de suivi des écritures. lpAddresses _Out_writes_to_opt_(*lpdwCount,*lpdwCount)
Type : PVOID Pointeur vers une mémoire tampon qui reçoit un tableau des adresses des pages ayant fait l’objet d’écritures pour la plage d’adresses. lpdwCount _Inout_opt_
Type : ULONG_PTR* En entrée, fournit le nombre d’éléments du tableau lpAddresses.
En sortie, contient le nombre d’éléments de tableau renvoyés. lpdwGranularity _Out_opt_
Type : LPDWORD Pointeur vers une variable qui reçoit la taille de page, en octets.
Valeur renvoyée
Type : UINT En cas de réussite, XMemGetWriteWatch renvoie 0. Si la fonction échoue, la valeur renvoyée est différente de zéro.Remarques
En fonctionnement normal, XMemGetWriteWatch est très similaire à GetWriteWatch. Toutefois, comme les captures GPU PIX nécessitent également le suivi des écritures, XMemGetWriteWatch présente un comportement supplémentaire lorsque des captures GPU PIX se produisent. Lorsqu’une capture GPU PIX se produit, le suivi des écritures est suspendu pour le titre. Cela est signalé par le renvoi deERROR_CAN_NOT_COMPLETE par XMemGetWriteWatch. Cette valeur continue d’être renvoyée par XMemGetWriteWatch jusqu’à ce qu’un appel à XMemResumeWriteWatch soit effectué (une fois la capture GPU terminée) pour indiquer que l’appelant est prêt à reprendre le suivi des écritures. L’état du suivi des écritures est inconnu pour toutes les plages d’adresses virtuelles MEM_WRITE_WATCH une fois qu’une capture GPU PIX est terminée. Il incombe à l’appelant de rétablir une référence de base attendue pour l’état du suivi des écritures de chaque plage surveillée. Pour ce faire, vous pouvez appeler XMemResetWriteWatch, appeler XMemGetWriteWatch avec WRITE_WATCH_FLAG_RESET ou écrire intentionnellement dans les régions MEM_WRITE_WATCH.
