Chapter 2 Layered I/O, IRPs, and I/O Objects
-
This chapter contains the following information:
-
2.1 End-user I/O
Requests and NT File Objects
2.1.1 Points to
Consider about User I/O Requests
-
2.2 IRPs and
Driver-specific I/O Stack Locations
-
2.2.1 Points to
Consider about Processing IRPs
-
2.3 NT Driver
Objects and Standard Driver Routines
-
2.3.1 NT Object Opacity
2.3.2 Driver Object Entry Points
2.3.3 Other Standard NT
Driver Routines
2.3.4
Points to Consider about NT Standard Driver Routines
-
2.4 Device
Configurations and Layered NT Drivers
-
2.4.1 Interactive Devices
2.4.1.1
Video Adapter Configurations and Driver Layers
2.4.1.2
Keyboard and Mouse Configurations and Driver Layers
2.4.2 Parallel
and Serial Devices and Driver Layers
2.4.3 Sound Device and Driver
Layers
2.4.4 Mass-storage
Devices and Driver Layers
2.4.4.1 AT Disk Devices
2.4.4.2 Floppy Devices
2.4.4.3 SCSI Devices
2.4.5 Points to
Consider about Adding NT Drivers
-
2.5
NT Objects with Device, Configuration, or Layer Dependencies
-
2.5.1 Video Driver’s Device
Objects
2.5.2 Keyboard and
Mouse Drivers’ Device Objects
2.5.3 Parallel
and Serial Drivers’ Device Objects
2.5.4 Sound Driver’s Device
Objects
2.5.5 AT Disk
Driver’s Device and Controller Objects
2.5.6 Floppy Driver’s Device
Objects
2.5.7 SCSI Drivers’ Device
Objects
2.5.8 Points to Consider
about NT Objects
Every operating system has an implicit or explicit I/O model for handling the
flow of data to and from peripheral devices. The Windows NT® executive I/O
model has the following general features:
-
The NT I/O Manager presents a consistent interface to all kernel-mode drivers,
including device, intermediate, and file system drivers. All I/O requests to
NT drivers are sent as I/O request packets (IRPs).
-
I/O operations are layered. That is, the I/O Manager exports system services,
which user-mode protected subsystems call to carry out I/O operations on
behalf of their applications and/or end users. The I/O Manager intercepts
these calls, sets up one or more IRPs, and routes them through possibly
layered NT drivers to physical devices.
-
The I/O Manager defines a set of standard routines, some optional, for NT
driver writers to implement. All NT drivers follow a relatively consistent
implementation model, given the differences among peripheral devices and the
differing functionality required of physical, virtual, logical, and file
system drivers.
-
Like NT itself, NT drivers are object-based. Drivers, their devices, and
system hardware are represented as NT objects. The I/O Manager and other NT
components export kernel-mode support routines that NT drivers can call to get
work done by manipulating the appropriate objects.
This chapter introduces the NT I/O model, supplying an overview of how
kernel-mode drivers fit into the system, of how NT drivers process IRPs, of
the system-defined standard driver routines, of common device configurations
and corresponding layered drivers, and of the NT objects that represent
devices, drivers, and system I/O hardware.