Udostępnij przez


Wiązanie z adapterem

NDIS wywołuje funkcję ProtocolBindAdapterEx sterownika protokołu, aby otworzyć powiązanie, za każdym razem gdy podstawowa karta, z którą sterownik może się połączyć, stała się dostępna. Po tym jak NDIS wywoła ProtocolBindAdapterEx, powiązanie wchodzi w stan Otwierania. W stanie Otwarcia sterownik protokołu przydziela zasoby dla wiązania i otwiera adapter.

Usługa NDIS przekazuje do ProtocolBindAdapterEx kontekst NDIS dla operacji powiązania oraz wskaźnik do struktury NDIS_BIND_PARAMETERS. Ta struktura zawiera informacje o adapterze, takie jak:

  • Nazwa adaptera.

  • Lokalizacja parametrów specyficznych dla tego powiązania w rejestrze, w ramach wpisu usługi w protokole.

  • Obiekt urządzenia fizycznego dla adaptera.

Aby otworzyć kartę, sterowniki protokołu wywołają funkcję NdisOpenAdapterEx. Sterownik protokołu przekazuje następujące polecenie do NdisOpenAdapterEx:

  • Uchwyt, który NDIS zwrócił do sterownika w parametrze NdisProtocolHandle funkcji NdisRegisterProtocolDriver.

  • Kontekst sterownika protokołu dla tego powiązania.

  • Wskaźnik do struktury typu NDIS_OPEN_PARAMETERS.

NDIS_OPEN_PARAMETERS zawiera informacje takie, jak nazwa adaptera, który NdisOpenAdapterEx powinien otworzyć, tablicę typów mediów, które sterownik protokołu obsługuje oraz, opcjonalnie, tablicę typów ramek, które sterownik może odbierać w tym powiązaniu.

Jeśli sterownik protokołu zwraca NDIS_STATUS_PENDING z ProtocolBindAdapterEx, musi wywołać NdisCompleteBindAdapterEx z ostatecznym stanem, aby zakończyć żądanie powiązania.

Jeśli NDIS zwraca NDIS_STATUS_PENDING z NdisOpenAdapterEx, NDIS później wywołuje funkcję sterownika protokołu ProtocolOpenAdapterCompleteEx z ostatecznym stanem po zakończeniu żądania otwarcia.

Po pomyślnym otwarciu powiązania z adapterem, powiązanie jest w stanie pauzy.

Sterownik protokołu wywołuje funkcję NdisCloseAdapterEx, aby zamknąć adapter. Sterownik może wywoływać NdisCloseAdapterEx z funkcji ProtocolBindAdapterEx lub ProtocolUnbindAdapterEx.

Jeśli po otwarciu adaptera i przed ukończeniem żądania powiązania, ProtocolBindAdapterEx napotka błąd i musi zamknąć połączenie z adapterem, może wywołać NdisCloseAdapterEx. Aby uzyskać więcej informacji na temat zamykania adaptera, zobacz Odłączanie od adaptera.