Fungsi ExAllocatePool3 (wdm.h)
Rutinitas ExAllocatePool3 mengalokasikan memori kumpulan dari jenis yang ditentukan dan mengembalikan penunjuk ke blok yang dialokasikan. Rutinitas ini mirip dengan ExAllocatePool2 tetapi menambahkan parameter yang diperluas.
Sintaks
DECLSPEC_RESTRICT PVOID ExAllocatePool3(
POOL_FLAGS Flags,
SIZE_T NumberOfBytes,
ULONG Tag,
PCPOOL_EXTENDED_PARAMETER ExtendedParameters,
ULONG ExtendedParametersCount
);
Parameter
Flags
Nilai jenis ULONG64 yang menentukan jenis memori kumpulan bersama dengan atribut yang diperlukan dan opsional. Beberapa nilai bendera dapat digabungkan menggunakan bit-wise OR. Lihat POOL_FLAGS untuk nilai yang mungkin.
NumberOfBytes
Menentukan jumlah byte bukan nol untuk 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.
ExtendedParameters
Penunjuk ke array struktur POOL_EXTENDED_PARAMETER yang menentukan atribut tambahan untuk alokasi.
ExtendedParametersCount
Nilai ULONG yang menentukan jumlah parameter di ExtendedParameters.
Nilai kembali
ExAllocatePool3 mengembalikan pointer ke memori yang dialokasikan.
Kondisi berikut menyebabkan fungsi mengembalikan NULL secara default. Jika POOL_FLAG_RAISE_ON_FAILURE ditentukan, fungsi akan menimbulkan pengecualian.
- Memori tidak mencukuum
- Tag diatur ke 0 atau POOL_FLAGS tidak valid ditentukan
- Struktur POOL_EXTENDED_PARAMETER tidak valid
Keterangan
Jika Anda membangun driver yang menargetkan versi Windows sebelum Windows 10, versi 2004, gunakan ExAllocatePoolPriorityZero atau ExAllocatePoolPriorityUninitialized.
Lihat keterangan ExAllocatePool2 untuk informasi tambahan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10, version 2004 |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (lihat bagian Keterangan) |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo |