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.
System wywołuje procedurę sterownika protokołu DriverEntry po załadowaniu sterownika. Sterowniki protokołu ładują się jako usługi systemowe. Mogą ładować się w dowolnym momencie przed obciążeniem sterowników miniportu lub po nim.
Sterowniki protokołu przydzielają zasoby sterownika i rejestrują funkcje ProtocolXxx w DriverEntry. Obejmuje to klientów usługi CoNDIS i autonomicznych menedżerów połączeń. Aby zarejestrować funkcje ProtocolXxx w usłudze NDIS, sterownik protokołu wywołuje funkcję NdisRegisterProtocolDriver.
DriverEntry zwraca STATUS_SUCCESS lub równoważną NDIS_STATUS_SUCCESS, jeśli sterownik został pomyślnie zarejestrowany jako sterownik protokołu NDIS. Jeśli DriverEntry zakończy się niepowodzeniem podczas inicjalizacji, poprzez propagowanie stanu błędu, który został zwrócony przez funkcję NdisXxx lub przez rutynę obsługi trybu jądra, sterownik nie pozostanie załadowany. DriverEntry musi zostać wykonana synchronicznie; oznacza to, że nie może zwrócić STATUS_PENDING ani równoważnego NDIS_STATUS_PENDING.
Funkcja DriverEntry sterownika protokołu NDIS musi wywołać funkcję NdisRegisterProtocolDriver. Aby zarejestrować ProtocolXxx sterownika punkty wejścia w bibliotece NDIS, sterownik protokołu inicjuje strukturę NDIS_PROTOCOL_DRIVER_CHARACTERISTICS i przekazuje ją do NdisRegisterProtocolDriver.
Sterowniki, które wywołują NdisRegisterProtocolDriver, muszą być przygotowane na natychmiastowe wywołanie dowolnej z ich funkcji ProtocolXxx.
Sterowniki protokołów NDIS udostępniają następujące funkcje ProtocolXxx, które są aktualizowane wersje funkcji zapewnianych przez starsze sterowniki:
ProtocolCloseAdapterCompleteEx
Sterowniki protokołu NDIS udostępniają następujące funkcje ProtocolXxx na potrzeby operacji wysyłania i odbierania:
ProtocolSendNetBufferListsComplete
Wszystkie typy sterowników protokołów NDIS powinny rejestrować w pełni funkcjonalne funkcje protokołu ProtocolBindAdapterEx i ProtocolUnbindAdapterEx w celu obsługi funkcji Plug and Play (PnP). Ogólnie rzecz biorąc, funkcja DriverEntry powinna wywoływać funkcję NdisRegisterProtocolDriver bezpośrednio przed zwróceniem kontrolki z wartością stanu STATUS_SUCCESS lub NDIS_STATUS_SUCCESS.
Każdy sterownik protokołu, który eksportuje zestaw standardowych procedur sterowników trybu jądra oprócz funkcji ProtocolXxx zdefiniowanych przez protokół NDISXxx musi ustawić punkty wejścia dla tych procedur sterowników w danym obiekcie sterownika, który jest przekazywany do funkcji DriverEntry. Aby uzyskać więcej informacji na temat funkcjonalności funkcji DriverEntry sterownika protokołu, zapoznaj się z dokumentem Tworzenie rutyny DriverEntry.
Jeśli próba przydzielenia zasobów, aby sterownik mógł realizować operacje we/wy sieci nie powiedzie się, DriverEntry powinien zwolnić wszystkie zasoby, które zostały już przydzielone przed zwróceniem kontroli ze stanem innym niż STATUS_SUCCESS lub NDIS_STATUS_SUCCESS.
Jeśli wystąpi błąd po pomyślnym wywołaniu NdisRegisterProtocolDriver, sterownik musi wywołać funkcję NdisDeregisterProtocolDriver przed zwróceniem DriverEntry.
Aby umożliwić sterownikowi protokołu konfigurowanie usług opcjonalnych, NDIS wywołuje funkcję ProtocolSetOptions w kontekście wywołania sterownika protokołu w celu NdisRegisterProtocolDriver. Aby uzyskać więcej informacji na temat usług opcjonalnych, zobacz Configuring Optional Protocol Driver Services.
Sterowniki klienta CoNDIS muszą wywoływać funkcję NdisSetOptionalHandlers z funkcji ProtocolSetOptions. Sterownik inicjuje strukturę NDIS_CO_CLIENT_OPTIONAL_HANDLERS i przekazuje ją w parametrze OptionalHandlers funkcji NdisSetOptionalHandlers.
Menedżerowie wywołań autonomicznych usługi CoNDIS muszą również wywołać funkcję NdisSetOptionalHandlers z funkcji ProtocolSetOptions. Sterownik inicjuje strukturę NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS i przekazuje ją jako parametr OptionalHandlers do funkcji NdisSetOptionalHandlers.
McMs nie są sterownikami protokołów. W związku z tym muszą wywołać funkcję NdisSetOptionalHandlers z funkcji MiniportSetOptions. MCM inicjuje strukturę NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS i przekazuje ją jako parametr OptionalHandlers w NdisSetOptionalHandlers.
Aby wyrejestrować się z NDIS, sterownik protokołu wywołuje NdisDeregisterProtocolDriver ze swojej procedury Unload.
Aby wykonać operacje oczyszczania przed odinstalowaniem sterownika protokołu, sterownik protokołu może zarejestrować funkcję ProtocolUninstall. Funkcja ProtocolUninstall jest opcjonalna. Na przykład dolna krawędź protokołu sterownika pośredniego może wymagać funkcji ProtocolUninstall. Sterownik pośredni może zwolnić zasoby krawędzi protokołu w ProtocolUninstall, zanim usługa NDIS wywoła funkcję MiniportDriverUnload.