Fungsi GetWriteWatch (memoryapi.h)

Mengambil alamat halaman yang ditulis di wilayah memori virtual.

Windows 64-bit pada sistem berbasis Itanium: Karena perbedaan ukuran halaman, GetWriteWatch tidak didukung untuk aplikasi 32-bit.

Sintaks

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

Parameter

[in] dwFlags

Menunjukkan apakah fungsi mengatur ulang status pelacakan tulis.

Untuk mengatur ulang status pelacakan tulis, atur parameter ini ke WRITE_WATCH_FLAG_RESET. Jika parameter ini adalah 0 (nol), GetWriteWatch tidak mengatur ulang status pelacakan tulis. Untuk informasi selengkapnya, lihat bagian Keterangan dari topik ini.

[in] lpBaseAddress

Alamat dasar wilayah memori untuk mengambil informasi pelacakan tulis.

Alamat ini harus berada di wilayah memori yang dialokasikan oleh fungsi VirtualAlloc menggunakan MEM_WRITE_WATCH.

[in] dwRegionSize

Ukuran wilayah memori untuk mengambil informasi pelacakan tulis, dalam byte.

[out] lpAddresses

Penunjuk ke buffer yang menerima array alamat halaman di wilayah memori.

Alamat menunjukkan halaman yang telah ditulis sejak wilayah dialokasikan atau status pelacakan tulis telah direset.

[in, out] lpdwCount

Pada input, variabel ini menunjukkan ukuran array lpAddresses , dalam elemen array.

Pada output, variabel menerima jumlah alamat halaman yang dikembalikan dalam array.

[out] lpdwGranularity

Penunjuk ke variabel yang menerima ukuran halaman, dalam byte.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah 0 (nol).

Jika fungsi gagal, nilai yang dikembalikan adalah nilai bukan nol.

Keterangan

Saat Anda memanggil fungsi VirtualAlloc untuk mencadangkan atau menerapkan memori, Anda dapat menentukan MEM_WRITE_WATCH. Nilai ini menyebabkan sistem melacak halaman yang ditulis di wilayah memori yang diterapkan. Anda dapat memanggil fungsi GetWriteWatch untuk mengambil alamat halaman yang telah ditulis karena wilayah telah dialokasikan atau status pelacakan tulis telah direset.

Untuk mengatur ulang status pelacakan tulis, atur nilai WRITE_WATCH_FLAG_RESET dalam parameter dwFlags . Atau, Anda dapat memanggil fungsi ResetWriteWatch untuk mengatur ulang status pelacakan tulis. Namun, jika Anda menggunakan ResetWriteWatch, Anda harus memastikan bahwa tidak ada utas yang menulis ke wilayah selama interval antara panggilan GetWriteWatch dan ResetWriteWatch . Jika tidak, mungkin ada halaman tertulis yang tidak Anda deteksi.

Fungsi GetWriteWatch dapat berguna untuk profiler, alat penelusuran kesalahan, atau pengumpul sampah.

Persyaratan

   
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header memoryapi.h (termasuk Windows.h, Memoryapi.h)
Pustaka onecore.lib
DLL Kernel32.dll

Lihat juga

Fungsi Manajemen Memori

ResetWriteWatch

VirtualAlloc