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

Vedere anche

Funzioni di gestione della memoria

ResetWriteWatch

Virtualalloc