Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující obrázek znázorňuje základní operaci odesílání, která zahrnuje ovladač protokolu, rozhraní NDIS a ovladač miniportu.
Ovladače protokolu volají funkci NdisSendNetBufferLists pro odesílání NET_BUFFER_LIST struktur vazby. NDIS volá funkci MiniportSendNetBufferLists ovladače miniportu , která předá struktury NET_BUFFER_LIST podkladovému ovladači miniportu.
Všechny operace odesílání založené na NET_BUFFER jsou asynchronní. Ovladač miniportu volá funkci NdisMSendNetBufferListsComplete s odpovídajícím stavovým kódem po dokončení. Odesílání každé NET_BUFFER_LIST struktury lze dokončit jednotlivě. NDIS volá funkci ProtocolSendNetBufferListsComplete ovladače protokolu pokaždé, když ovladač miniportu volá NdisMSendNetBufferListsComplete.
Ovladače protokolu můžou uvolnit vlastnictví struktury NET_BUFFER_LIST a všech přidružených struktur a dat, jakmile NDIS volá funkci ProtocolSendNetBufferListsComplete ovladače protokolu.
Ovladač miniportu nebo NDIS může vrátit struktury NET_BUFFER_LIST v libovolném pořadí. Ovladače protokolu jsou zaručeny, že seznam NET_BUFFER struktur připojených ke každé NET_BUFFER_LIST struktury nebyl změněn.
Každý ovladač NDIS může oddělit struktury NET_BUFFER ve struktuře NET_BUFFER_LIST. Každý ovladač NDIS může také oddělit MDL ve struktuře NET_BUFFER. Ovladač však musí vždy vracet struktury NET_BUFFER_LIST společně se strukturami NET_BUFFER a MDL ve své původní podobě. Dočasný ovladač může například oddělit NET_BUFFER_LIST do dvou nových NET_BUFFER_LIST struktur a předat část původních dat dalšímu ovladači. Pokud však zprostředkující ovladač dokončí zpracování původního NET_BUFFER_LIST, musí vrátit kompletní NET_BUFFER_LIST s původními strukturami NET_BUFFER a seznamy MDL.
Ovladače protokolu nastavují člen SourceHandle ve struktuře NET_BUFFER_LIST na NdisBindingHandle, který NDIS poskytl při volání funkce NdisOpenAdapterEx. NDIS používá SourceHandle k vrácení struktur NET_BUFFER_LIST do ovladače protokolu, který odeslal struktury NET_BUFFER_LIST.
Mezilehlé ovladače také nastavují člen SourceHandle ve struktuře NET_BUFFER_LIST na hodnotu NdisBindingHandle, kterou NDIS poskytuje při volání NdisOpenAdapterEx. Pokud zprostředkující ovladač předá žádost o odeslání, musí ovladač uložit hodnotu SourceHandle, kterou poskytl nadřazený ovladač před zápisem do člena SourceHandle. Když NDIS vrátí předanou NET_BUFFER_LIST strukturu přechodnému ovladači, zprostředkující ovladač musí obnovit SourceHandle, který uložil.