콘텐츠로 이동

I/O Manager와 IRP (Windows)

Jan 27, 2026

I/O Manager는 Windows Executive의 구성 요소로, 모든 I/O 요청을 IRP(I/O Request Packet)로 변환하여 드라이버 스택을 통해 처리한다. 파일 시스템, 네트워크, 장치 드라이버 등 다양한 I/O 컴포넌트를 일관되게 관리하기 위해 설계되었다.

비유하면, IRP는 운송장이 붙은 택배 상자와 같다. 배송 센터(드라이버)를 거칠 때마다 처리되고, 최종 목적지까지 전달된 후 수령 확인(완료 통지)이 발신자에게 돌아온다.

IRP가 드라이버 스택을 따라 전달되는 흐름
응용 프로그램 I/O 요청
I/O Manager IRP 생성 및 관리
File System Filter Driver 예: 안티바이러스
File System Driver 예: NTFS
Volume Manager 예: FtDisk
Disk Driver 예: disk.sys
Port/Miniport Driver 예: AHCI
Hardware
비동기 I/O 처리 흐름
1 I/O 요청
앱이 비동기 I/O 요청
2 IRP 생성
I/O Manager가 IRP 생성, 드라이버 스택 전달
3 DMA 시작
디스크 드라이버가 DMA 시작, STATUS_PENDING 반환
4 앱 계속 실행
앱은 다른 작업 수행
5 DMA 완료
ISR 발생 → DPC 큐잉
6 IRP 완료
DPC가 IRP 완료 처리
7 완료 통지
APC로 앱에 통지 또는 I/O Completion Port 시그널
모델설명
WDMWindows Driver Model - 전체 스펙 구현
KMDFKernel-Mode Driver Framework - WDM 위 단순화
UMDFUser-Mode Driver Framework - 유저 모드 드라이버
Port/Miniport클래스 드라이버 + 디바이스별 미니포트

파일 읽기 시:

파일 읽기 IRP 처리 순서
1 필터 검사
안티바이러스 필터가 먼저 IRP를 검사
2 클러스터 매핑
NTFS가 클러스터 매핑 수행
3 실제 읽기
디스크 드라이버가 실제 읽기 수행
4 완료 처리
완료 후 역순으로 IRP가 올라가며 각 드라이버가 완료 처리