Dela via


Ställa in NET_BUFFER_LIST-information

En provider för sidhuvuddatadelning måste ange delade flaggor för sidhuvuddata i NblFlags medlem i NET_BUFFER_LIST strukturer för att få indikationer. För delade bildrutor måste ett nätverkskort också ange den fysiska adressen för datadelen av den mottagna ramen i DataPhysicalAddress medlem i varje NET_BUFFER struktur.

Obs En miniportdrivrutin kan ange DataPhysicalAddress medlem i NET_BUFFER struktur, även om NET_BUFFER inte är associerad med en delad ram. I det här fallet innehåller DataPhysicalAddress den fysiska adressen för rubriken MDL.

Providern för delning av sidhuvuddata kombinerar flaggorna i NblFlags medlem med en bitvis OR-åtgärd.

Providern för delning av sidhuvuddata kan ange följande flaggor även om den inte delar upp en ram:

NDIS_NBL_FLAGS_IS_IPV4
Alla ramar i NET_BUFFER_LIST är IPv4-bildrutor. Om den här flaggan anges får flaggan NDIS_NBL_FLAGS_IS_IPV6 inte anges.

NDIS_NBL_FLAGS_IS_IPV6
Alla ramar i NET_BUFFER_LIST är IPv6-bildrutor. Om den här flaggan anges får flaggan NDIS_NBL_FLAGS_IS_IPV4 inte anges.

NDIS_NBL_FLAGS_IS_TCP
Alla ramar i NET_BUFFER_LIST är TCP-ramar. Om den här flaggan har angetts får NDIS_NBL_FLAGS_IS_UDP inte anges. Och antingen måste NDIS_NBL_FLAGS_IS_IPV4 eller NDIS_NBL_FLAGS_IS_IPV6 anges.

NDIS_NBL_FLAGS_IS_UDP
Alla ramar i NET_BUFFER_LIST är UDP-ramar. Om den här flaggan anges får NDIS_NBL_FLAGS_IS_TCP inte anges. Och antingen måste NDIS_NBL_FLAGS_IS_IPV4 eller NDIS_NBL_FLAGS_IS_IPV6 anges.

Alla NDIS-drivrutiner kan ange föregående flaggor för felsökning, testning eller andra ändamål. Om en drivrutin anger dessa flaggor måste värdena korrekt beskriva innehållet i den mottagna ramen. Vi rekommenderar att du ställer in dessa flaggor.

Providern för delning av sidhuvuddata kan ange följande delningsflaggor för sidhuvuddata:

NDIS_NBL_FLAGS_HD_SPLIT
Header och data delas i alla Ethernet-ramar som är associerade med NET_BUFFER_LIST-strukturen.

NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_HEADER
Alla ramar i NET_BUFFER_LIST-strukturen delas vid början av rubriken för det övre lagrets protokoll. Om den här flaggan har angetts måste antingen NDIS_NBL_FLAGS_IS_IPV4 eller NDIS_NBL_FLAGS_IS_IPV6 anges. Du kan också ange antingen NDIS_NBL_FLAGS_IS_TCP eller NDIS_NBL_FLAGS_IS_UDP. Och NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_PAYLOAD får inte anges.

NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_PAYLOAD
Alla ramar i en NET_BUFFER_LIST struktur delas i början av TCP-nyttolasten eller början av UDP-nyttolasten. Om den här flaggan har angetts måste antingen NDIS_NBL_FLAGS_IS_IPV4 eller NDIS_NBL_FLAGS_IS_IPV6 anges. Antingen NDIS_NBL_FLAGS_IS_TCP eller NDIS_NBL_FLAGS_IS_UDP måste anges. Dessutom får NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_HEADER inte anges.

Om providern för delning av sidhuvuddata inte delar upp en ram, måste ramen anges med följande flaggor avmarkerade i NblFlags :

  • NDIS_NBL_FLAGS_HD_SPLIT

  • NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_HEADER

  • NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_PAYLOAD