Delen via


Netwerkgegevensstructuren

Netwerkgegevens bestaan uit pakketten met gegevens die via het netwerk worden verzonden of ontvangen. NDIS biedt gegevensstructuren voor het beschrijven en organiseren van dergelijke gegevens. De primaire netwerkgegevensstructuren voor NDIS 6.0 en hoger zijn:

In de volgende afbeelding ziet u de relaties tussen deze structuren.

diagram met NDIS 6.0-netwerkgegevensstructuren, waaronder NET_BUFFER, NET_BUFFER_LIST en NET_BUFFER_LIST_CONTEXT.

In NDIS 6.0 en hoger is de NET_BUFFER de basisbouwsteen voor het verpakken van netwerkgegevens. Elke NET_BUFFER structuur heeft een MDL-keten. De MDL's koppelen de adressen van gegevensbuffers aan de gegevensruimte die de NET_BUFFER-structuren specificeren. Deze gegevenstoewijzing is identiek aan de MDL-ketens die NDIS 5 hebben.x en eerdere stuurprogramma's worden gebruikt in de NDIS_PACKET-structuur. NDIS biedt functies voor het manipuleren van de MDL-keten.

Meerdere NET_BUFFER structuren kunnen worden gekoppeld aan een NET_BUFFER_LIST structuur. De NET_BUFFER structuren zijn geordend als een door NULL afgesloten enkelvoudig gekoppelde lijst. Alleen het stuurprogramma dat afkomstig is van een NET_BUFFER_LIST structuur of NDIS, moet de gekoppelde lijst rechtstreeks wijzigen om NET_BUFFER structuren in te voegen en te verwijderen.

NET_BUFFER LIST structuren bevatten informatie die alle NET_BUFFER structuren beschrijft die aan een lijst zijn gekoppeld. Als een stuurprogramma extra ruimte nodig heeft voor contextinformatie, kan het stuurprogramma dergelijke informatie opslaan in de NET_BUFFER_LIST_CONTEXT structuren. NDIS biedt functies voor het toewijzen, vrijmaken van en toegang tot de gegevens in de NET_BUFFER_LIST_CONTEXT structuren.

Meerdere NET_BUFFER_LIST structuren kunnen worden gekoppeld aan een lijst met NET_BUFFER_LIST structuren. De NET_BUFFER_LIST structuren zijn geordend als een enkelvoudig gekoppelde lijst die door NULL wordt beƫindigd. Stuurprogramma's kunnen de gekoppelde lijst rechtstreeks wijzigen om NET_BUFFER_LIST structuren in te voegen en te verwijderen.

NET_BUFFER

NET_BUFFER structuur

NET_BUFFER LIST-

NET_BUFFER_LIST Structuur

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_CONTEXT structuur