Передача функции в качестве параметра не вызывает ее:
In [105]: def f1(f):
.....: print 'hi'
.....: return f
.....:
In [106]: def f2():
.....: print 'hello'
.....:
In [107]: f1(f2)
hi
Out[107]: <function __main__.f2>
, конечно, если вы передадите функцию вызов в другую функцию, то, что вы проходите, возвращаемое значение:
In [108]: f1(f2())
hello
hi
Обратите внимание на порядок, в котором они вызывается: f2
вызывается первым, а его возвращаемое значение передается в f1
.
Стек протокола USB состоит из нескольких уровней и довольно сложен. Вам действительно нужно прочитать хорошую книгу по USB (например, USB Complete ), чтобы понять, как все это сочетается друг с другом. Суть в том, что вы хотите подняться как можно выше по стеку протоколов, в идеале используя API системного уровня (например, если это USB HID-устройство, тогда просто относитесь к нему как к любому другому HID-устройству, а не думайте, что это как USB-устройство - то же самое для запоминающих устройств и т. д.).