討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 掌握Salesforce雲端管理秘訣 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
是用visual audio driver实现还是filter?
更改我的閱讀文章字型大小
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/18 上午 09:15:33
情况描述:

原来我们公司有一款voip产品,一端带有USB接口可以连在PC,另一端连接通过电话线电话。
连在PC上以后被识别成一种USB composite设备(同时在声音、视频和游戏控制器一栏中显示USB Audio Device以及
在人体学输入设备中显示HID-compliant device和USB人体学输入设备)(如下图所示)。
我所有要求做的是在这个USB composite设备驱动之上加一层过滤驱动,以对通话质量(包括回音,LEC,dtmf等)进行改善。

研究发现:
通过对USB Audio Device和USB人体学输入设备以及HID-compliant device设备的驱动发现,这些驱动都是windows xp自带的。
并且只有USB Audio Device和USB人体学输入设备含有驱动。

我的思路:
对USB Audio Device和USB人体学输入设备分别添加上层过滤驱动,对音频数据进行过滤和另外的处理。
达到对通话质量(包括回音、LEC,dtmf等)进行改善的目的。


困惑:
1. 不知道我这样做是否正确?
2. 如果思路正确,该如何捕获那些音频数据?
3. 经过这几天在我们论坛上看到的消息,不知能否用visual audio driver实现还是用filter?
4. visual audio driver是什么概念,与真正的audio driver有什么区别,是不是visual没有phsical device?


一个驱动新手,理解上可能有很多偏颇,欢迎指正。
谢谢你的建议和指点!!
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/18 上午 10:12:33
Forget the attached pic:
---。。。
---通用串行总线控制器
-----usb composite device
---人体学输入设备
------HiD -compliant device
------USB 人体学输入设备
--- 声音、视频和游戏控制器
--------USb Audio Device
--------。。。
-------- 。。。
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/18 上午 10:17:03
各位大大们,新兵卫, 北极熊,天行者!
请给个建议,非常谢谢!!
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人boatman註記此篇回應為很有道理 2009/11/18 下午 10:22:17
Hi
I think you should reference the ddk sample code in src\wdm\audio\gfx
It should be why you want.

>情况描述:
>
>原来我们公司有一款voip产品,一端带有USB接口可以连在PC,另一端连接通过电话线电话。
>连在PC上以后被识别成一种USB composite设备(同时在声音、视频和游戏控制器一栏中显示USB Audio Device以及
>在人体学输入设备中显示HID-compliant device和USB人体学输入设备)(如下图所示)。
>我所有要求做的是在这个USB composite设备驱动之上加一层过滤驱动,以对通话质量(包括回音,LEC,dtmf等)进行改善。
>
>研究发现:
>通过对USB Audio Device和USB人体学输入设备以及HID-compliant device设备的驱动发现,这些驱动都是windows xp自带的。
>并且只有USB Audio Device和USB人体学输入设备含有驱动。
>
>我的思路:
>对USB Audio Device和USB人体学输入设备分别添加上层过滤驱动,对音频数据进行过滤和另外的处理。
>达到对通话质量(包括回音、LEC,dtmf等)进行改善的目的。
>
>
>困惑:
>1. 不知道我这样做是否正确?
>2. 如果思路正确,该如何捕获那些音频数据?
>3. 经过这几天在我们论坛上看到的消息,不知能否用visual audio driver实现还是用filter?
>4. visual audio driver是什么概念,与真正的audio driver有什么区别,是不是visual没有phsical device?
>
>
>一个驱动新手,理解上可能有很多偏颇,欢迎指正。
>谢谢你的建议和指点!!
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/19 上午 10:02:23
Dear, 新兵卫
Thanks a lot for your advice, I'd like to program a filter driver which will be placed above the driver of the sound card, so that I get all the information sent to the card.

Maybe the sample \src\wdm\audio\gfx is actually what I want.

I have installed Windows XP DDK (WINDDK\2600\src\wdm\audio, after installed), but I can't find the gfx folder in audio directory, I googled found gfx in one version after installed was "WINDDK\3790.1830\src\wdm\audio\gfx".

So my puzzle is where I can find the gfx sample, should I re-install WINDDK\3790.1830 version?

Maybe you could post a link to a tutorial or give me some help. Thanks!
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/19 下午 01:47:56
Dear 新兵衛

I also installed DDK 3790.1830 version ,from which I get the gfx folder.

Thanks for your help!

Boatman
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/19 下午 01:53:00
Hi
I use the DDK 3790.1830. If you re-install the 3790.1830 you will find the sample code. This sample code will be in Windows XP SP1 DDK or later. You can find the introduction in MSDN or WDK Document.
Your product is very similar to Polycomm USB Voip product. Please reference follow URL.
http://reviews.cnet.com/headphones-headsets/polycom-communicator-c100s-usb/4505-6468_7-31901663.html
I think you just need to figure out what they done, and do the same thing.

>Dear, 新兵卫
>Thanks a lot for your advice, I'd like to program a filter driver which will be placed above the driver of the sound card, so that I get all the information sent to the card.
>
>Maybe the sample \src\wdm\audio\gfx is actually what I want.
>
>I have installed Windows XP DDK (WINDDK\2600\src\wdm\audio, after installed), but I can't find the gfx folder in audio directory, I googled found gfx in one version after installed was 'WINDDK\3790.1830\src\wdm\audio\gfx'.
>
>So my puzzle is where I can find the gfx sample, should I re-install WINDDK\3790.1830 version?
>
>Maybe you could post a link to a tutorial or give me some help. Thanks!
>
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/19 下午 05:19:39
Dear 新兵衛

After having reading the readme files in gfs and its subdirectory, I almost got how to add this filter driver.
But two puzzles come out, although I read many articles in MS msdn:

1. This filter is upper or lower one and to which existed driver? The existed driver for this device includes: drmk.sys,ks.sys,portcls.sys,stream.sys,usbaudio.sys,ksproxy.sys, ksuser.dll and wdmaud.drv.

2. In the INF file of root directory of "gfx", the readme file tell me to modify some GUIDs, like the following:
 
  GUIDS THAT NEED TO BE CUSTOMIZED
You will need to modify the following GUIDs when you adapt the sample code for your new project:

· The GUID assigned to GFX.DeviceDesc in the INF file. The same GUID appears again in the INF file with the name GFX.DeviceId.

· The GUID added to registry pathname Gfx\Userinterface\CLSID in the INF file. The same GUID appears in the section GFXPROPLib in the file GFXprop.idl.

· The GUID with the name GFXGUID.ChannelSwap in the INF file. The same GUID is used as the GFX node name in the header file msgfx.h.

· The GUID named GFX.Ref in the INF file. The same GUID is used as the GFX filter name in the header file msgfx.h.

So, How to know all GUIDs, if it ramdom generated by some special tools(like GenGUID)? Are all the GUIDs definite?

Any suggestions will be great welcome, Thanks a lot!
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/19 下午 07:04:32
Hi
please read the readme in src/wdm/audio/gfx/gfxswap/readme.htm
It will tell you how to do it.
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/20 下午 01:34:17
Hi, 新兵衛

According to the reame.htm you mentioned , the dirver was installed successfully into my PC to the sound card.
Great thanks to you!

Two questions I need your suggestions:

a. This filter is filtering which existing drivers? USBAudio.sys? or anyone else? Why I can't find the driver in the driver-list to my sound card under XP OS?

b. If I want to enhance the data transform quality(including echo and LEC etc) between the sound card and app, What I should do to modify the codes?

Thank you and great thanks to this Programmer Club.
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/24 下午 12:06:01
Hi
a. According the readme. The GFX is not a filter driver. It is Kernel Stream Filter. And it depend on Windows System to connect gfx filter to USBAudio.sys. So you will not find it in your USBAudio driver stack.

b. I can not tell you how to modify it. It depend on what you want to do. Please trace the GFX sample.


>Hi, 新兵衛
>
>According to the reame.htm you mentioned , the dirver was installed successfully into my PC to the sound card.
>Great thanks to you!
>
>Two questions I need your suggestions:
>
>a. This filter is filtering which existing drivers? USBAudio.sys? or anyone else? Why I can't find the driver in the driver-list to my sound card under XP OS?
>
>b. If I want to enhance the data transform quality(including echo and LEC etc) between the sound card and app, What I should do to modify the codes?
>
>Thank you and great thanks to this Programmer Club.
>
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/25 下午 01:22:53
Hi,

Thanks to your great help.

From the readme.htm file, there is a note said:

.... You will be able to install the GFX filter only once on a given test machine. You will not be able to uninstall the GFX
filter once it has been installed.

I want to know how to uninstall and install the driver many times, especially during debug period.

作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/25 下午 03:40:09
Hi
Please reference the gfxswap.inf in SRC\WDM\AUDIO\GFX\GFXSWAP
You need to uninstall SW\{18265810-4768-483a-8fd3-3b6a81d8f5f2}
remove the register you done in INF.


>Hi,
>
>Thanks to your great help.
>
>From the readme.htm file, there is a note said:
>
>.... You will be able to install the GFX filter only once on a given test machine. You will not be able to uninstall the GFX
>filter once it has been installed.
>
>I want to know how to uninstall and install the driver many times, especially during debug period.
>
>
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/25 下午 05:27:25
Hi,
Thanks to your help, but I am not familiar to INF file, I listed some in my INF file, please tell me how to add the Uninstll section, Thanks.

[Version]
signature="$Windows NT$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%MSFT%

[SourceDisksNames.NT]
333=%DiskDescription%,,,

[SourceDisksFiles.NT]
gfxswap.dll=333
gfxswap.sys=333
gfxswap.inf=333

[Manufacturer]
%Msft%=Mysoft

[ControlFlags]
ExcludeFromSelect=*


[Mysoft]
%GFX.DeviceDesc%=GFX,SW\{AC8695C2-B2AC-4760-AB95-24515E9BCD36}

[DestinationDirs]
GFX.CopySys = 12 ; %windir%\system32\drivers
GFX.UI = 11 ; %windir%\system32
GFX.CopyINF = 24,DDK ; Applications directory\DDK


[DefaultInstall]
CopyFiles=GFX.UI, GFX.CopyINF
AddReg=GFX.RunOnce.AddReg
RegisterDlls = GFXSwapRegister

[GFX.CopyINF]
gfxswap.inf

[GFX.UI]
gfxswap.dll

...
[GFX.ServiceInstall]
DisplayName=%GFX.DeviceDesc%
ServiceType=%SERVICE_KERNEL_DRIVER%
StartType=%SERVICE_DEMAND_START%
ErrorControl=%SERVICE_ERROR_NORMAL%
ServiceBinary=%10%\system32\drivers\gfxswap.sys


[GFX.Audio.Install]
AddReg=GFX.Interface.AddReg
AddReg=GFX.Audio.AddReg
AddReg=GFX.AddNames.AddReg


[GFX.Transform.Install]
AddReg=GFX.Interface.AddReg

[GFX.Audio.AddReg]

HKR,Gfx,,%FLG_ADDREG_KEYONLY%

HKR,Gfx\UserInterface\CLSID,,%FLG_ADDREG_TYPE_SZ%,"{6E459DC5-8C7C-43b7-BCBB-20D73CEAD742}"

HKR,Gfx\AutoLoad\0,Type,%FLG_ADDREG_TYPE_DWORD%,%GFX_TYPE_RENDER%
HKR,Gfx\AutoLoad\0,HardwareId,%FLG_ADDREG_TYPE_SZ%,"USB\VID_0416&PID_8201&MI_00"
HKR,Gfx\AutoLoad\0,ReferenceString,%FLG_ADDREG_TYPE_SZ%,"Global"
HKR,Gfx\AutoLoad\0,NewAutoLoad,%FLG_ADDREG_TYPE_DWORD_NOCLOBBER%,1


[GFX.AddNames.AddReg]
HKLM,%MediaCategories%\%GFXGUID.ChannelSwap%,Name,,%GFXNode.ChannelSwap%
HKLM,%MediaCategories%\%GFXGUID.ChannelSwap%,Display,1,00,00,00,00

[Strings]
; non-localizeable
RunOnce="SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"

Thanks!...


作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人boatman註記此篇回應為很有道理 2009/11/25 下午 05:52:22
Hi
I think you should reference to WDK document, it has completed description about how to write an INF file. And its also has each section introduction. For Uninstall you need to write a uninstall program to uninstall GFX. There is no easy way to do this.
作者 : boatman(Boatman)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/11/27 上午 09:21:07
Thanks, I will try.
 板主 : 徵求中
 > 驅動程式 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 驅動程式 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
驅動程式
1 新兵衛 1240 
2 eBoy 980 
3 牧童哥 780 
4 北極熊 580 
5 天行者 580 
6 燒酒仙 440 
7 weber 380 
8 KEN 350 
9 jonay 180 
10 掌握文武半邊天 180 
驅動程式
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125