Operasi Mundur
Operasi retreat dapat meningkatkan ukuran ruang data yang digunakan dalam struktur NET_BUFFER atau di semua struktur NET_BUFFER dalam struktur NET_BUFFER_LIST .
NDIS menyediakan fungsi mundur berikut:
NdisRetreatNetBufferListDataStart
Operasi retreat terkadang dapat mengalokasikan MDL yang terkait dengan struktur NET_BUFFER. Untuk menyediakan mekanisme untuk mengalokasikan MDL, driver dapat menyediakan titik masuk opsional untuk fungsi NetAllocateMdl . Jika titik masuk adalah NULL, NDIS menggunakan metode default untuk mengalokasikan MDL. MDL harus dikosongkan dalam fungsi NetFreeMdl yang menyediakan timbal balik mekanisme yang digunakan untuk mengalokasikan MDL.
Untuk mendapatkan DataLength baru, NDIS menambahkan DataOffsetDelta yang ditentukan driver ke DataLength saat ini. Jika ukuran ruang data yang tidak digunakan lebih besar dari DataOffsetDelta, operasi mundur mengurangi DataOffset . Dalam hal ini, DataOffset baru adalah DataOffset saat ini dikurangi DataOffsetDelta .
Jika DataOffsetDelta lebih besar dari DataOffset, operasi mundur mengalokasikan ruang data baru. Dalam hal ini, NDIS menyesuaikan DataOffset yang sesuai.
Untuk operasi pengiriman, NDIS mengalokasikan memori jika tidak ada cukup ruang data yang tidak digunakan untuk memenuhi permintaan mundur. Jika tidak ada alokasi memori yang diperlukan, NDIS hanya menyesuaikan DataOffset dan DataLength . Untuk performa yang lebih baik, driver harus mengalokasikan ukuran total data yang cukup sebelum mengirim untuk mengakomodasi operasi mundur dari semua driver yang mendasar.
Untuk kasus pengembalian penerimaan, NDIS hanya menyesuaikan DataOffset dan DataLength yang sesuai. Operasi mundur membalikkan operasi lanjutan yang berlangsung selama pemrosesan penerimaan. Setelah operasi mundur, ruang data yang digunakan berisi data header yang digunakan driver yang mendasar selama pemrosesan penerimaan.
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