Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION?

James_BellingerJames_Bellinger Member - All Emails Posts: 49
Hello,

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION sets bmRequestType to
0x80, so only works for device descriptors. How, on Windows, then, can
one send a request for an interface or class descriptor? I've looked all
over for this, and so far haven't found anything that could possibly
work from user mode.

Thanks!

James

Comments

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 12,667
    On Feb 11, 2018, at 9:16 AM, xxxxx@gmail.com <xxxxx@lists.osr.com> wrote:
    >
    > IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION sets bmRequestType to 0x80, so only works for device descriptors.

    Incorrect. The GET_DESCRIPTOR request is always sent with bmRequestType set to 0x80. That's in the spec. The specific descriptor that you want is passed in the wValue field.

    Also note that, in terms of requests, there is no such thing as an "interface descriptor". Interface and class-specific descriptors are all part of the configuration descriptor. In typical operations, the only descriptor requests you every see are device descriptor, configuration descriptor, and string descriptor.

    Tim Roberts, xxxxx@probo.com
    Providenza & Boekelheide, Inc.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • James_BellingerJames_Bellinger Member - All Emails Posts: 49
    For a HID report descriptor, the Recipient bits of bmRequestType must be
    set to Interface (1). Fixing bmRequestType to 0x80 forces it to Device
    (0). The report descriptor is not part of the configuration descriptor.

    James


    On 2/11/2018 10:01 PM, xxxxx@probo.com wrote:
    > On Feb 11, 2018, at 9:16 AM, xxxxx@gmail.com <xxxxx@lists.osr.com> wrote:
    >> IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION sets bmRequestType to 0x80, so only works for device descriptors.
    > Incorrect. The GET_DESCRIPTOR request is always sent with bmRequestType set to 0x80. That's in the spec. The specific descriptor that you want is passed in the wValue field.
    >
    > Also note that, in terms of requests, there is no such thing as an "interface descriptor". Interface and class-specific descriptors are all part of the configuration descriptor. In typical operations, the only descriptor requests you every see are device descriptor, configuration descriptor, and string descriptor.
    > —
    > Tim Roberts, xxxxx@probo.com
    > Providenza & Boekelheide, Inc.
    >
    >
    > ---
    > NTDEV is sponsored by OSR
    >
    > Visit the list online at: <http://www.osronline.com/showlists.cfm?list=ntdev>;
    >
    > MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
    > Details at <http://www.osr.com/seminars>;
    >
    > To unsubscribe, visit the List Server section of OSR Online at <http://www.osronline.com/page.cfm?name=ListServer>;
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!