Hi,
For USB-Serial driver(WDF), we are using custom commands for handling ioctl set line control
This is how I am converting the urb and sending.
WDF_MEMORY_DESCRIPTOR_INIT_BUFFER(...)
...
WDF_USB_CONTROL_SETUP_PACKET_INIT_CLASS(
&controlSetupPacket,
BmRequestHostToDevice,
BMREQUEST_TO_INTERFACE,
Request, //22
Value,
0);
...
WdfUsbTargetDeviceSendControlTransferSynchronously(...)
When seen from the device monitor /sniffer tools this request is appearing as:
Control Transfer (DOWN),
Pipe Handle: 0x0
Setup Packet
21 22 00 00 00 00 00 00
Recipient: Interface
Request Type: Class
Direction: Host->Device
Request: 0x22 (Unknown)
Value: 0x0
Index: 0x0
Length: 0x0
However, I also used the windows usbser driver, for the same IOCTL the sniffer tool gives o/p as..
Class-Specific Request (DOWN),
Destination: Interface, Index 0
Reserved Bits: 0
Request: 0x22
Value: 0x0
Send 0x0 bytes to the device
However for both the requests the response coming as
Control Transfer (UP),
From above two please let me know what URB format differences I am missing in the call to WDF_USB_CONTROL_SETUP_PACKET_INIT_CLASS?
For your info:
The intr EP is on bInterfaceNumber: 00
And the Bulk IN and OUT are on the bInterfaceNumber: 01
Hope I need not require to do any additional calls to select the interface and EPs (please clarify).
Thanks in adv.