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.
Poniżej przedstawiono dodatkowe błędy, które sterowniki czasami popełniają podczas obsługi IRP.
Utracone lub podwójnie przetworzone IRP
Te problemy wraz z brakującymi wywołaniami procedur menedżera we/wy, takimi jak IoStartNextPacket, często występują w ścieżkach obsługi błędów. Szybkie przeglądy ścieżek dostępowych sterowników mogą pomóc zidentyfikować takie problemy.
Zbieżność ścieżek publicznych IOCTL i prywatnych IOCTL
Ogólnie rzecz biorąc, sterowniki powinny zawierać oddzielne ścieżki wykonywania dla publicznych i prywatnych IOCTL (lub FSCTL). Sterownik nie może określić, czy żądanie IOCTL lub FSCTL pochodzi z trybu jądra lub trybu użytkownika, patrząc na kod kontrolny. W związku z tym obsługa kodów publicznych i prywatnych w tej samej ścieżce wykonywania (lub wykonywanie minimalnej weryfikacji, a następnie wywoływanie tych samych procedur) może narazić sterownik na zagrożenia bezpieczeństwa. Jeśli prywatny protokół IOCTL lub FSCTL jest uprzywilejowany, użytkownicy nieuprzywilejowani, którzy znają kody kontroli, mogą mieć możliwość uzyskania do niego dostępu. W związku z tym, jeśli sterownik obsługuje prywatne żądania IOCTL lub FSCTL, upewnij się, że obsługuje takie żądania oddzielnie od wszelkich publicznych IOCTL lub FSCTL, które również musi obsługiwać.