Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Följande bild illustrerar en grundläggande sändningsåtgärd som omfattar en protokolldrivrutin, NDIS och en miniportdrivrutin.
Protokolldrivrutiner anropar funktionen NdisSendNetBufferLists för att skicka NET_BUFFER_LIST strukturer på en bindning. NDIS anropar miniportdrivrutinens MiniportSendNetBufferLists funktion för att vidarebefordra NET_BUFFER_LIST-strukturerna till en underliggande miniportdrivrutin.
Alla NET_BUFFER-baserade sändningsåtgärder är asynkrona. Miniport-drivrutinen anropar funktionen NdisMSendNetBufferListsComplete med en lämplig statuskod när den är klar. Sändningen av varje NET_BUFFER_LIST struktur kan slutföras individuellt. NDIS anropar protokolldrivrutinens ProtocolSendNetBufferListsComplete varje gång miniportdrivrutinen anropar NdisMSendNetBufferListsComplete.
Protokolldrivrutiner kan återta ägarskapet för NET_BUFFER_LIST strukturer och alla associerade strukturer och data så snart NDIS anropar protokolldrivrutinens ProtocolSendNetBufferListsComplete- funktion.
Miniportdrivrutinen eller NDIS kan returnera NET_BUFFER_LIST strukturerna i valfri ordning. Protokolldrivrutiner garanteras att listan över NET_BUFFER strukturer som är kopplade till varje NET_BUFFER_LIST struktur inte har ändrats.
Alla NDIS-drivrutiner kan separera NET_BUFFER-strukturer i en NET_BUFFER_LIST-struktur. Alla NDIS-drivrutiner kan också separera MDL:er i en NET_BUFFER struktur. Drivrutinen måste dock alltid returnera NET_BUFFER_LIST-strukturerna med NET_BUFFER-strukturerna och MDL:erna i ursprungligt skick. En mellanliggande drivrutin kan till exempel separera en NET_BUFFER_LIST i två nya NET_BUFFER_LIST strukturer och överföra en del av de ursprungliga data till nästa drivrutin. Men när den mellanliggande drivrutinen slutför bearbetningen av den ursprungliga NET_BUFFER_LIST måste den returnera hela NET_BUFFER_LIST med de ursprungliga NET_BUFFER strukturerna och MDL:erna.
Protokolldrivrutiner sätter SourceHandle--medlemmen i NET_BUFFER_LIST-strukturen till NdisBindingHandle- som NDIS tillhandahöll i ett anrop till funktionen NdisOpenAdapterEx. NDIS använder SourceHandle- medlem för att returnera NET_BUFFER_LIST-strukturerna till den protokolldrivrutin som skickade NET_BUFFER_LIST strukturerna.
Mellanliggande drivrutiner anger också SourceHandle-medlemmen i NET_BUFFER_LIST-strukturen till värdet NdisBindingHandle som NDIS angav i ett anrop till NdisOpenAdapterEx. Om en mellanliggande drivrutin vidarebefordrar en sändningsbegäran måste drivrutinen spara värdet SourceHandle som den överliggande drivrutinen angav innan den skrev till SourceHandle- medlem. När NDIS returnerar en vidarebefordrad NET_BUFFER_LIST struktur till den mellanliggande drivrutinen måste den mellanliggande drivrutinen återställa SourceHandle- som den sparade.