The OnIrp event provides low-level to device driver.  

 OnIrp(
  LONG MajorFunction, // Major I/O request function
  LONG IoControlCode, // Device Control Code
  VARIANT_BOOL bUpDown, // Request direction
  LONG Status, // Return status
  VARIANT Data, // Sent/received data
  LONG LowTimestamp, // Low-order part of timestamp
  LONG HighTimestamp // High-order part of timestamp
 );


Parameters
MajorFunction     [in] The Serial-specific operation of the major I/O requests   

ControlCode     [in] I/O device control requests   

bUpDown     [in] This parameter defines the direction of the request and has the following values:

 TRUE (UP) Data will contain the data that are stored in input buffer of IRP packet
 FALSE (DOWN) Data will contain the data that are stored in output buffer of IRP packet

  

Status     [in] This parameter contains the return status of operation. You may use it to confirm that request succeeded or receive ERROR code in failure. If bUpDown parameter is equal to FALSE then Status value is ignored   

Data     [in] This parameter contains the input/output buffer data of IRP request depending on bUpDown value   

LowTimestamp     [in] This parameter is a low-order part of the structure FILETIME. This is the timestamp when IRP was generated.   

HighTimestamp     [in] This parameter is a high-order part of the structure FILETIME. This is the timestamp when IRP was generated.