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 완료 과정
섹션 제목: “비동기 I/O 완료 과정”비동기 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 시그널 드라이버 모델
섹션 제목: “드라이버 모델”| 모델 | 설명 |
|---|---|
| WDM | Windows Driver Model - 전체 스펙 구현 |
| KMDF | Kernel-Mode Driver Framework - WDM 위 단순화 |
| UMDF | User-Mode Driver Framework - 유저 모드 드라이버 |
| Port/Miniport | 클래스 드라이버 + 디바이스별 미니포트 |
파일 읽기 시:
파일 읽기 IRP 처리 순서
1 필터 검사
안티바이러스 필터가 먼저 IRP를 검사 2 클러스터 매핑
NTFS가 클러스터 매핑 수행 3 실제 읽기
디스크 드라이버가 실제 읽기 수행 4 완료 처리
완료 후 역순으로 IRP가 올라가며 각 드라이버가 완료 처리 관련 개념
섹션 제목: “관련 개념”- 디바이스 드라이버 - I/O Manager가 IRP를 전달하는 대상인 커널 드라이버 모듈
- DMA (Direct Memory Access) - 드라이버 스택에서 디스크 드라이버가 DMA를 시작하여 데이터를 전송
- 블로킹 vs 논블로킹 I/O - Windows IRP 기반의 비동기 I/O 완료 모델
- NTFS 구조 - IRP가 드라이버 스택에서 처리되는 Windows 파일 시스템
- 인터럽트 (Interrupt) - DMA 완료 시 ISR이 발생하여 IRP 완료 처리를 시작하는 메커니즘