|
请教WINCE下USB AUDIO设备驱动问题
[复制链接]
在WINCE6.0上做一个基于PCM2704芯片的USB AUDIO设备驱动。这是一个USB混合设备,有Audio Class 和HID Class两种接口。此设备有三个Interface,分别是Audio Control,Audio Stream,HID Interface。三个EndPoint,分别是Default EP0,Audio Stream Interface EP2 Output Isoc,HID EP5 Input Interrupt。HID用来调节音量大小。
我的问题:
1、把Audio Class 和HID Class的驱动分开成两个DLL实现?还是合并成一个DLL实现?合并实现的话,Audio Class,HID Class的处理都混在一起,这样做不好吧?
2、分开实现的话,在注册表中应该如何设置?才能够将Audio Class 和HID Class分成两个DLL加载?
现在我只能加载上去一个DLL,成功后就不再提示第二个了。
用一个DLL加载的设置如下,能够正常加载DLL文件。
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\2235_9988\Default\Default\UsbAudio_Class]
"Prefix" = "WAV"
"Dll" = "UsbAudio.Dll"
"FriendlyName" = "UsbAudio Driver"
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\UsbAudio_Class]
"Prefix" = "WAV"
"Dll" = "UsbAudio.Dll"
3、我尝试在[HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\2235_9988\Default\12_1\AudioHid]下添加HID设备注册信息,但是驱动DLL加载失败。
12_1 是根据下面的信息确定的
Usage Page: 12 (Consumer)
Usage: 1 (Consumer Control)
4、我又尝试在USBDeviceAttach函数中调用lpLoadGenericInterfaceDriver函数加载HID驱动,虽然返回值表示成功但是却没有任何效果。这个函数怎么用哇~~ MSDN上信息太少啦
我是这样调用的:
lpUsbFuncs->lpLoadGenericInterfaceDriver(hDevice, pUsbAudio->usbhidIF.lpHidIF);
pUsbAudio->usbhidIF.lpHidIF是之前通过lpGetDeviceInfo获取到的HID接口句柄。
5、网上找到一个usb camera的源码来学习,看着好复杂啊~~~ 我都不知道USB Audio驱动该从何处入手了,现在仅仅是实现了USBDeviceAttach,USBInstallDriver,USBUnInstallDriver三个函数,让驱动DLL能够正常加载了,后面该做什么我现在一点头绪都没有。。。
从www.usb.org上DOWN了usb audio class的协议,不知道怎么跟程序联系到一起。
各位前辈有谁做过USB Audio驱动么,希望各位大大能够指点一二,给点思路也好,多谢撒~~~
|
|