struktur NDIS_UDP_SEGMENTATION_OFFLOAD (ntddndis.h)

Struktur NDIS_UDP_SEGMENTATION_OFFLOAD menyediakan informasi UDP Segmentation Offload (USO) dalam struktur NDIS_OFFLOAD .

Sintaks

typedef struct _NDIS_UDP_SEGMENTATION_OFFLOAD {
  struct {
    ULONG Encapsulation;
    ULONG MaxOffLoadSize;
    ULONG MinSegmentCount : 6;
    ULONG SubMssFinalSegmentSupported : 1;
#if ...
    ULONG Reserved : 25;
#else
    ULONG Reserved : 26;
#endif
  } IPv4;
  struct {
    ULONG Encapsulation;
    ULONG MaxOffLoadSize;
    ULONG MinSegmentCount : 6;
    ULONG SubMssFinalSegmentSupported : 1;
#if ...
    ULONG Reserved1 : 25;
#else
    ULONG Reserved1 : 26;
#endif
    ULONG IpExtensionHeadersSupported : 2;
    ULONG Reserved2 : 30;
  } IPv6;
} NDIS_UDP_SEGMENTATION_OFFLOAD, *PNDIS_UDP_SEGMENTATION_OFFLOAD;

Anggota

IPv4

Struktur dalam NDIS_UDP_SEGMENTATION_OFFLOAD yang menentukan informasi IPv4, berisi anggota berikut:

IPv4.Encapsulation

Pengaturan enkapulasi untuk IPv4. Untuk informasi selengkapnya tentang anggota ini, lihat bagian Keterangan berikut ini.

IPv4.MaxOffLoadSize

Byte maksimum data pengguna yang dapat diteruskan transportasi ke pengemudi miniport dalam satu paket. Transportasi tidak akan meneruskan paket ke driver miniport yang berisi lebih banyak byte data pengguna daripada yang ditentukan MaxOffLoadSize . Jika paket seperti itu harus ditransmisikan, transportasi itu sendiri membasahkan paket menjadi paket yang lebih kecil.

IPv4.MinSegmentCount

Jumlah minimum segmen yang harus dibagi paket UDP besar sebelum transportasi dapat membongkarnya ke perangkat keras untuk segmentasi. Transportasi tidak akan membongkar paket besar ke driver miniport untuk segmentasi kecuali driver miniport dapat membuat setidaknya sebanyak yang ditentukan MinSegmentCount dari paket. Jika paket UDP besar tidak memenuhi persyaratan segmen minimum, transportasi TCP/IP itu sendiri mensegmentasi paket menjadi paket yang lebih kecil.

IPv4.SubMssFinalSegmentSupported

Nilai ULONG yang menentukan apakah semua segmen yang diperoleh driver miniport dari paket UDP besar harus berukuran segmen maksimum (MSS) yang sama atau tidak. Jika driver miniport tidak mengatur kemampuan SubMssFinalSegmentSupported , maka setiap paket UDP besar yang dilepaskan oleh transportasi harus memiliki Panjang % MSS == 0. Artinya, paket besar dapat dibagi menjadi paket N dengan setiap segmen paket yang berisi byte pengguna MSS persis. Jika driver miniport mengatur kemampuan SubMssFinalSegmentSupported , maka kondisi pembagibilitas panjang paket pada transportasi ini tidak berlaku. Dengan kata lain, segmen akhir bisa kurang dari MSS.

Driver harus menetapkan nilai SubMssFinalSegmentSupported ke NDIS_OFFLOAD_SUPPORTED jika miniport mampu menyegmentasikan pengiriman UDP di mana panjang total paket besar memiliki sisa bukan nol ketika dibagi dengan MSS. Ketika dukungan driver miniport ditunjukkan melalui bendera ini, driver protokol diizinkan untuk mengeluarkan pengiriman UDP besar di mana panjang payload UDP dari paket tersegmentasi akhir kurang dari MSS.

Untuk informasi selengkapnya, lihat Offload Segmentasi UDP (USO).

IPv4.Reserved

Dicadangkan. Driver Miniport tidak boleh membaca atau menulis ke bidang ini.

IPv6

Struktur dalam NDIS_UDP_SEGMENTATION_OFFLOAD yang menentukan informasi IPv6, berisi anggota berikut:

IPv6.Encapsulation

Pengaturan enkapulasi untuk IPv6. Untuk informasi selengkapnya tentang anggota ini, lihat bagian Keterangan berikut ini.

IPv6.MaxOffLoadSize

Byte maksimum data pengguna yang dapat diteruskan transportasi ke pengemudi miniport dalam satu paket. Transportasi tidak akan meneruskan paket ke driver miniport yang berisi lebih banyak byte data pengguna daripada yang ditentukan MaxOffLoadSize . Jika paket seperti itu harus ditransmisikan, transportasi itu sendiri membasahkan paket menjadi paket yang lebih kecil.

IPv6.MinSegmentCount

Jumlah minimum segmen yang harus dibagi paket UDP besar sebelum transportasi dapat membongkarnya ke perangkat keras untuk segmentasi. Transportasi tidak akan membongkar paket besar ke driver miniport untuk segmentasi kecuali driver miniport dapat membuat setidaknya sebanyak yang ditentukan MinSegmentCount dari paket. Jika paket UDP besar tidak memenuhi persyaratan segmen minimum, transportasi TCP/IP itu sendiri mensegmentasi paket menjadi paket yang lebih kecil.

IPv6.SubMssFinalSegmentSupported

Nilai ULONG yang menentukan apakah semua segmen yang diperoleh driver miniport dari paket UDP besar harus berukuran segmen maksimum (MSS) yang sama atau tidak. Jika driver miniport tidak mengatur kemampuan SubMssFinalSegmentSupported , maka setiap paket UDP besar yang dilepaskan oleh transportasi harus memiliki Panjang % MSS == 0. Artinya, paket besar dapat dibagi menjadi paket N dengan setiap segmen paket yang berisi byte pengguna MSS persis. Jika driver miniport mengatur kemampuan SubMssFinalSegmentSupported , maka kondisi pembagibilitas panjang paket pada transportasi ini tidak berlaku. Dengan kata lain, segmen akhir bisa kurang dari MSS.

Driver harus menetapkan nilai SubMssFinalSegmentSupported ke NDIS_OFFLOAD_SUPPORTED jika miniport mampu menyegmentasikan pengiriman UDP di mana panjang total paket besar memiliki sisa bukan nol ketika dibagi dengan MSS. Ketika dukungan driver miniport ditunjukkan melalui bendera ini, driver protokol diizinkan untuk mengeluarkan pengiriman UDP besar di mana panjang payload UDP dari paket tersegmentasi akhir kurang dari MSS.

Untuk informasi selengkapnya, lihat Offload Segmentasi UDP (USO).

IPv6.Reserved1

Dicadangkan. Driver Miniport tidak boleh membaca atau menulis ke bidang ini.

IPv6.IpExtensionHeadersSupported

Nilai ULONG yang ditetapkan driver miniport untuk menunjukkan bahwa adaptor miniport dapat mensegmentasi paket UDP besar yang header IP-nya berisi header ekstensi IPv6.

IPv6.Reserved2

Dicadangkan. Driver Miniport tidak boleh membaca atau menulis ke bidang ini.

Keterangan

Driver Miniport harus mengatur nilai bidang struktur ini dan persyaratan enkapulasi yang mirip dengan struktur NDIS_TCP_LARGE_SEND_OFFLOAD_V2 .

Struktur NDIS_UDP_SEGMENTATION_OFFLOAD digunakan dalam anggota UdpSegmentation dari struktur NDIS_OFFLOAD . NDIS_UDP_SEGMENTATION_OFFLOAD menentukan layanan saat ini atau yang didukung yang disediakan adaptor miniport untuk mensegmentasi paket UDP besar menjadi paket yang lebih kecil.

NDIS_OFFLOAD digunakan dalam struktur NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES , struktur NDIS_BIND_PARAMETERS , struktur NDIS_FILTER_ATTACH_PARAMETERS , OID_TCP_OFFLOAD_CURRENT_CONFIG OID, dan indikasi status NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG .

Untuk OID_TCP_OFFLOAD_CURRENT_CONFIG, struktur NDIS_OFFLOAD menentukan kemampuan offload tugas yang didukung adaptor miniport. Jika kemampuan offload saat ini berubah, driver miniport melaporkan kemampuan baru dalam indikasi status NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG .

Anggota EnkapkulasiNDIS_UDP_SEGMENTATION_OFFLOAD menentukan pengaturan enkapulasi UDP untuk adaptor miniport.

Menanggapi permintaan kueri OID_TCP_OFFLOAD_CURRENT_CONFIG , NDIS menyediakan bendera enkapsulasi OR bitwise, yang menunjukkan pengaturan enkapkulasi yang didukung, di setiap anggota Enkapsulasi . Driver miniport harus menyediakan enkaplasi Ethernet (NDIS_ENCAPSULATION_IEEE_802_3). Jenis enkapkulasi lainnya bersifat opsional.

Untuk indikasi status NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG , driver miniport menyediakan bitwise ATAU bendera enkapsulasi, yang menunjukkan kemampuan saat ini, di setiap anggota Enkapsulasi .

Bendera berikut didefinisikan untuk anggota Enkapsulasi :

NDIS_ENCAPSULATION_NOT_SUPPORTED
Menentukan bahwa tidak ada offload enkapsulasi yang didukung.

NDIS_ENCAPSULATION_NULL
Menentukan enkapsulasi NULL.

NDIS_ENCAPSULATION_IEEE_802_3
Menentukan enkaplasi IEEE 802.3.

NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q
Menentukan enkaplasi IEEE 802.3p dan IEEE 802.3q.

NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB
Menentukan bahwa pengaturan enkapulasi IEEE 802.3p dan IEEE 802.3q ditentukan dalam anggota NetBufferListInfo dari setiap struktur NET_BUFFER_LIST.

NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED
Menentukan enkaplasi kontrol tautan logis (LLC) untuk protokol yang dirutekan, seperti yang dijelaskan dalam RFC 1483. Bendera ini juga digunakan untuk menunjukkan enkaplasi Ethernet LLC/SNAP.

Persyaratan

   
Klien minimum yang didukung Windows 10, versi 1912
Header ntddndis.h

Lihat juga

Offload Segmentasi UDP (USO)