Fungsi FltAllocateExtraCreateParameterFromLookasideList (fltkernel.h)
Rutinitas FltAllocateExtraCreateParameterFromLookasideList mengalokasikan kumpulan memori dari daftar lookaside tertentu untuk struktur konteks parameter buat tambahan (ECP) dan menghasilkan penunjuk ke struktur tersebut.
Sintaks
NTSTATUS FLTAPI FltAllocateExtraCreateParameterFromLookasideList(
[in] PFLT_FILTER Filter,
[in] LPCGUID EcpType,
[in] ULONG SizeOfContext,
[in] FSRTL_ALLOCATE_ECP_FLAGS Flags,
[in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
[in, out] PVOID LookasideList,
[out] PVOID *EcpContext
);
Parameter
[in] Filter
Penunjuk filter buram ke driver minifilter. Pointer ini secara unik mengidentifikasi driver minifilter dan tetap konstan selama driver minifilter dimuat.
[in] EcpType
Penunjuk ke GUID yang menunjukkan jenis struktur konteks ECP. Lihat Menggunakan GUID di Driver untuk informasi selengkapnya.
[in] SizeOfContext
Ukuran, dalam byte, dari struktur konteks ECP.
[in] Flags
Menentukan opsi alokasi kumpulan. Jika nilai parameter SizeOfContext lebih besar dari ukuran, dalam byte, dari daftar lookaside yang diberikan, struktur konteks ECP akan dialokasikan dari kumpulan sistem alih-alih daftar lookaside. Dalam hal ini, jika parameter Bendera berisi nilai bendera bit FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA, kumpulan sistem yang dialokasikan oleh rutinitas akan dikenakan terhadap kuota memori proses saat ini. Lihat parameter BenderaFltAllocateExtraCreateParameter untuk informasi selengkapnya. Dalam kasus yang lebih umum ketika memori untuk struktur konteks ECP dialokasikan dari daftar lookaside, bendera FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA bit tidak digunakan oleh rutinitas.
[in, optional] CleanupCallback
Penunjuk opsional ke rutinitas panggilan balik pembersihan tipe PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK yang ditentukan minifilter. Rutinitas panggilan balik pembersihan dipanggil ketika struktur konteks ECP dihapus. Atur parameter ini ke NULL jika rutinitas panggilan balik pembersihan tidak berlaku.
[in, out] LookasideList
Arahkan ke daftar tampilan yang diinisialisasi untuk mencoba mengalokasikan kumpulan dari (untuk struktur konteks ECP). Untuk menginisialisasi daftar lookaside, gunakan rutinitas FltInitExtraCreateParameterLookasideList .
[out] EcpContext
Menerima penunjuk ke struktur konteks ECP yang dialokasikan. Jika rutinitas gagal mengalokasikan kumpulan yang memadai untuk struktur konteks ECP, EcpContext akan menjadi NULL dan rutinitas akan mengembalikan kode status STATUS_INSUFFICIENT_RESOURCES.
Nilai kembali
Rutinitas FltAllocateExtraCreateParameterFromLookasideList dapat mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Rutinitas FltAllocateExtraCreateParameterFromLookasideList tidak dapat mengalokasikan memori yang cukup untuk struktur konteks ECP. Dalam hal ini, EcpContext akan menjadi NULL. |
STATUS_SUCCESS | Struktur konteks ECP berhasil dialokasikan. Dalam hal ini, penunjuk ke struktur yang dialokasikan dikembalikan oleh parameter EcpContext . |
Keterangan
Rutinitas ini tersedia dimulai dengan Windows Vista.
Rutinitas FltAllocateExtraCreateParameterFromLookasideList mengalokasikan kumpulan memori untuk struktur konteks ECP dari daftar tampilan halaman yang diinisialisasi atau non-halaman yang diberikan. Namun, jika ukuran struktur konteks ECP (seperti yang didefinisikan oleh parameter SizeOfContext ) lebih besar dari daftar lookaside, rutinitas secara analog mengalokasikan memori dari kumpulan sistem halaman atau non-halaman.
Gunakan rutinitas FltInitExtraCreateParameterLookasideList untuk menginisialisasi daftar tampilan kumpulan halaman atau non-halaman. Gunakan rutinitas FltAllocateExtraCreateParameterFromLookasideList untuk mengalokasikan struktur konteks ECP dari daftar lookaside, dan rutinitas FltFreeExtraCreateParameter untuk membatalkan alokasi struktur konteks ECP.
Gunakan rutinitas FltDeleteExtraCreateParameterLookasideList untuk membebaskan daftar lookaside.
Driver harus membebaskan semua struktur konteks ECP dan daftar lookaside yang mereka buat sebelum membongkar. Namun, jika sistem file atau driver filter sistem file melampirkan ECP ke ECP_LIST yang sudah ada atau yang baru dibuat saat memproses permintaan IRP_MJ_CREATE, ECP ini secara otomatis dibersihkan ketika IRP selesai. Akibatnya, driver filter tidak harus membersihkan ECP yang ditambahkan secara dinamis. Hal ini memungkinkan ECP driver filter untuk disebarluaskan dengan benar di seluruh titik reparse--proses yang dapat memerlukan beberapa permintaan IRP_MJ_CREATE untuk dihasilkan.
Untuk informasi selengkapnya tentang menggunakan daftar lookaside dengan driver, lihat Menggunakan lookaside Lists.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | fltkernel.h (termasuk Fltkernel.h) |
Pustaka | FltMgr.lib |
IRQL | <= APC_LEVEL |
Lihat juga
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterList
FltDeleteExtraCreateParameterLookasideList
FltFreeExtraCreateParameterList