Makro FsRtlAllocatePoolWithQuotaTag (ntifs.h)
Rutinitas FsRtlAllocatePoolWithQuotaTag mengalokasikan memori kumpulan, mengisi kuota terhadap proses saat ini.
Sintaks
void FsRtlAllocatePoolWithQuotaTag(
[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.
[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, FsRtlAllocatePoolWithQuotaTag menimbulkan pengecualian STATUS_INSUFFICIENT_RESOURCES. Untuk mendapatkan kontrol jika kegagalan alokasi kumpulan ini terjadi, driver harus membungkus panggilan ke FsRtlAllocatePoolWithQuotaTag 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 FsRtlAllocatePoolWithQuotaTag tidak diinisialisasi. Driver mode kernel harus terlebih dahulu nol memori ini jika akan membuatnya terlihat oleh perangkat lunak mode pengguna (untuk menghindari kebocoran konten yang berpotensi istimewa).
Penelepon FsRtlAllocatePoolWithQuotaTag harus berjalan di IRQL <= DISPATCH_LEVEL. Penelepon di DISPATCH_LEVEL harus menentukan NonPaged****XxxPoolType. Jika tidak, pemanggil harus berjalan di IRQL < DISPATCH_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