I/O Requests for Mass Storage Drivers
This section contains the following information:
This section describes the basic set of I/O requests that are sent to drivers of storage devices and to intermediate drivers that are layered above them. It describes the system-defined I/O control codes that must be handled by all storage devices and those that must be handled by a particular type of device.
Most I/O control codes listed in this section can be issued from either a kernel-mode driver or a user-mode application. When the I/O control code is issued from a kernel-mode driver, the caller provides an I/O Request Packet (IRP) that contains an IO_STATUS_BLOCK data structure. This data structure is used to return error information to the caller. When the I/O control code is issued from a user-mode application with the DeviceIocontrol routine, the caller can obtain error information by calling the GetLastError routine.