Bagikan melalui


Menunjukkan Bingkai Ethernet yang Diterima

Driver protokol TCP/IP Windows memberlakukan serangkaian persyaratan untuk menerima bingkai Ethernet. Setiap driver yang berasal menerima indikasi bingkai Ethernet atau memodifikasi menerima indikasi driver yang mendasar harus mendukung persyaratan umum yang diberlakukan TCP/IP. Driver ini termasuk driver miniport Ethernet, driver perantara MUX, dan driver filter.

Catatan Jika driver tidak mengikuti persyaratan ini, driver yang terlalu berlebihan (seperti transportasi TCP/IP, driver perantara MUX, dan driver filter) mungkin berpotensi tidak terduga.

Driver yang berasal dari Ethernet menerima indikasi harus mendukung persyaratan berikut:

  • Driver harus mengalokasikan struktur NET_BUFFER_LIST untuk bingkai Ethernet yang diterima. Setiap struktur NET_BUFFER_LIST harus menyertakan data out-of-band (OOB) yang ditentukan dalam anggota NetBufferListInfo dari NET_BUFFER_LIST yang diperlukan untuk penggunaan tertentu.

  • Driver harus mengalokasikan struktur NET_BUFFER untuk bingkai dan menautkannya ke struktur NET_BUFFER_LIST . Miniport Ethernet harus menetapkan tepat satu struktur NET_BUFFER ke struktur NET_BUFFER_LIST saat menunjukkan data yang diterima. Pembatasan ini hanya berlaku untuk jalur penerimaan Ethernet. Ini tidak berlaku untuk jenis media lain, seperti antarmuka LAN nirkabel 802.11 asli. atau NDIS secara umum.

  • Dimulai dengan NDIS 6.1, di bawah skenario tertentu, struktur NET_BUFFER dapat dikaitkan dengan beberapa daftar deskriptor memori (MDL) untuk bingkai Ethernet yang diterima. Meskipun struktur NET_BUFFER_LIST harus berisi satu struktur NET_BUFFER , menggunakan beberapa MDL memungkinkan driver untuk membagi data paket yang diterima menjadi buffer terpisah.

    Misalnya, driver Ethernet yang mendukung antarmuka pemisahan data header membagi bingkai Ethernet yang diterima dengan menggunakan daftar tertaut beberapa MDL yang terkait dengan struktur NET_BUFFER tunggal. Untuk informasi selengkapnya, lihat Pemisahan Header-Data.

    Untuk alasan kesederhanaan dan performa, kami sangat menyarankan agar driver yang tidak mendukung pemisahan data header hanya menggunakan satu MDL untuk setiap struktur NET_BUFFER .

    Catatan Dalam NDIS 6.0 untuk Windows Vista, setiap struktur NET_BUFFER hanya boleh berisi satu MDL.

  • Driver tidak boleh membagi bingkai Ethernet yang diterima di tengah header IP, opsi IPv4, header IPsec, header ekstensi IPv6, atau header protokol lapisan atas, kecuali MDL pertama berisi setidaknya byte sebanyak NDIS yang ditentukan untuk ukuran lookahead.

Protokol NDIS dan driver filter harus mendukung bingkai Ethernet terpisah dalam indikasi penerimaan jika bingkai terpisah tersebut mematuhi batasan yang ditentukan dalam item daftar sebelumnya. Pembatasan memastikan bahwa protokol dan driver filter kompatibel dengan versi Windows mendatang.