USB class filter driver problem

Hi, everyone.

I wrote a simple USB class filter driver.
I have been filtered to the .
My filter driver has been filtering the almost USB devices and
get successfully their USB device info (such as VID, PID SN etc).
But it could not filter some devices such as USB-Bluetooth dongle.
I look my driver PDOs by the devicetree tool.
They are such as following.

PDO \Device\USBPDO-3 -[USB\Vid_0e0f&Pid_0002] <- (1)
|
|–FDO Attached: <— my filter driver.
|
|-FDO \Device\0000007e
|
|-PDO \Device\USBPDO-4-[USB\Vid_4242&Pid_5dfc] <- (3)
|
|-FDO \Device_HID00000002
|-PDO \Device\USBPDO-5-[USB\Vid_0a5c&Pid_2101] <- (4)
|
|-FDO \Device\BTWUSB-0

Question:
1. Why did not my driver filter to the (3) and (4) PDO ?
And, i can not understand the relation between (1) and (3)/(4) deivce.
2. How can i filter to the (3) and (4) PDO ?

Any help will be appreciated.

Thanks.

Baker.

xxxxx@gmail.com wrote:

I wrote a simple USB class filter driver.
I have been filtered to the .

That is the “USB” device class. That means any device that appears under
“Universal Serial Bus controllers” in the Device Manager display. Note
that many, many, many USB devices do not appear in that device class,
nor should they do so.

> My filter driver has been filtering the almost USB devices and
> get successfully their USB device info (such as VID, PID SN etc).
> But it could not filter some devices such as USB-Bluetooth dongle.
> I look my driver PDOs by the devicetree tool.
> They are such as following.
>
> PDO \Device\USBPDO-3 -[USB\Vid_0e0f&Pid_0002] <- (1)
> |
> |–FDO Attached: <— my filter driver.
> |
> |-FDO \Device\0000007e
> |
> |-PDO \Device\USBPDO-4-[USB\Vid_4242&Pid_5dfc] <- (3)
> |
> |-FDO \Device_HID00000002
> |-PDO \Device\USBPDO-5-[USB\Vid_0a5c&Pid_2101] <- (4)
> |
> |-FDO \Device\BTWUSB-0
>
> Question:
> 1. Why did not my driver filter to the (3) and (4) PDO ?

Because those are not USB controllers, so they do not appear in the USB
device class.

> And, i can not understand the relation between (1) and (3)/(4) deivce.

(1) is your USB hub. (3) and (4) are devices plugged into that hub.

> 2. How can i filter to the (3) and (4) PDO ?

What do you want to do to them? If you are an upper filter to the USB
device class, you will catch all USB device requests. It would be up to
you to keep track of which device was which. If you want to filter (3)
and (4) separately, you would have to filter the HID device class and
the Bluetooth device class.


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