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.
Każda funkcja sterownika wywoływana przez NDIS działa na poziomie IRQL określonym przez system (jednym z PASSIVE_LEVEL <, DISPATCH_LEVEL <, DIRQL). Na przykład funkcja inicjowania sterownika miniportu, funkcja zatrzymania , funkcja resetowania oraz funkcja zamknięcia są często uruchamiane na poziomie PASSIVE_LEVEL, chociaż funkcje resetowania i zamknięcia mogą być wywoływane na wyższym poziomie IRQL, jeśli system tego wymaga. Kod przerwania działa w DIRQL, więc sterownik pośredni lub sterownik protokołu NDIS nigdy nie działa w DIRQL. Wszystkie inne funkcje sterowników NDIS działają na poziomie IRQL równym DISPATCH_LEVEL lub poniżej.
Środowisko IRQL, w którym działa funkcja sterownika, ma wpływ na funkcje NDIS, które może wywołać. Niektóre funkcje mogą być wywoływane tylko przy IRQL równym PASSIVE_LEVEL. Inne mogą być wywoływane na poziomie DISPATCH_LEVEL lub niższym. Należy sprawdzić każdą funkcję NDIS pod kątem ograniczeń IRQL.
Każda funkcja sterownika, która współdzieli zasoby z jego procedurą obsługi przerwań (ISR), musi być w stanie podnieść swojego IRQL do DIRQL, aby zapobiec warunkom wyścigu. Usługa NDIS zapewnia taki mechanizm.