Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dostawca podziału danych nagłówka musi ustawić flagi podziału danych nagłówka w elemencie NblFlags struktury NET_BUFFER_LIST w celu uzyskania wskazówek. W przypadku ramek podzielonych karta sieciowa musi również podać fizyczny adres danych z odebranej ramki w elemencie DataPhysicalAddress każdej struktury NET_BUFFER.
Uwaga Sterownik miniportu może ustawić członka DataPhysicalAddress struktury NET_BUFFER, nawet jeśli NET_BUFFER nie jest skojarzony z podzieloną ramką. W tym przypadku DataPhysicalAddress zawiera fizyczny adres nagłówka MDL.
Dostawca podziału danych nagłówka łączy flagi w elemencie NblFlags przy użyciu operacji bitowej OR.
Dostawca rozdzielania nagłówków i danych może ustawić następujące flagi, nawet jeśli nie dojdzie do podziału ramki.
NDIS_NBL_FLAGS_IS_IPV4
Wszystkie ramki w NET_BUFFER_LIST są ramkami IPv4. Jeśli ta flaga jest ustawiona, flaga NDIS_NBL_FLAGS_IS_IPV6 nie może być ustawiona.
NDIS_NBL_FLAGS_IS_IPV6
Wszystkie ramki w NET_BUFFER_LIST to ramki IPv6. Jeśli ta flaga jest ustawiona, flaga NDIS_NBL_FLAGS_IS_IPV4 nie może być ustawiona.
NDIS_NBL_FLAGS_IS_TCP
Wszystkie ramki w NET_BUFFER_LIST to ramki TCP. Jeśli ta flaga jest ustawiona, nie można ustawić NDIS_NBL_FLAGS_IS_UDP. Należy ustawić NDIS_NBL_FLAGS_IS_IPV4 lub NDIS_NBL_FLAGS_IS_IPV6.
NDIS_NBL_FLAGS_IS_UDP
Wszystkie ramki w NET_BUFFER_LIST są ramkami UDP. Jeśli ta flaga jest ustawiona, nie można ustawić NDIS_NBL_FLAGS_IS_TCP. Należy ustawić NDIS_NBL_FLAGS_IS_IPV4 lub NDIS_NBL_FLAGS_IS_IPV6.
Każdy sterownik NDIS może ustawić powyższe flagi na potrzeby debugowania, testowania lub innych celów. Jeśli sterownik ustawia te flagi, wartości muszą dokładnie opisać zawartość odebranej ramki. Zalecane jest ustawienie tych flag.
Dostawca podziału danych nagłówka może ustawić następujące flagi podziału danych nagłówka:
NDIS_NBL_FLAGS_HD_SPLIT
Nagłówek i dane są podzielone we wszystkich ramkach Ethernet skojarzonych ze strukturą NET_BUFFER_LIST.
NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_HEADER
Wszystkie ramki w strukturze NET_BUFFER_LIST są podzielone przy początku nagłówka protokołu warstwy wyższej. Jeśli ta flaga jest ustawiona, należy ustawić NDIS_NBL_FLAGS_IS_IPV4 lub NDIS_NBL_FLAGS_IS_IPV6. Ponadto można ustawić NDIS_NBL_FLAGS_IS_TCP lub NDIS_NBL_FLAGS_IS_UDP. Nie wolno ustawiać NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_PAYLOAD.
NDIS_NBL_FLAGS_ROZDZIEL_OD_WARSTWY_PROTOKOŁU_WYŻSZEGO_POZIOMU_PAYLOAD
Wszystkie ramki w strukturze NET_BUFFER_LIST są podzielone na początku ładunku TCP lub początku ładunku UDP. Jeśli ta flaga jest ustawiona, należy ustawić NDIS_NBL_FLAGS_IS_IPV4 lub NDIS_NBL_FLAGS_IS_IPV6. Należy ustawić NDIS_NBL_FLAGS_IS_TCP lub NDIS_NBL_FLAGS_IS_UDP. Ponadto nie wolno ustawiać NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_HEADER.
Jeśli dostawca podziału nagłówka-danych nie dzieli ramki, ramka musi być oznaczona przy następujących flagach wyczyszczonych w NblFlags :
NDIS_NBL_FLAGS_HD_SPLIT
NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_HEADER
NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_PAYLOAD