NDIS_POLL fungsi panggilan balik (poll.h)

Driver Miniport menerapkan fungsi panggilan balik NdisPoll yang akan dijajaki NDIS untuk menerima indikasi dan mengirim penyelesaian.

Sintaks

NDIS_POLL NdisPoll;

void() NdisPoll(
  [_In_]    void *Context,
  [_Inout_] NDIS_POLL_DATA *PollData
)
{...}

Parameter

[_In_] Context

Penunjuk ke informasi konteks yang disediakan driver saat membuat objek Polling.

[_Inout_] PollData

Penunjuk ke struktur NDIS_POLL_DATA yang harus digunakan driver untuk melakukan indikasi terima dan mengirim penyelesaian. Ini juga berisi detail tentang berapa banyak NBL yang perlu ditunjukkan.

Keterangan

Driver Miniport mendaftarkan panggilan balik NdisPoll selama inisialisasi adaptor miniport. Driver menentukan titik masuk untuk fungsi NdisPoll pada parameter PollHandler dari struktur NDIS_POLL_CHARACTERISTICS sebelum memanggil NdisRegisterPoll.

NDIS pertama-tama akan memanggil panggilan balik NdisPoll ketika driver memanggil NdisRequestPoll. NDIS akan terus memanggil NdisPoll saat driver membuat kemajuan maju pada indikasi penerimaan atau mengirimkan penyelesaian.

Panggilan balik NdisPoll dapat dipanggil di IRQL PASSIVE_LEVEL dan DISPATCH_LEVEL. Driver seharusnya tidak membuat asumsi tentang tingkat mana itu akan.

Driver harus memeriksa parameter penerimaan atau pengiriman struktur NDIS_POLL_DATA untuk mendapatkan jumlah maksimum NBL yang dapat ditunjukkan atau diselesaikan.

Untuk menerima indikasi, driver harus:

  1. Ambil hingga jumlah maksimum paket Rx yang dapat ditunjukkannya.
  2. Menginisialisasi NBL.
  3. Tambahkan ke antrean NBL yang disediakan oleh struktur NDIS_POLL_RECEIVE_DATA (terletak di struktur NDIS_POLL_DATA parameter NdisPollPollData ).
  4. Keluar dari panggilan balik.

Untuk penyelesaian pengiriman, driver harus:

  1. Ambil hingga jumlah maksimum paket Tx yang dapat diselesaikannya.
  2. Lengkapi NBL.
  3. Tambahkan ke antrean NBL yang disediakan oleh struktur NDIS_POLL_TRANSMIT_DATA (terletak di struktur NDIS_POLL_DATA parameter NdisPollPollData ).
  4. Keluar dari panggilan balik.

Driver tidak boleh mengaktifkan interupsi objek Polling sebelum keluar dari fungsi NdisPoll . NDIS akan terus melakukan polling driver sampai menilai bahwa tidak ada kemajuan ke depan yang dibuat. Pada titik ini NDIS akan berhenti melakukan polling dan meminta driver untuk mengaktifkan kembali interupsi dengan memanggil panggilan balik NdisSetPollNotification .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 11
Server minimum yang didukung Windows Server 2022
Header poll.h (termasuk ndis.h)
IRQL <= DISPATCH_LEVEL

Lihat juga

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll