Udostępnij przez


Struktury danych sieciowych

Dane sieciowe składają się z pakietów danych wysyłanych lub odbieranych za pośrednictwem sieci. Usługa NDIS udostępnia struktury danych do opisywania i organizowania takich danych. Podstawowe struktury danych sieciowych dla usługi NDIS 6.0 i nowszych to:

Na poniższej ilustracji przedstawiono relacje między tymi strukturami.

Diagram przedstawiający struktury danych sieciowych NDIS 6.0, w tym NET_BUFFER, NET_BUFFER_LIST i NET_BUFFER_LIST_CONTEXT.

W NDIS 6.0 i późniejszych wersjach NET_BUFFER jest podstawowym jednostkowym komponentem do pakietowania danych sieciowych. Każda struktura NET_BUFFER ma łańcuch MDL. Lista mapowania MDL odwzorowuje adresy buforów danych na przestrzeń danych określaną przez struktury NET_BUFFER. To mapowanie danych jest identyczne z łańcuchami MDL, które są używane przez sterowniki NDIS 5.x i wcześniejsze w strukturze NDIS_PACKET. Usługa NDIS udostępnia funkcje do manipulowania łańcuchem MDL.

Do struktury NET_BUFFER_LIST można dołączyć wiele struktur NET_BUFFER. Struktury NET_BUFFER są zorganizowane jako jednokierunkowa lista połączona zakończona wartością NULL. Tylko sterownik, który tworzy strukturę NET_BUFFER_LIST, lub NDIS, powinien bezpośrednio modyfikować listę połączoną, aby wstawiać i usuwać struktury NET_BUFFER.

Struktury listy NET_BUFFER zawierają informacje opisujące wszystkie struktury NET_BUFFER dołączone do listy. Jeśli sterownik wymaga dodatkowego miejsca na informacje kontekstowe, sterownik może przechowywać takie informacje w strukturach NET_BUFFER_LIST_CONTEXT. NDIS udostępnia funkcje przydzielania, zwalniania i uzyskiwania dostępu do danych w strukturach NET_BUFFER_LIST_CONTEXT.

Aby utworzyć listę struktur NET_BUFFER_LIST, można dołączyć wiele struktur NET_BUFFER_LIST. Struktury NET_BUFFER_LIST są zorganizowane jako jednokierunkowa lista połączona zakończona wartością NULL. Sterowniki mogą modyfikować listę połączoną bezpośrednio w celu wstawiania i usuwania struktur NET_BUFFER_LIST.

NET_BUFFER

struktura NET_BUFFER

NET_BUFFER LIST

Struktura NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

struktura NET_BUFFER_LIST_CONTEXT