Specifications

Remote Control and Receiver-Transceiver Specifications and Requirements
for Windows Media Center in Windows Operating Systems
154
Used during driver load and in first run to determine what hardware is connected to the system
and if that hardware supports the functionality the user is trying to configure.
Operation
Returns device capabilities in the IR_DEV_CAPS_V1 or IR_DEV_CAPS_V2 structure.
The port driver should examine the size of the output buffer. If the output buffer is big enough to
hold an IR_DEV_CAPS_V2 structure, the port driver should fill in the IR_DEV_CAPS_V2 values,
set ProtocolVersion to DEV_CAPS_PROTOCOL_VERSION_V2, and set the Information field
for sizeof(IR_DEV_CAPS_V2). If the buffer is only big enough to hold an IR_DEV_CAPS_V1
structure, the port driver should fill in the IR_DEV_CAPS_V1 values, set ProtocolVersion to
DEV_CAPS_PROTOCOL_VERSION_V1, and set the Information field to
sizeof(IR_DEV_CAPS_V1).
Input
None.
Output
Irp->AssociatedIrp.SystemBuffer points to an IR_DEV_CAPS_V1 or IR_DEV_CAPS_V2
structure to be filled in by the port driver.
I/O Status Block
The Information field is set to sizeof(IR_DEV_CAPS_V1) or IR_DEV_CAPS_V2 if successful.
The value of this result depends on the size of the buffer passed as indicated above.
The Status field is set to STATUS_SUCCESS if the operation is completed successfully. It may
also be the following value:
STATUS_BUFFER_TOO_SMALL - The supplied output buffer is too small to be an
IR_DEV_CAPS_V1 or IR_DEV_CAPS_V2 structure.
For more information, see IR_DEV_CAPS_V1 and IR_DEV_CAPS_V2.
IOCTL_IR_GET_EMITTERS
User Scenario
Used in first run to identify how many emitters are connected to the system and which ports have
emitters connected.
Operation
Gets attached emitters and returns the information in a bitmask. This needs to return timely
information. It is expected that the user will plug and unplug emitters during the operation of the
PC, so it is necessary to query the hardware at the time of the call.
Input
None.
Output
Irp->AssociatedIrp.SystemBuffer. Contains a pointer to a 32-bit value to be filled in with a
bitmask representing the attached emitters.
I/O Status Block
The Information field is set to sizeof(ULONG) if the operation is successful.