阅读:2778回复:3
请教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驱动,虽然返回值表示成功但是却没有任何效果。 我是这样调用的: lpUsbFuncs->lpLoadGenericInterfaceDriver(hDevice, pUsbAudio->usbhidIF.lpHidIF); pUsbAudio->usbhidIF.lpHidIF是之前通过lpGetDeviceInfo获取到的接口句柄。 5、网上找到一个usb camera的源码,看着好复杂啊~~~ 我都不知道USB Audio驱动该从何处入手了,现在仅仅是实现了USBDeviceAttach,USBInstallDriver,USBUnInstallDriver三个函数,让驱动DLL能够正常加载了,后面该做什么我现在一点头绪都没有。。。 各位前辈有谁做过USB Audio驱动么,希望各位大大能够指点一二,给点思路也好,多谢撒~~~ |
|
沙发#
发布于:2009-02-26 15:39
Audio Class 和HID Class的驱动是分成两个DLL实现的. wince 没有提供usb audio driver的例子,你参考pci audio diriver + usb printor driver就可以写出usb audio driver. 上层接口参考pci audio driver,下层调用参考usb printor driver.
|
|
|
板凳#
发布于:2009-02-27 10:45
引用第1楼MacWin于2009-02-26 15:39发表的 : 哇,太感谢啦 我已经迷途好久了,乏人指点 再次谢谢! 深入问一下:现在我只能加载上去一个DLL,成功后就不再提示第二个了。如何才能把HID的DLL也加载上去呐?HID的注册表怎么设置吖? 注册表是这样设置的: [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" |
|
地板#
发布于:2009-08-12 11:37
你可以添加一个order
|
|