Specifications
Remote Control and Receiver-Transceiver Specifications and Requirements
for Windows Media Center in Windows Operating Systems
82
Endpoint Descriptor – OUT Endpoint
The device must have an endpoint descriptor that describes how the host communicates infrared
data and other information to the device. (Endpoint #0 is the control endpoint and does not
require an endpoint descriptor.) For more information, see section 9.6.6 of the USB 2.0
specification.
The following code shows an OUT endpoint descriptor structure:
typedef struct _endpointDescriptorEp1Out {
byte bLength = sizeof(struct _endpointDescriptorEp1Out);
byte bDescriptorType = TYPE_ENDPOINT_DESCRIPTOR;
byte bEndpointAddress = 0x01; // EP1 OUT.
byte bmAttributes = 0x03; // Interrupt endpoint.
word wMaxPacketSize; // Hardware dependent.
byte bInterval; // Suggested value = 1ms.
}
Endpoint Descriptor – IN Endpoint
The device must have second endpoint descriptor that describes how the device communicates
infrared data and other information to the host. For more information, see section 9.6.6 of the
USB 2.0 specification.
The following code shows an IN endpoint descriptor structure:
typedef struct _endpointDescriptorEp1In {
byte bLength = sizeof(struct _endpointDescriptorEp1In);
byte bDescriptorType = TYPE_ENDPOINT_DESCRIPTOR;
byte bEndpointAddress = 0x81; // EP1 IN.
byte bmAttributes = 0x03; // Interrupt endpoint.
word wMaxPacketSize; // Hardware dependent.
byte bInterval; // Suggested value = 1 ms.
}
Required String Descriptors
The device must return strings for byte iManufacturer, iProduct, and iSerialNumber. Strings
are not required for iConfiguration or iInterface.
The serial-number string must be unique to the device. This means that two identical devices
created by the same manufacturer will each have their own serial numbers. This is necessary
because there may be two IR transceivers on a single host and the host uses the serial number
to discriminate between the two devices.
Additionally, the Microsoft OS String Descriptor must be returned to the host when the host
requests string ID = 0xEE. This is necessary to support the Microsoft Compatible Device
Descriptor.
Microsoft Compatible Device Descriptor
The Microsoft® Compatible Device Descriptor is used by firmware to tell the host that the device
is an IR emulator device. The host then loads the appropriate drivers. For more information about
the Microsoft OS Descriptor and the Extended Compat ID Descriptor, see the Windows Hardware
Developer Central page on the Microsoft Web site
(http://go.microsoft.com/fwlink/?LinkId=144040).










