Bagikan melalui


Mengirim Bingkai Ethernet

Transportasi TCP/IP Windows mendukung serangkaian persyaratan untuk mengirim bingkai Ethernet. Setiap driver (misalnya, driver perantara MUX atau driver filter) yang berasal dari mengirim permintaan atau memodifikasi permintaan pengiriman driver yang terlalu mengandalkan harus mendukung persyaratan yang diterapkan transportasi TCP/IP.

Catatan Jika ada driver dalam tumpukan driver yang tidak mengikuti persyaratan ini, driver miniport yang mendasar, driver perantara MUX, dan driver filter mungkin bereaksi tidak terduga.

Untuk permintaan pengiriman Ethernet, driver harus mendukung persyaratan ini:

  • Jika driver berasal dari permintaan kirim, driver harus mengalokasikan struktur NET_BUFFER_LIST untuk bingkai Ethernet. Anggota NetBufferListInfo di setiap struktur NET_BUFFER_LIST harus menyertakan data out-of-band (OOB) yang diperlukan untuk penggunaan tertentu. Data OOB berlaku untuk semua struktur NET_BUFFER yang terkait dengan struktur NET_BUFFER_LIST.

  • Jika driver berasal dari permintaan kirim, driver harus mengalokasikan satu atau beberapa struktur NET_BUFFER untuk bingkai Ethernet dan menautkan struktur ini ke struktur NET_BUFFER_LIST. Setiap struktur NET_BUFFER yang ditautkan ke struktur NET_BUFFER_LIST menjelaskan satu bingkai Ethernet. Driver dapat menautkan beberapa struktur NET_BUFFER_LIST dalam permintaan kirim.

  • Semua struktur NET_BUFFER yang terkait dengan struktur NET_BUFFER_LIST harus memiliki jenis bingkai Ethernet dan versi protokol IP yang sama (IPv4 atau IPv6).

  • Semua struktur NET_BUFFER yang terkait dengan struktur NET_BUFFER_LIST harus memiliki alamat MAC sumber dan tujuan yang sama.

  • Jika driver mengirim bingkai TCP atau UDP, semua struktur NET_BUFFER yang terkait dengan struktur NET_BUFFER_LIST harus dikaitkan dengan koneksi TCP atau UDP yang sama. Catatan Tunduk pada persyaratan berikut, bingkai Ethernet yang dikirimkan dapat dipisahkan. Artinya, beberapa daftar deskriptor memori (MDL) dapat dikaitkan dengan struktur NET_BUFFER dalam permintaan kirim.

  • Jangan pisahkan header MAC dari bingkai Ethernet transmisi di beberapa MDL. Perlakukan bendera LAN Virtual (VLAN) (atau Prioritas), jika ada, sebagai bagian dari header MAC. Oleh karena itu, bendera ini harus berada di MDL yang sama dengan header MAC lainnya.

  • Jika driver mengubah tautan dalam rantai MDL dalam struktur NET_BUFFER atau rantai NET_BUFFER dalam struktur NET_BUFFER_LIST, driver harus memulihkan tautan ke konfigurasi asli sebelum mengembalikan kepemilikan NET_BUFFER_LIST ke driver yang terlalu mengandalkan. Namun, driver tidak diperlukan untuk memulihkan tautan antara struktur NET_BUFFER_LIST.