Specifications
Data Structures
1.12 I/O Request Packet (IRP)
IRP$L_BCNT 48
.
.
.IRP$L_BCNT
IRP$W_STS2 52
IRP$L_IOST1 56
IRP$L_IOST2 60
IRP$L_ABCNT 64
IRP$L_OBCNT 68
IRP$L_SEGVBN 72
IRP$L_DIAGBUF* 76
IRP$L_SEQNUM* 80
IRP$L_EXTEND 84
IRP$L_ARB* 88
IRP$L_KEYDESC* 92
Reserved (72 bytes) 96
*A read-only field
Table 1–14 Contents of an I/O Request Packet
Field Name Contents
IRP$L_IOQFL I/O queue forward link. EXE$INSERTIRP reads and writes this field when
the routine inserts IRPs into a pending-I/O queue. IOC$REQCOM reads and
writes this field when the routine dequeues IRPs from a pending-I/O queue in
order to send an IRP to a device driver.
IRP$L_IOQBL I/O queue backward link. EXE$INSERTIRP and IOC$REQCOM read and
write these fields.
IRP$W_SIZE* Size of IRP. EXE$QIO writes the symbolic constant IRP$C_LENGTH into this
field when the routine allocates and fills an IRP.
IRP$B_TYPE* Type of data structure. EXE$QIO writes the symbolic constant DYN$C_IRP
into this field when the routine allocates and fills an IRP. Note that the MSB
is set for shared memory support, otherwise it must be zero.
IRP$B_RMOD* Information used by I/O postprocessing. This field contains the same bit fields
as the ACB$B_RMOD field of an AST control block. For instance, the two bits
defined at ACB$V_MODE indicate the access mode of the process at time of
the I/O request. EXE$QIO obtains the processor access mode from the PSL
and writes the value into this field.
IRP$L_PID* Process identification of the process that issued the I/O request. EXE$QIO
obtains the process identification from the PCB and writes the value into this
field.
(continued on next page)
1–45