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.
Jeśli flaga NDIS_NBL_FLAGS_IS_LOOPBACK_PACKET w NblFlags składowej struktury NET_BUFFER_LIST jest ustawiona, pakiet jest pakietem pętli zwrotnej. Sterowniki protokołów i sterowniki filtrów mogą sprawdzić tę flagę, aby określić, czy dany pakiet jest pakietem sprzężenia zwrotnego.
Kiedy spełnione są wszystkie z poniższych trzech warunków, NDIS przekazuje pakiety z powrotem.
Podstawowy typ nośnika karty miniportu to NdisMedium802_3 lub NdisMedium802_5.
Każdy z następujących trzech warunków jest spełniony:
Powiązanie protokołu ustawiło ustawienie NDIS_PACKET_TYPE_PROMISCUOUS z identyfikatorem OID OID_GEN_CURRENT_PACKET_FILTER w celu określenia jego filtru pakietów (i dla systemu Windows 8 i nowszych nie ustawiono NDIS_PACKET_TYPE_NO_LOCAL w tym samym identyfikatorze OID), a jeden z następujących parametrów ma wartość true:
- Istnieje więcej niż jedno powiązanie z kartą miniportu.
- Do adaptera miniportu jest dołączony moduł filtrujący, a moduł filtrujący zarejestrował procedurę obsługi odbierania.
Powiązanie protokołu ustawiło wartość NDIS_PACKET_TYPE_ALL_LOCAL przy użyciu identyfikatora OID OID_GEN_CURRENT_PACKET_FILTER, aby określić jego filtr pakietów, jeżeli którykolwiek z poniższych warunków jest spełniony.
- Istnieje więcej niż jedno powiązanie z kartą miniportu.
- Do adaptera miniportu jest dołączony moduł filtrujący, a moduł filtrujący zarejestrował procedurę obsługi odbierania.
Obiekt wywołujący ustawia flagę NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK w SendFlags parametru NdisSendNetBufferLists.
Pakiet jest akceptowalny zgodnie z ustawionym filtrem pakietów oznaczonym identyfikatorem OID OID_GEN_CURRENT_PACKET_FILTER dla karty miniport. Poniżej przedstawiono kilka przykładów:
- Jeśli pakiet jest pakietem bezpośrednim, adres docelowy w pakiecie musi być zgodny z adresem MAC karty miniport.
- Jeśli pakiet jest pakietem multicastowym, filtr pakietów musi mieć ustawiony NDIS_PACKET_TYPE_ALL_MULTICAST lub adres docelowy musi pasować do jednego z adresów multicastowych na liście adresów multicastowych adaptera miniportu, a filtr pakietów musi mieć ustawiony NDIS_PACKET_TYPE_MULTICAST.
- Jeśli pakiet jest pakietem rozgłaszanym, filtr pakietów karty miniport musi mieć ustawiony NDIS_PACKET_TYPE_BROADCAST.
- Filtr pakietów adaptera miniportu ma ustawiony NDIS_PACKET_TYPE_PROMISCUOUS lub NDIS_PACKET_TYPE_ALL_LOCAL.
Powiązanie protokołu odbiera pakiety pętli zwrotnej, jeśli spełniony jest co najmniej jeden z następujących warunków:
Powiązanie protokołu jest oryginalnym nadawcą pakietu i ustawiono NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK.
Powiązanie protokołu nie ustawia NDIS_PACKET_TYPE_NO_LOCAL w filtrze pakietów.
Powiązanie protokołu nie odbierze pakietów typu loopback, jeśli spełniony jest jeden z następujących warunków:
Powiązanie protokołu ustawia NDIS_PACKET_TYPE_NO_LOCAL w filtrze pakietów i nie jest to oryginalny nadawca pakietu.
Powiązanie protokołu jest oryginalnym nadawcą, ale parametr NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK nie jest ustawiony w SendFlags podczas wywołania funkcji NdisSendNetBufferLists.
Na poniższej ilustracji pokazano przepływ logiki algorytmu pętli zwrotnej.