Funzione GetWriteWatch (memoryapi.h)
Recupera gli indirizzi delle pagine scritte in in un'area di memoria virtuale.
Windows a 64 bit nei sistemi basati su Itanium: A causa della differenza nelle dimensioni di pagina, GetWriteWatch non è supportato per le applicazioni a 32 bit.
Sintassi
UINT GetWriteWatch(
[in] DWORD dwFlags,
[in] PVOID lpBaseAddress,
[in] SIZE_T dwRegionSize,
[out] PVOID *lpAddresses,
[in, out] ULONG_PTR *lpdwCount,
[out] LPDWORD lpdwGranularity
);
Parametri
[in] dwFlags
Indica se la funzione reimposta lo stato di rilevamento della scrittura.
Per reimpostare lo stato di rilevamento della scrittura, impostare questo parametro su WRITE_WATCH_FLAG_RESET. Se questo parametro è 0 (zero), GetWriteWatch non reimposta lo stato di rilevamento della scrittura. Per altre informazioni, vedere la sezione Osservazioni di questo argomento.
[in] lpBaseAddress
Indirizzo di base dell'area di memoria per cui recuperare le informazioni di rilevamento della scrittura.
Questo indirizzo deve trovarsi in un'area di memoria allocata dalla funzione VirtualAlloc usando MEM_WRITE_WATCH.
[in] dwRegionSize
Dimensioni dell'area di memoria per cui recuperare le informazioni di rilevamento della scrittura, in byte.
[out] lpAddresses
Puntatore a un buffer che riceve una matrice di indirizzi di pagina nell'area di memoria.
Gli indirizzi indicano le pagine scritte in da quando l'area è stata allocata o lo stato di rilevamento delle scritture è stato reimpostato.
[in, out] lpdwCount
In input, questa variabile indica le dimensioni della matrice lpAddresses , negli elementi della matrice.
Nell'output, la variabile riceve il numero di indirizzi di pagina restituiti nella matrice.
[out] lpdwGranularity
Puntatore a una variabile che riceve le dimensioni della pagina, in byte.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è 0 (zero).
Se la funzione ha esito negativo, il valore restituito è un valore diverso da zero.
Commenti
Quando si chiama la funzione VirtualAlloc per riservare o eseguire il commit della memoria, è possibile specificare MEM_WRITE_WATCH. Questo valore fa in modo che il sistema tenga traccia delle pagine scritte nell'area di memoria di cui è stato eseguito il commit. È possibile chiamare la funzione GetWriteWatch per recuperare gli indirizzi delle pagine scritte da quando l'area è stata allocata o lo stato di rilevamento delle scritture è stato reimpostato.
Per reimpostare lo stato di rilevamento della scrittura, impostare il valore WRITE_WATCH_FLAG_RESET nel parametro dwFlags . In alternativa, è possibile chiamare la funzione ResetWriteWatch per reimpostare lo stato di rilevamento della scrittura. Tuttavia, se si usa ResetWriteWatch, è necessario assicurarsi che nessun thread scriva nell'area durante l'intervallo tra le chiamate GetWriteWatch e ResetWriteWatch . In caso contrario, potrebbero essere presenti pagine scritte che non vengono rilevate.
La funzione GetWriteWatch può essere utile per profiler, strumenti di debug o Garbage Collector.
Requisiti
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | memoryapi.h (include Windows.h, Memoryapi.h) |
Libreria | onecore.lib |
DLL | Kernel32.dll |