Fungsi FsRtlAllocateExtraCreateParameterList (ntifs.h)

Rutinitas FsRtlAllocateExtraCreateParameterList mengalokasikan memori kumpulan halaman untuk struktur ECP_LIST dan menghasilkan penunjuk ke struktur tersebut.

Sintaks

NTSTATUS FsRtlAllocateExtraCreateParameterList(
  [in]  FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
  [out] PECP_LIST                    *EcpList
);

Parameter

[in] Flags

Menentukan opsi alokasi kumpulan. Jika bendera FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA digabungkan dengan parameter Bendera dengan menggunakan operasi bitwise OR, kumpulan apa pun yang dialokasikan oleh FsRtlAllocateExtraCreateParameterList akan dikenakan terhadap kuota memori proses saat ini.

[out] EcpList

Menerima penunjuk ke struktur daftar ECP yang diinisialisasi. Jika FsRtlAllocateExtraCreateParameterList gagal mengalokasikan kumpulan yang cukup, *EcpList akan menjadi NULL dan FsRtlAllocateExtraCreateParameterList akan mengembalikan kode status STATUS_INSUFFICIENT_RESOURCES.

Nilai kembali

FsRtlAllocateExtraCreateParameterList dapat mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_INSUFFICIENT_RESOURCES FsRtlAllocateExtraCreateParameterList tidak dapat mengalokasikan memori yang cukup untuk struktur daftar ECP. Dalam hal ini, *EcpList akan menjadi NULL.
STATUS_SUCCESS Memori untuk struktur ECP_LIST berhasil dialokasikan dan diinisialisasi. Dalam hal ini, penunjuk ke struktur daftar yang diinisialisasi dikembalikan dalam parameter EcpList .

Keterangan

Apakah sistem operasi secara otomatis membebaskan memori yang dipanggil FsRtlAllocateExtraCreateParameterList bergantung pada kapan FsRtlAllocateExtraCreateParameterList dipanggil, seperti yang ditunjukkan dalam situasi berikut:

  • Pemanggil dapat memanggil FsRtlAllocateExtraCreateParameterList untuk mengalokasikan ECP_LIST dan menambahkan satu atau beberapa struktur konteks ECP sebelum pemanggil memanggil rutinitas IoCreateFileEx . Dalam situasi ini, sistem operasi tidak membebaskan salah satu struktur konteks ECP. Oleh karena itu, pemanggil dapat melakukan beberapa panggilan ke IoCreateFileEx dengan set ECP yang sama. Ketika pemanggil dilakukan dengan ECP_LIST, pemanggil harus memanggil rutinitas FltFreeExtraCreateParameter untuk membebaskan ECP_LIST.

  • Saat sistem file atau driver filter sistem file memproses permintaan IRP_MJ_CREATE , sistem file atau driver filter sistem file dapat memanggil FltInsertExtraCreateParameter untuk melampirkan ECP ke ECP_LIST yang ada. Jika ECP_LIST tidak ada, pemanggil harus memanggil FsRtlAllocateExtraCreateParameterList untuk membuat ECP_LIST. Dalam situasi ini, ECP_LIST dan struktur konteks ECP secara otomatis dibersihkan oleh manajer I/O ketika operasi pembuatan selesai. Hal ini memungkinkan ECP sistem file atau driver filter disebarluaskan dengan benar di seluruh pemrosesan titik pemilah ulang. Proses ini mungkin memerlukan beberapa permintaan IRP_MJ_CREATE untuk dihasilkan.

Jika bendera FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA digunakan dengan parameter Bendera , kumpulan yang dapat dipakai dialokasikan. Jika tidak, kumpulan yang dapat di-pageable dialokasikan dengan menggunakan daftar tampilan internal.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Target Platform Universal
Header ntifs.h (termasuk Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Lihat juga

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx