Share via

IOCTL_IR_RECEIVE control code

Infrared deprecation warning


The Infrared driver stack is deprecated starting in Windows 10, version 1803 and should no longer be used.

The IOCTL_IR_RECEIVE request occurs with basic remote commands that come from a remote control.

This request is sent from the CIRClass driver and receives Run Length Coded (RLC) IR data when the device is not running in Priority Receive mode. When the device is running in Priority Receive mode, these requests remain queued but receive no data.

An IOCTL_IR_RECEIVE request remains pending until one of the following occurs:

  • The data buffer that is provided in the request has been completely filled with RLC IR data.

  • An IR time-out occurs. In the case of an IR time-out, the DataEnd member of the output structure is set to TRUE. The default time-out is 100 milliseconds.

Input Parameters


Output Parameters

Irp->MdlAddress contains a variable length IR_RECEIVE_PARAMS structure.

I/O Status Block

The Information field is set to the actual number of bytes that are copied into the supplied data buffer, including the IR_RECEIVE_PARAMS structure.

The Status field is set to STATUS_SUCCESS if the operation is completed successfully. It can also be one of the following values:

    The supplied output buffer is too small to be an IR_RECEIVE_PARAMS structure.

    The ByteCount field of the IR_RECEIVE_PARAMS structure is larger than the output buffer size that is specified in the request.


The IOCTL_IR_RECEIVE IOCTL is available on x86-based and x64-based computers with the Windows Vista operating system.



Irclass_ioctl.h (include Irclass_ioctl.h)

See also





Send comments about this topic to Microsoft