Windows Kernel-Mode I/O 관리자

컴퓨터는 외부 세계와 I/O(입력 및 출력)를 제공하는 다양한 디바이스로 구성됩니다. 일반적인 장치는 키보드, 마우스, 오디오 컨트롤러, 비디오 컨트롤러, 디스크 드라이브, 네트워킹 포트 등입니다. 디바이스 드라이버는 디바이스와 운영 체제 간의 소프트웨어 연결을 제공합니다. 이러한 이유로 I/O는 디바이스 드라이버 기록기에 매우 중요합니다.

Windows 커널 모드 I/O 관리자는 디바이스 드라이버에서 제공하는 인터페이스와 애플리케이션 간의 통신을 관리합니다. 디바이스는 운영 체제와 일치하지 않을 수 있는 속도로 작동하므로 운영 체제와 디바이스 드라이버 간의 통신은 주로 I/O 요청 패킷(IRP)을 통해 수행됩니다. 이러한 패킷은 네트워크 패킷 또는 Windows 메시지 패킷과 유사합니다. 운영 체제에서 특정 드라이버로, 한 드라이버에서 다른 드라이버로 전달됩니다.

Windows I/O 시스템은 스택이라는 계층화된 드라이버 모델을 제공합니다. 일반적으로 IRP는 통신을 용이하게 하기 위해 동일한 스택의 한 드라이버에서 다른 드라이버로 이동합니다. 예를 들어 조이스틱 드라이버는 USB 허브와 통신해야 하며, USB 호스트 컨트롤러와 통신해야 하므로 PCI 버스를 통해 컴퓨터 하드웨어의 나머지 부분과 통신해야 합니다. 스택은 조이스틱 드라이버, USB 허브, USB 호스트 컨트롤러 및 PCI 버스로 구성됩니다. 이 통신은 스택의 각 드라이버가 IRP를 보내고 받도록 하여 조정됩니다.

전체 스택이 효율적으로 작동하려면 드라이버가 적시에 IRP를 보내고 받아야 한다는 점을 충분히 강조할 수 없습니다. 드라이버가 스택의 일부이며 정보를 제대로 수신, 처리 및 전달하지 않으면 드라이버가 시스템 충돌을 일으킬 수 있습니다.

IRP에 대한 자세한 내용은 IRP 처리를 참조하세요.

드라이버 스택에 대한 자세한 내용은 디바이스 개체 및 디바이스 스택을 참조하세요.

I/O 관리와 관련된 프로그래밍 기술 분야는 I/O 관리자 프로그래밍 기술을 참조하세요.

I/O 관리자에 직접 인터페이스를 제공하는 루틴에는 일반적으로 "Io"라는 문자 접두사로 지정됩니다. 예를 들어 IoCreateDevice입니다. I/O 관리자 루틴 목록은 I/O 관리자 루틴을 참조하세요.

IRPS와 관련된 루틴 목록은 IRP를 참조하세요.

I/O 관리자에는 두 개의 하위 구성 요소인 플러그 앤 플레이 관리자와 전원 관리자가 있습니다. 플러그 앤 플레이 및 전원 관리 기술에 대한 I/O 기능을 관리합니다. 플러그 앤 플레이 관리에 대한 자세한 내용은 Windows Kernel-Mode 플러그 앤 플레이 Manager를 참조하고 전원 관리에 대한 자세한 내용은 Windows Kernel-Mode Power Manager를 참조하세요.