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.
Początkowy wymagany punkt wejścia sterownika pośredniego musi być jawnie nazwany DriverEntry, aby moduł ładujący mógł go prawidłowo zidentyfikować. Wszystkie inne wyeksportowane funkcje sterowników, które zostały opisane w tej sekcji jako MiniportXxx i ProtocolXxx, mogą mieć dowolną nazwę określoną przez dostawcę, ponieważ są przekazywane jako adresy do usługi NDIS.
W sterowniku pośrednim DriverEntry musi co najmniej:
Wywołaj NdisMRegisterMiniportDriver i zapisz zwrócony uchwyt w parametrze NdisMiniportDriverHandle.
Wywołaj NdisRegisterProtocolDriver w celu zarejestrowania funkcji ProtocolXxx sterownika, jeśli sterownik następnie wiąże się z bazowym sterownikiem NDIS.
Wywołaj NdisIMAssociateMiniport, aby poinformować NDIS o powiązaniu między górną krawędzią miniportu sterownika a dolną krawędzią protokołu.
Sterownik pośredni musi zarejestrować procedurę wyładowywania MiniportDriverUnload. Ta procedura jest wywoływana, gdy system odinstalowuje sterownik pośredni. Jeśli DriverEntry zakończy się niepowodzeniem, ta procedura zwalniania nie zostanie wywołana; zamiast tego sterownik jest po prostu zwalniany. Aby uzyskać więcej informacji na temat procedury zwalniania, zobacz Zwalnianie sterownika pośredniego.
Program obsługi zwalniania powinien wywołać NdisDeregisterProtocolDriver, aby wyrejestrować część protokołu sterownika pośredniego. Procedura obsługi rozładowywania powinna również wykonywać wszelkie niezbędne operacje oczyszczania, takie jak reallokowanie zasobów używanych przez część protokołu sterownika.
Należy pamiętać, że procedura wyładowania różni się od funkcji MiniportHaltEx: procedura wyładowania ma bardziej globalny zakres, a zakres funkcji MiniportHaltEx jest ograniczony do określonego adaptera miniportu. Sterownik pośredni powinien wyczyścić informacje o stanie i ponownie przydzielić zasoby, gdy każdy podstawowy sterownik miniportu, z którym jest powiązany, zostanie zatrzymany. Aby uzyskać informacje na temat obsługi operacji zatrzymania dla miniportów wirtualnych, zobacz Halting a Virtual Miniport.
ProtocolUninstall to opcjonalna procedura obsługi rozładowania. Zarejestruj punkt wejścia dla tej funkcji w strukturze ProtocolCharacteristics, którą przekazujesz do NdisRegisterProtocolDriver. NDIS wywołuje ProtocolUninstall w odpowiedzi na żądanie użytkownika w celu odinstalowania sterownika pośredniego. NDIS wywołuje ProtocolUnbindAdapterEx raz dla każdego powiązanego adaptera, a następnie NDIS wywołuje ProtocolUninstall. Ta procedura obsługi jest wywoływana przed faktycznym zwolnieniem sterownika przez system. Ten moment umożliwia zwolnienie wszelkich obiektów urządzenia lub innych zasobów, które w przeciwnym razie uniemożliwiłyby systemowi wywołanie procedury rozładowania zarejestrowanej w NdisMRegisterMiniportDriver i rozładunek sterownika.
DriverEntry może zainicjować blokady spinu, aby chronić wszelkie globalnie współużytkowane zasoby przydzielane przez sterownik pośredni, taki jak zmienne stanu, struktury i obszary pamięci. Sterownik używa tych zasobów do śledzenia połączeń, śledzenia wysyłań w toku oraz kolejek przydzielanych przez sterownik.
Jeśli DriverEntry nie uda się przydzielić niezbędnych zasobów do przeprowadzenia operacji wejścia/wyjścia sieci, powinien zwolnić wszystkie wcześniej przydzielone zasoby i zwrócić odpowiedni kod błędu.
Poniższe tematy opisują, jak zarejestrować sterowniki pośrednie.
Rejestrowanie sterownika pośredniego NDIS
Zarejestrowanie pośredniego sterownika jako sterownika miniportu
rejestrowanie sterownika pośredniego jako sterownik protokołu