Fungsi NdisAllocateBufferPool (ndis.h)

Catatan NDIS 5. x telah tidak digunakan lagi dan digantikan oleh NDIS 6. x. Untuk pengembangan driver NDIS baru, lihat Driver Jaringan Yang Dimulai dengan Windows Vista. Untuk informasi tentang port NDIS 5. x driver ke NDIS 6. x, lihat Memindahkan Driver NDIS 5.x ke NDIS 6.0.

Fungsi ini mengembalikan handel di mana pemanggil dapat mengalokasikan deskriptor buffer dengan memanggil fungsi NdisAllocateBuffer .

Sintaks

void NdisAllocateBufferPool(
  [out] PNDIS_STATUS Status,
  [out] PNDIS_HANDLE PoolHandle,
  [in]  UINT         NumberOfDescriptors
);

Parameter

[out] Status

Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan status akhir alokasi kumpulan buffer.

[out] PoolHandle

Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan handel ke kumpulan buffer. Handel ini adalah parameter yang diperlukan untuk fungsi buffer NDIS yang kemudian dipanggil driver.

[in] NumberOfDescriptors

Menentukan jumlah deskriptor buffer yang diharapkan pemanggil untuk mengalokasikan dari kumpulan buffer tanpa merilis deskriptor buffer yang dialokasikan kembali ke kumpulan.

Nilai kembali

Tidak ada

Keterangan

Selalu mengembalikan NDIS_STATUS_SUCCESS.

Setelah fungsi ini kembali, driver memanggil fungsi NdisAllocateBuffer satu atau beberapa kali untuk mengalokasikan deskriptor buffer yang diperlukan. Driver harus memanggil fungsi ini selama inisialisasi.

Parameter NumberOfDescriptors yang ditentukan oleh driver NIC biasanya tergantung pada fitur NIC. Misalnya, pengemudi master bus DMA NIC dengan buffer cincin akan menentukan setidaknya NumberOfDescriptors yang cukup besar untuk memetakan cincin penuh.

NumberOfDescriptors yang ditentukan dalam panggilan ke fungsi ini adalah batas efektif pada berapa kali driver dapat memanggil NdisAllocateBuffer sebelum harus memanggil fungsi NdisFreeBuffer untuk mengembalikan deskriptor buffer ke daftar gratis untuk kumpulan buffer.

Ketika driver tidak lagi membutuhkan kumpulan buffer yang dialokasikannya, driver memanggil fungsi NdisFreeBufferPool untuk melepaskan handel kumpulan buffer.

Driver harus melepaskan kunci putar apa pun yang dipegangnya sebelum memanggil fungsi ini.

Semua driver NDIS tingkat bawah harus mengalokasikan semua deskriptor buffer yang mereka rantai ke paket dari kumpulan buffer. Hanya driver protokol tingkat tertinggi yang dapat diberikan deskriptor yang bergantung pada OS yang memetakan rentang memori virtual. Jika deskriptor memori ini setara dengan deskriptor buffer NDIS, protokol tingkat tertinggi dapat meneruskan deskriptor tersebut sebagai parameter ke fungsi NDIS.

Versi OS: Windows CE .NET 4.0 dan yang lebih baru.

Persyaratan

Persyaratan Nilai
Header ndis.h
IRQL IRQL <= DISPATCH_LEVEL

Lihat juga