Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na poniższej ilustracji przedstawiono podstawową operację wysyłania usługi CoNDIS, która obejmuje sterownik protokołu, NDIS i sterownik miniportu.
Jak pokazano na powyższej ilustracji, sterowniki protokołów wywołają funkcję NdisCoSendNetBufferLists w celu wysyłania struktur NET_BUFFER_LIST w połączeniu wirtualnym (VC). Następnie NDIS wywołuje funkcję MiniportCoSendNetBufferLists, w celu przekazania struktur NET_BUFFER_LIST do bazowego sterownika miniportu.
Wszystkie operacje wysyłania oparte na NET_BUFFER są asynchroniczne. W związku z tym sterownik miniportu zawsze wywołuje funkcję NdisMCoSendNetBufferListsComplete i udostępnia odpowiedni kod stanu podczas wysyłania danych. Sterownik miniportu może ukończyć operację wysyłania dla każdej struktury NET_BUFFER_LIST niezależnie od innych struktur NET_BUFFER_LIST. NDIS wywołuje funkcję ProtocolCoSendNetBufferListsComplete za każdym razem, gdy sterownik miniportowy wywołuje NdisMCoSendNetBufferListsComplete.
Sterowniki protokołów mogą odzyskać własność struktur NET_BUFFER_LIST i wszystkich skojarzonych struktur i danych, gdy tylko NDIS zawoła funkcję ProtocolCoSendNetBufferListsComplete.
Sterownik miniportu lub NDIS może zwrócić struktury NET_BUFFER_LIST w dowolnej kolejności. Jednak sterowniki protokołów mają gwarancję, że lista struktur NET_BUFFER dołączonych do każdej struktury NET_BUFFER_LIST nie została zmodyfikowana.
Sterowniki protokołów ustawiają element członkowski SourceHandle w strukturze NET_BUFFER_LIST na tę samą wartość, co parametr NdisVcHandle funkcji NdisCoSendNetBufferLists. Usługa NDIS używa członka SourceHandle, aby zwrócić struktury NET_BUFFER_LIST do sterownika protokołu, który wysłał te struktury NET_BUFFER_LIST.
Sterowniki pośrednie ustawiają także członka SourceHandle w strukturze NET_BUFFER_LIST na wartość NdisVcHandle. Jeśli sterownik pośredni przekazuje żądanie wysyłania, sterownik musi zapisać wartość SourceHandle podaną przez sterownik nadrzędny przed zapisem do członka SourceHandle. Gdy usługa NDIS zwraca strukturę NET_BUFFER_LIST przekazywaną do sterownika pośredniego, sterownik pośredni musi przywrócić SourceHandle, który zapisał.
Sterowniki protokołów mogą anulować wysyłanie żądań przy użyciu tych samych mechanizmów co sterowniki bez połączenia. Aby uzyskać więcej informacji na temat anulowania żądań wysyłania, zobacz Anulowanie operacji wysyłania.