Fungsi NdisInitializeNPagedLookasideList (ndis.h)
Fungsi NdisInitializeNPagedLookasideList menginisialisasi daftar lookaside. Setelah inisialisasi berhasil, blok ukuran tetap yang tidak disebarkan dapat dialokasikan dari dan dikosongkan ke daftar lookaside.
Sintaks
void NdisInitializeNPagedLookasideList(
[in] PNPAGED_LOOKASIDE_LIST Lookaside,
[in, optional] PALLOCATE_FUNCTION Allocate,
[in, optional] PFREE_FUNCTION Free,
[in] ULONG Flags,
[in] SIZE_T Size,
[in] ULONG Tag,
[in] USHORT Depth
);
Parameter
[in] Lookaside
Penunjuk ke struktur NPAGED_LOOKASIDE_LIST yang berisi kepala daftar lookaside yang disediakan penelepon yang akan diinisialisasi. Struktur harus selaras 16 byte pada platform 64-bit. Driver harus menyediakan kepala daftar yang merupakan residen—yaitu, di ruang sistem yang tidak di-pembayaran.
[in, optional] Allocate
Titik entri fungsi yang NULL atau menentukan titik masuk fungsi Alokasi yang disediakan penelepon yang akan mengalokasikan entri ukuran yang ditentukan dalam anggota Ukuran setiap kali dipanggil. Jika AlokasikanADALAH NULL, Fungsi NdisAllocateFromNPagedLookasideList kemudian mengalokasikan entri atas nama pemanggil. Jika pemanggil menyediakan fungsi Alokasi , pemanggil juga harus menyediakan fungsi Gratis .
[in, optional] Free
Titik entri fungsi yang NULL atau menentukan titik masuk fungsi Gratis yang disediakan pemanggil yang akan membebaskan entri ukuran yang ditentukan dalam anggota Ukuran setiap kali dipanggil. Jika GratisADALAH NULL, Fungsi NdisFreeToNPagedLookasideList kemudian membebaskan entri atas nama pemanggil.
[in] Flags
Harus nol. Parameter ini dicadangkan.
[in] Size
Ukuran, dalam byte, dari setiap entri yang kemudian dialokasikan dari daftar lookaside.
[in] Tag
Tag kumpulan yang disediakan penelepon untuk entri daftar lookaside. Tag adalah string empat karakter yang dibatasi oleh tanda kutip tunggal (misalnya, 'derF'). Karakter biasanya ditentukan dalam urutan terbalik sehingga lebih mudah dibaca saat mencadangkan kumpulan atau melacak penggunaan kumpulan dalam debugger.
[in] Depth
Harus nol. Parameter ini juga dicadangkan.
Nilai kembali
Tidak ada
Keterangan
NdisInitializeNPagedLookasideList menginisialisasi kepala daftar yang disediakan pemanggil tetapi tidak mengalokasikan memori untuk entri daftar. Entri awal dialokasikan sesuai kebutuhan baik dengan panggilan ke Fungsi NdisAllocateFromNPagedLookasideList atau oleh fungsi panggilan balik Alokasi yang disediakan driver di parameter Alokasikan . Daftar diisi saat driver membebaskan entri kembali ke daftar dengan Fungsi NdisFreeToNPagedLookasideList . Entri dikumpulkan dalam daftar hingga batas yang ditentukan sistem tetapi berukuran dinamis tercapai. Kemudian, setiap entri surplus dalam daftar lookaside dikembalikan ke kumpulan yang tidak di-patahkan, baik oleh NdisFreeToNPagedLookasideList atau dengan panggilan ke fungsi panggilan balik Gratis yang disediakan driver pada parameter Gratis .
Semua entri dalam daftar lookaside berukuran sama, yang ditentukan dalam parameter Ukuran . Daftar lookaside sangat berguna bagi driver yang harus secara dinamis mengalokasikan dan bebas area konteks ukuran tetap untuk mempertahankan status run-time tentang operasi I/O yang luar biasa. Misalnya, driver NDIS yang berorientasi koneksi cenderung menemukan daftar lookaside yang sangat berguna karena driver tersebut biasanya mempertahankan serangkaian area konteks dinamis untuk melacak panggilan keluar dan masuk.
Lebih efisien bagi pengemudi untuk mengizinkan NdisAllocateFromNPagedLookasideList dan Fungsi NdisFreeToNPagedLookasideList untuk mengelola alokasi dan dealokasi entri (lihat fungsi ExAllocatePoolWithTag dan ExFreePool ). Namun, driver yang melacak status secara internal tentang penggunaan memorinya mungkin menyediakan fungsi Alokasi dan Gratis ke NdisInitializeNPagedLookasideList.
Penelepon NdisInitializeNPagedLookasideList harus berjalan di IRQL <= DISPATCH_LEVEL, tetapi biasanya berjalan pada PASSIVE_LEVEL.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung untuk driver NDIS 6.0 dan NDIS 5.1 (lihat NdisInitializeNPagedLookasideList (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat NdisInitializeNPagedLookasideList (NDIS 5.1)) di Windows XP. |
Target Platform | Desktop |
Header | ndis.h (termasuk Ndis.h) |
IRQL | <= DISPATCH_LEVEL (lihat bagian Keterangan) |
Aturan kepatuhan DDI | Irql_Miscellaneous_Function(ndis) |
Lihat juga
NdisAllocateFromNPagedLookasideList NdisDeleteNPagedLookasideList NdisFreeToNPagedLookasideListSaran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk