Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In de volgende afbeelding ziet u een eenvoudige verzendbewerking, die betrekking heeft op een protocolstuurprogramma, NDIS en een minipoortstuurprogramma.
Protocolstuurprogramma's roepen de NdisSendNetBufferLists functie aan om NET_BUFFER_LIST structuren op een binding te verzenden. NDIS roept de minipoortstuurprogramma MiniportSendNetBufferLists functie aan om de NET_BUFFER_LIST structuren door te geven aan een onderliggend minipoortstuurprogramma.
Alle op NET_BUFFER gebaseerde verzendbewerkingen zijn asynchroon. Het minipoortstuurprogramma roept de NdisMSendNetBufferListsComplete--functie aan met een juiste statuscode wanneer deze is voltooid. Het verzenden van elke NET_BUFFER_LIST structuur kan afzonderlijk worden voltooid. NDIS roept de ProtocolSendNetBufferListsComplete van het protocolstuurprogramma aan telkens wanneer het minipoortstuurprogramma NdisMSendNetBufferListsCompleteaanroept.
Protocolstuurprogramma's kunnen het eigendom van de NET_BUFFER_LIST structuren en alle bijbehorende structuren en gegevens heroveren zodra de NDIS de functie ProtocolSendNetBufferListsComplete van het protocolstuurprogramma aanroept.
Het minipoortstuurprogramma of NDIS kan de NET_BUFFER_LIST structuren in elke volgorde teruggeven. Protocolstuurprogramma's zijn gegarandeerd dat de lijst met NET_BUFFER structuren die zijn gekoppeld aan elke NET_BUFFER_LIST structuur niet is gewijzigd.
Elk NDIS-stuurprogramma kan de structuren van NET_BUFFER in een NET_BUFFER_LIST-structuur scheiden. Elk NDIS-stuurprogramma kan de MDL's ook scheiden binnen de NET_BUFFER-structuur. Het stuurprogramma moet echter altijd de NET_BUFFER_LIST structuren retourneren met de NET_BUFFER structuren en MDLs in de oorspronkelijke vorm. Een tussenliggend stuurprogramma kan bijvoorbeeld een NET_BUFFER_LIST scheiden in twee nieuwe NET_BUFFER_LIST structuren en een deel van de oorspronkelijke gegevens doorgeven aan het volgende stuurprogramma. Wanneer het tussenliggende stuurprogramma echter de verwerking van de oorspronkelijke NET_BUFFER_LIST voltooit, moet het de volledige NET_BUFFER_LIST retourneren met de oorspronkelijke NET_BUFFER-structuren en MDL's.
Protocolstuurprogramma's stellen het SourceHandle--lid in de NET_BUFFER_LIST-structuur in op de NdisBindingHandle- die NDIS heeft opgegeven in een aanroep naar de NdisOpenAdapterEx--functie. NDIS gebruikt de SourceHandle lid om de NET_BUFFER_LIST structuren te retourneren aan het protocolstuurprogramma dat de NET_BUFFER_LIST structuren heeft verzonden.
Tussenliggende stuurprogramma's stellen ook het SourceHandle--lid in de NET_BUFFER_LIST-structuur in op de NdisBindingHandle--waarde die NDIS heeft opgegeven bij een aanroep naar NdisOpenAdapterEx. Als een tussenliggend stuurprogramma een verzendaanvraag doorstuurt, moet het stuurprogramma de SourceHandle--waarde opslaan die het bovenliggende stuurprogramma heeft opgegeven voordat deze naar het SourceHandle- lid schrijft. Wanneer NDIS een doorgestuurde NET_BUFFER_LIST structuur naar het tussenliggende stuurprogramma retourneert, moet het tussenliggende stuurprogramma de SourceHandle herstellen die het heeft opgeslagen.