CIRClass Handshaking with CIR Port Drivers
The Infrared driver stack is deprecated starting in Windows 10, version 1803 and should no longer be used.
When CIRClass discovers an instance of a CIR Port device as a result of its device interface being enabled, CIRClass will send a handshake IOCTL (IOCTL_IR_HANDSHAKE) to the newly-created port device object instance. This IOCTL informs the CIR Port driver that CIRClass has detected its device.
When the CIR Port driver receives IOCTL_IR_HANDSHAKE, the driver must complete the request. When this IOCTL is completed, CIRClass might start immediately sending IR-related requests to the new CIR Port device instance.
Note A CIR Port driver cannot delay completion of the IOCTL_IR_HANDSHAKE IRP. This IRP must be completed immediately and synchronously when IRPORT receives it.
If a CIR Port driver needs to delay before it is ready to receive requests from CIRClass, it should delay enabling its device interface.
If the handshake operation fails, CIRClass will log an error and disregard that CIR Port device instance.
Successful completion of the handshake signals a completed binding between CIRClass and a given CIR Port device instance.