EVT_NET_ADAPTER_RETURN_RX_BUFFER fungsi panggilan balik (netadapter.h)

Terapkan fungsi panggilan balik opsional ini untuk melakukan pembersihan pada NET_FRAGMENT menerima buffer yang sebelumnya Anda tentukan alokasi dan lampiran fragmen manualnya.

Sintaks

EVT_NET_ADAPTER_RETURN_RX_BUFFER EvtNetAdapterReturnRxBuffer;

void EvtNetAdapterReturnRxBuffer(
  [_In_] NETADAPTER Adapter,
  [_In_] NET_FRAGMENT_RETURN_CONTEXT_HANDLE RxReturnContext
)
{...}

Parameter

[_In_] Adapter

Objek adaptor jaringan yang dibuat klien dalam panggilan sebelumnya ke NetAdapterCreate.

[_In_] RxReturnContext

Penunjuk ke struktur ruang konteks yang dialokasikan driver.

Nilai kembali

Tidak ada

Keterangan

Daftarkan implementasi fungsi panggilan balik ini dengan mengatur anggota struktur NET_ADAPTER_RX_CAPABILITIES yang sesuai lalu memanggil NetAdapterSetDatapathCapabilities. Driver klien biasanya memanggil NetAdapterSetDatapathCapabilities saat memulai adaptor net, sebelum memanggil NetAdapterStart.

Fungsi panggilan balik ini bersifat opsional kecuali driver klien adaptor bersih menginisialisasi struktur NET_ADAPTER_RX_CAPABILITIES menggunakan fungsi NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED . Dengan menggunakan fungsi inisialisasi ini, driver memberi tahu sistem operasi bahwa ia mengelola alokasi dan lampiran NET_FRAGMENT menerima buffer secara manual, sehingga harus menyediakan fungsi panggilan balik ini dalam hal ini agar sistem operasi dipanggil setelah sistem selesai dengan buffer.

Contoh

Dalam fungsi panggilan balik ini, driver klien dapat melakukan tindakan pembersihan atau tindak lanjut apa pun yang dibutuhkan sekarang setelah sistem operasi selesai dengan buffer penerima ini. Dalam contoh berikut, konteks pengembalian berisi anggota untuk melacak jumlah paket yang ditunjukkan, serta objek memori yang digunakan untuk buffer lookaside selama pemrosesan penerimaan. Penanganan kesalahan telah ditinggalkan untuk kejelasan.

VOID
MyReturnRxBuffer(
	_In_	NETADAPTER							Adapter,
	_In_	NET_FRAGMENT_RETURN_CONTEXT_HANDLE	RxReturnContext
)
{
	UNREFERENCED_PARAMETER(Adapter);

	RxReturnContext->IndicatedPackets--;

	// Clean up the lookaside buffer if this is the last packet
	if(RxReturnContext->IndicatedPackets == 0)
	{
		WdfObjectDelete(RxReturnContext->LookasideBufferMemory);
	}
}

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1.25
Versi UMDF minimum 2.33
Header netadapter.h (termasuk netadaptercx.h)
IRQL <= DISPATCH_LEVEL

Lihat juga

NET_ADAPTER_RX_CAPABILITIES