I/O Request Packets

All I/O requests are passed to the driver by Microsoft® Windows NT® using the standard IRP structure. For more details of this, refer to the Windows NT Device Driver Kit.

I/O request packets are defined in terms of C structures. The relevant fields are accessed as follows:

IRP.CurrentStackLocation -> MajorFunction Defines the IRP as an IOCTL.
IRP.IoStatus Status codes upon completion of request.
IRP.CurrentStackLocation -> IoControlCode The IOCTL function code.

IoControlCode identifies the function to be performed and IoStatus is the mechanism for returning result codes to the SNALink. The structure IOStatus is defined as follows:

IoStatus.Status
A standard Windows NT result code (for example, STATUS_INVALID_PARAMETER) as defined in the Windows NT header file NTSTATUS.H.
IoStatus.Information
For successful read-frame IOCTLs, the length of the received buffer (can be zero if no data available). Additional error information, as defined in the header file SECLINK.H.