I/O 요청 및 파일 개체 End-User

커널 모드 드라이버는 Windows 또는 POSIX와 같이 이미 익숙한 프로그래밍 인터페이스를 구현하는 보호된 하위 시스템에 의해 최종 사용자에게 숨겨집니다. 디바이스는 I/O 관리자가 제어하는 명명된 파일 개체로만 보호된 하위 시스템을 포함하는 사용자 모드 코드에 표시됩니다.

다음 그림에서는 최종 사용자, 하위 시스템 및 I/O 관리자 간의 관계를 보여 줍니다.

파일, 볼륨 및 디바이스를 나타내는 파일 개체를 보여 주는 다이어그램

Win32 하위 시스템과 같은 보호된 하위 시스템은 I/O 시스템 서비스를 통해 적절한 커널 모드 드라이버에 I/O 요청을 전달합니다. 이전 그림에 표시된 하위 시스템은 디스플레이, 비디오 어댑터, 키보드 및 마우스 장치 드라이버의 지원에 따라 달라집니다.

보호된 하위 시스템은 최종 사용자와 애플리케이션이 드라이버를 포함하여 커널 모드 구성 요소에 대해 아무것도 알 필요가 없도록 합니다. 따라서 I/O 관리자는 보호된 하위 시스템이 컴퓨터별 디바이스 구성 또는 드라이버 구현에 대해 아무것도 알 필요가 없도록 차단합니다.

I/O 관리자의 계층화된 접근 방식은 대부분의 드라이버가 다음에 대해 아무것도 알 필요가 없도록 합니다.

  • I/O 요청이 Win32 또는 POSIX와 같은 특정 보호된 하위 시스템에 시작되었는지 여부

  • 지정된 보호된 하위 시스템에 특정 종류의 사용자 모드 드라이버가 있는지 여부

  • 드라이버에 대한 보호된 하위 시스템의 I/O 모델 및 인터페이스는 무엇인가요?

I/O 관리자는 드라이버에 단일 I/O 모델, 드라이버가 I/O 작업을 수행하는 데 사용할 수 있는 커널 모드 지원 루틴 집합 및 I/O 요청의 보낸 사람과 이에 응답해야 하는 드라이버 간의 일관된 인터페이스를 드라이버에 제공합니다.

이전 그림과 같이 하위 시스템 및 네이티브 애플리케이션은 I/O 관리자가 제공한 파일 개체 핸들을 통해서만 드라이버의 디바이스 또는 대용량 스토리지 디바이스의 파일에 액세스할 수 있습니다. 이러한 파일 개체를 열거나 디바이스 또는 데이터 파일에 대한 I/O 핸들을 가져오기 위해 하위 시스템은 명명된 파일을 여는 요청과 함께 I/O 시스템 서비스를 호출합니다. 명명된 파일에는 파일 개체의 커널 모드 이름에 대한 하위 시스템별 별칭(기호 링크)이 있을 수 있습니다.

이러한 시스템 서비스를 내보내는 I/O 관리자는 디바이스 또는 데이터 파일을 나타내는 파일 개체를 찾거나 만들고 적절한 드라이버를 찾는 역할을 담당합니다.