IRP 처리의 추가 오류
다음은 드라이버가 IRP를 처리할 때 발생하는 추가 오류입니다.
분실 또는 이중 완성된 IRP
이러한 문제는 IoStartNextPacket과 같은 I/O 관리자 루틴에 대한 누락된 호출과 함께 종종 오류 처리 경로에서 발생합니다. 드라이버 경로를 빠르게 검토하면 이러한 문제를 찾을 수 있습니다.
공용 IOCTL 및 프라이빗 IOCTL 경로 수렴
일반적으로 드라이버는 퍼블릭 및 프라이빗 IOCTL(또는 FSCTL)에 대한 별도의 실행 경로를 포함해야 합니다. 드라이버는 제어 코드를 확인하여 IOCTL 또는 FSCTL 요청이 커널 모드 또는 사용자 모드에서 시작되는지 여부를 확인할 수 없습니다. 따라서 동일한 실행 경로에서 공용 코드와 프라이빗 코드를 모두 처리하거나 최소한의 유효성 검사를 수행한 다음 동일한 루틴을 호출하면 보안 위반에 대한 드라이버가 열릴 수 있습니다. 프라이빗 IOCTL 또는 FSCTL이 권한이 있는 경우 제어 코드를 알고 있는 권한 없는 사용자가 액세스 권한을 얻을 수 있습니다. 따라서 드라이버가 프라이빗 IOCTL 또는 FSCTL 요청을 지원하는 경우 이러한 요청을 공용 IOCTL 또는 FSCTL과 별도로 처리해야 합니다.