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

ExAllocatePoolWithTag

ExFreePool

NPAGED_LOOKASIDE_LIST

NdisAllocateFromNPagedLookasideList NdisDeleteNPagedLookasideList NdisFreeToNPagedLookasideList