Udostępnij przez


Dodatkowe błędy w obsłudze IRPów

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ć.