Makro FsRtlAllocatePoolWithTag (ntifs.h)
Rutinitas FsRtlAllocatePoolWithTag mengalokasikan memori kumpulan.
Sintaks
void FsRtlAllocatePoolWithTag(
[in] PoolType,
[in] NumberOfBytes,
[in] Tag
);
Parameter
[in] PoolType
Jenis kumpulan yang akan dialokasikan. Salah satu dari berikut ini:
- NonPagedPool
- PagedPool
- NonPagedPoolCacheAligned
- PagedPoolCacheAligned
Jenis kumpulan NonPagedPoolMustSucceed dan NonPagedPoolCacheAlignedMustS sudah usang dan tidak boleh lagi digunakan.
[in] NumberOfBytes
Jumlah byte yang akan dialokasikan. Parameter ini diperlukan dan tidak boleh nol.
[in] Tag
Menentukan tag kumpulan untuk memori yang dialokasikan. Driver biasanya menentukan tag kumpulan sebagai string satu hingga empat karakter ASCII 7-bit, dibatasi oleh tanda kutip tunggal (misalnya, 'abcd'). Parameter ini diperlukan dan tidak boleh nol.
Mengembalikan nilai
Tidak ada
Keterangan
Jika kegagalan alokasi kumpulan terjadi, FsRtlAllocatePoolWithTag menimbulkan pengecualian STATUS_INSUFFICIENT_RESOURCES. Untuk mendapatkan kontrol jika kegagalan alokasi kumpulan ini terjadi, driver harus membungkus panggilan ke FsRtlAllocatePoolWithTag dalam pernyataan try-except atau try-finally .
Sistem mengaitkan tag kumpulan yang ditentukan oleh parameter Tag dengan buffer yang dialokasikan. Alat pemrograman, seperti Windows Debugger (WinDbg), dapat menampilkan tag kumpulan yang terkait dengan setiap buffer yang dialokasikan. Nilai tag kumpulan biasanya ditampilkan dalam urutan terbalik. Misalnya, jika penelepon meneruskan 'Fred' sebagai nilai parameter Tag , nilai ini akan muncul sebagai 'derF' jika kumpulan dicadangkan atau saat melacak penggunaan kumpulan di debugger.
Untuk informasi selengkapnya tentang manajemen memori, lihat Manajemen Memori.
Memori yang dialokasikan FsRtlAllocatePoolWithTag tidak diinisialisasi. Driver mode-kernel harus terlebih dahulu nol memori ini jika akan membuatnya terlihat oleh perangkat lunak mode pengguna (untuk menghindari bocornya konten yang berpotensi istimewa).
Penelepon FsRtlAllocatePoolWithTag harus berjalan di IRQL <= DISPATCH_LEVEL. Penelepon di DISPATCH_LEVEL harus menentukan PoolTypeNonPaged Xxx. Jika tidak, pemanggil harus berjalan di IRQL <= APC_LEVEL.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (lihat bagian Keterangan) |
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