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

Lihat juga

ExAllocatePool2