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
Saran 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