

The port driver interfaces with a driver called the “ miniport”. Building scatter gather arrays for data buffers.Enforcing queue depth (making sure that a device does not get more requests that it can handle).Providing timing services for requests.Some of the responsibilities for a port driver are: For example, ATAPORT.SYS is the port driver for ATA devices, and STORPORT.SYS is the port driver for SCSI devices. There are different port drivers depending on the architecture. The port driver does most of the request processing. This SRB is sent to the port driver as part of the I/O request packet ( IRP). The disk driver imbeds the CDB into a structure called the SCSI_REQUEST_BLOCK (SRB). When the request reaches the disk driver it will create a Command Descriptor Block (CDB) that will be sent to the SCSI device. The volume manager then translates the volume offset to a block number on the disk and passes the request to the disk driver. When an I/O request reaches the file system, it takes the block number of the file and translates it to an offset in the volume. At the bottom of the device stack are the port and miniport drivers. Next is the volume manager, followed by the disk driver. Windows I/O uses a layered architecture where device drivers are on a “device stack.” In a basic model, the top of the stack is the file system. So what does this mean? Let’s discuss the Windows I/O stack architecture to answer this. Reset to device, \Device\RaidPort1, was issued.

Windows’ STORPORT.SYS driver logs this message when it detects that a request has timed out, the HBA driver’s name is used in the error because it is the miniport associated with storport.īelow is an example 129 event: Event Type: Warning These warning events are logged to the system event log with the storage adapter (HBA) driver’s name as the source. Greetings fellow debuggers, today I will be blogging about Event ID 129 messages.
