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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk