Fungsi ExAllocatePoolQuotaUninitialized (wdm.h)

Rutinitas ExAllocatePoolQuotaUninitialized mengalokasikan memori kumpulan, mengisi daya kuota terhadap proses saat ini.

Rutinitas ini adalah opsi pembungkus dan penggantian untuk ExAllocatePoolWithQuotaTag. Tidak ada perbedaan dalam fungsionalitas.

Sintaks

PVOID ExAllocatePoolQuotaUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag
);

Parameter

PoolType

Jenis memori kumpulan yang akan dialokasikan. Untuk deskripsi jenis memori kumpulan yang tersedia, lihat POOL_TYPE.

Demikian pula, Anda dapat memodifikasi nilai PoolType dengan bitwise-ORing nilai ini dengan bendera POOL_COLD_ALLOCATION (juga didefinisikan dalam wdm.h) sebagai petunjuk kernel untuk mengalokasikan memori dari halaman yang kemungkinan akan di-page out dengan cepat. Untuk mengurangi jumlah memori kumpulan penduduk sebanyak mungkin, Anda tidak boleh sering mereferensikan alokasi ini. Bendera POOL_COLD_ALLOCATION hanyalah nasihat.

NumberOfBytes

Jumlah byte yang akan dialokasikan.

Tag

Tag kumpulan yang digunakan untuk memori yang dialokasikan. Tentukan tag kumpulan sebagai literal karakter bukan nol dari satu hingga empat karakter yang dibatasi oleh tanda kutip tunggal (misalnya, Tag1). String biasanya ditentukan dalam urutan terbalik (misalnya, 1gaT). Setiap karakter ASCII dalam tag harus berupa nilai dalam rentang 0x20 (spasi) hingga 0x7E (tilde). Setiap jalur kode alokasi harus menggunakan tag kumpulan unik untuk membantu debugger dan verifier mengidentifikasi jalur kode.

Mengembalikan nilai

ExAllocatePoolQuotaUninitialized mengembalikan pointer ke kumpulan yang dialokasikan.

Jika permintaan tidak dapat dipenuhi, ExAllocatePoolQuotaUninitialized menimbulkan pengecualian kecuali POOL_QUOTA_FAIL_INSTEAD_OF_RAISE ditentukan. Menggunakan POOL_QUOTA_FAIL_INSTEAD_OF_RAISE lebih disukai karena alasan performa.

Keterangan

Rutinitas ini disebut oleh driver tingkat tertinggi yang mengalokasikan memori untuk memenuhi permintaan dalam konteks proses yang awalnya membuat permintaan I/O. Driver tingkat bawah memanggil ExAllocatePoolUninitialized sebagai gantinya.

Memori yang dialokasikan ExAllocatePoolQuotaUninitialized 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)

Lihat bagian Keterangandari ExAllocatePoolWithQuotaTag untuk panduan tambahan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Memerlukan WDK untuk Windows 10, versi 2004. Menargetkan Windows 7 dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL (lihat bagian Keterangan)
Aturan kepatuhan DDI HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo

Lihat juga

ExAllocatePoolQuotaZero

ExAllocatePoolWithQuotaTag