From: Mojo George on
I have a USB device which has only one interface that of USB mass
storage. I need to send vendor specific data to the device as USB
setup packets through control endpoint. I could do this successfully
with the help of a filter driver.

Now I would like to do this without a filter driver. For this I tried
to use DeviceIoControl() API from user mode application.
But, I could not find any IOCTL command for that except some for
querryng informtion like descriptor. One command which seems to be
almost suited is USBUSER_OP_SEND_ONE_PACKET.

I tried to send USBUSER_OP_SEND_ONE_PACKET request. But it fails with
error - UsbUserFeatureDisabled. This error may be due to following
reason. In usbuser.h, it has already been stated that
USBUSER_OP_SEND_ONE_PACKET enabled when the "devlopr" key is set in
the registry. I could not find such a key and not sure where to add
this. Could somebody help me on this?
From: Philip Ries [MSFT] on
Thanks for bringing up the documentation of this interface. You're
right that it's only partially documented. The interface is MS
internal-only and we're updating the documentation to reflect that.

I don't think the interface would work for your scenario anyhow.

Mojo George wrote:
> I have a USB device which has only one interface that of USB mass
> storage. I need to send vendor specific data to the device as USB
> setup packets through control endpoint. I could do this successfully
> with the help of a filter driver.
>
> Now I would like to do this without a filter driver. For this I tried
> to use DeviceIoControl() API from user mode application.
> But, I could not find any IOCTL command for that except some for
> querryng informtion like descriptor. One command which seems to be
> almost suited is USBUSER_OP_SEND_ONE_PACKET.
>
> I tried to send USBUSER_OP_SEND_ONE_PACKET request. But it fails with
> error - UsbUserFeatureDisabled. This error may be due to following
> reason. In usbuser.h, it has already been stated that
> USBUSER_OP_SEND_ONE_PACKET enabled when the "devlopr" key is set in
> the registry. I could not find such a key and not sure where to add
> this. Could somebody help me on this?
From: Mojo George on

Thank you for your reply.

Do you think that there is no way to send a SETUP packet with vendor
specific request to control end point from a user mode application?
From: Tim Roberts on
Mojo George <mojopg(a)gmail.com> wrote:
>
>I have a USB device which has only one interface that of USB mass
>storage. I need to send vendor specific data to the device as USB
>setup packets through control endpoint. I could do this successfully
>with the help of a filter driver.
>
>Now I would like to do this without a filter driver.

Not possible. You must use a filter driver.
--
Tim Roberts, timr(a)probo.com
Providenza & Boekelheide, Inc.