On Sep 19, 2008, at 9:04 AM, Christopher Moore wrote:

Hello everyone,

I've spent the last 2 days trying to figure these out. One is a Control Transfer to the device , which returns a setup packet. The setup packet I
understand, but I'm unsure as to what the request is.  The second is a
bulk/interrupt transfer.  I also think/know these are HID requests.

Sorry for the delay in getting back to you.

1)

[2268420 ms]  >>>  URB 9 going down  >>>
-- URB_FUNCTION_CLASS_INTERFACE:
  TransferFlags          = 00000000 (USBD_TRANSFER_DIRECTION_OUT,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000009
  TransferBuffer       = 82764200
  TransferBufferMDL    = 00000000
    00000000: 04 c1 33 00 43 07 9a 4f 68
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000022
  Request                 = 00000009
  Value                   = 00000304
  Index                   = 00000003
[2268426 ms] UsbSnoop - MyInternalIOCTLCompletion(f5c81126) :
fido=827d3498, Irp=826293a8, Context=8255cbf0, IRQL=2
[2268427 ms]  <<<  URB 9 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 825616c8
  TransferFlags        = 0000000a (USBD_TRANSFER_DIRECTION_OUT,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000009
  TransferBuffer       = 82764200
  TransferBufferMDL    = 827c7d00
  UrbLink              = 00000000
  SetupPacket          =
    00000000: 21 09 04 03 03 00 09 00

I believe this is a set idle request (0x0a).

TransferFlags is a Windows-specific value.

Should I even be concerned
with TransferBufferMDL: 04 c1 33 00 43 07 9a 4f 68 (from the going down
request) or am I driving myself crazy over nothing?

Yes, it is the data portion of the packet (report data). Not sure how you'd interpret that, though.

bRequest is 09 (SET_REPORT). Since wValue is 0304, the report type is 03 (feature), and the Report ID is 04.


2)
[2253160 ms]  >>>  URB 7 going down  >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 8272e024 [endpoint 0x00000083]
  TransferFlags        = 00000003 (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000008
  TransferBuffer       = 828fef00
  TransferBufferMDL    = 00000000
  UrbLink              = 00000000

[2268496 ms]  <<<  URB 7 coming back  <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 8272e024 [endpoint 0x00000083]
  TransferFlags        = 00000003 (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000008
  TransferBuffer       = 828fef00
  TransferBufferMDL    = 8258e5d0
    00000000: 03 83 34 00 43 00 00 00
  UrbLink              = 00000000

This is a transfer to the HID endpoint (0x83) and appears to be either a
"report" or get_protocol (0x03).

Interrupt transfers are assumed to be for sending or receiving report data. Again, TransferFlags is not equivalent to bRequest or bRequestType - it is a bitmask of the USBD_* flags mentioned in parentheses at the end of that line.

  Here, what does TransferBufferMDL: 03 83
34 00 43 00 00 00, mean ?

Most likely, it is returning data (83 34 00 43 00 00 00) from report ID 03.


If these are setting reports... either to #3 or #4, they are alphanumeric displays (14-segment according to the usage tables and have values between
0 and 255).  Reports #3 and #4 are 7 fields of 8 bits each and are
Input(Report #3) and Feature (Report #4)

If someone could please help, I would greatly appreciate it. I've looked
forwards and backwards through the usb and hid pdf files and no table
seems to make sense with these values.

Attached is the rest of the log for reference.

Thanks

Christopher<Replug_and_Initialize.log>________________________________ _______________
libhid-discuss mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss


--
Charles Lepple


_______________________________________________
libhid-discuss mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss

Reply via email to