阅读:4800回复:13
如何实现USB上层驱动程序的同时安装和卸载?
在某USB驱动程序上面做了一个驱动程序,希望每次加载USB驱动时能加载该驱动。而USB驱动卸载时也能卸掉该驱动。
应该如何做? |
|
沙发#
发布于:2001-07-17 16:19
我也好想要这方面的资料!
|
|
|
板凳#
发布于:2001-07-18 09:55
看一下DDK和DriverWork的usbfilt例子,inf中加一行,在usb硬件的注册表里面加一个直
|
|
|
地板#
发布于:2001-07-20 10:08
是加
HKR,,"UpperFilters",0x00010000,"xxxdriver"那一项? 要不要加 DependOnGroup DependOnService 我试着都加了. 还是没有达到目的.还望指点 [QUOTE]原本由 rayyang2000 发表 [B]看一下DDK和DriverWork的usbfilt例子,inf中加一行,在usb硬件的注册表里面加一个直 [/B][/QUOTE] |
|
地下室#
发布于:2001-07-20 10:41
是这个东东.我试过,可以使用.usbfilt可以把我的driver通讯的信息输出.
你能确定是正确安装了新的inf吗? |
|
|
5楼#
发布于:2001-07-20 11:34
假设我的上层驱动叫xxdriver 加此一项仅是在 HKLM System\CurrentControlSet\Control\Class\xxdriver的 classGuid 里多了Upperfilters 一项而填的值是xxdriver 而DDK里的那个cdaudio例子也是如此 [cdaudio_addreg] HKR,,"UpperFilters",0x00010000,"cdaudio" ; REG_MULTI_SZ value 我的感觉是好像这样做只是标明了xxdriver是一个upperfilter driver. 系统是如何知道该驱动是谁的filter driver呢?是否注册表中还有别的信息来记录了上层驱动和USB驱动的这种关系?如果有的话,应该在INF文件中有具体的体现啊.比如说是在xxdriver的注册表项中否有类似的键值记录USB驱动的名字或者什么的.又或者usb驱动程序的注册表项中记录其有upperfilter且记下xxdriver呢?而且我的驱动非 usb驱动的filter driver,是从usb驱动得到数据然后做协议处理,当作filter driver加载后能达到差拔USB设备时两驱动的同时安装和卸载么? 还望rayyang大侠继续解惑. |
|
6楼#
发布于:2001-07-23 09:50
好像你弄错了吧?比如有一个usb设备,叫mydevice,驱动是mydevice.sys和mydevice.inf,你想把一个usb filter driver(名字叫myfilt,驱动是myfilt.sys和myfilt.inf)挂在mydevice上面,应该在mydevice.inf里面加上
[HKBL.AddRegHW] ;HKR,,"LowerFilters",0x00010000,"myfilt.sys" HKR,,"UpperFilters",0x00010000,"myfilt.sys" [HKBL.AddRegHWNT] ;HKR,,"LowerFilters",0x00010000,"myfilt" HKR,,"UpperFilters",0x00010000,"myfilt" 不是单独在myfilt.inf里面加上这个东东。 这样,当你用mydevice.inf安装mydevice的时候,myfilt就加到mydevice的上面了。 要挂到下面,只要用LowerFilters那句就可以了 另外,在安装service一节,还要把myfilt安装。 具体的语句和细节,你因该看一下DS的例子。 [rayyang2000 编辑于 2001-07-23 09:55] |
|
|
7楼#
发布于:2001-07-23 10:21
不好意思
那天发了帖子又仔细看了一下usbfilt的inf文件开头几句说明. 发现自己完全理解错了. 多谢指点 |
|
8楼#
发布于:2001-07-23 15:50
用户被禁言,该主题自动屏蔽! |
|
9楼#
发布于:2001-07-24 11:45
好的.
我在usb的inf把btstack标记为filterdriver 然后来又把上层驱动安装了一遍,主要是为了写入上层驱动的serivice项. 后又定义了一个group ,加入Tag值来确定它们的安装次序. 试来试去总是没有结果. 支持我每天重复的动力是rayyang大侠说的这条路一定可以通的. 下面是两个驱动的inf 望各位大侠指点 usb驱动的inf ; Installation inf for the CSR Casira Bluetooth Module ; ; Copyright 2000 Cambridge Silicon Radio ; [Version] Signature=$CHICAGO$ Class=USB ClassGUID={36fc9e60-c465-11cf-8056-444553540000} Provider=%CSR% DriverVer=12/13/2000,1.3.0 [Manufacturer] %MfgName%=CSR [CSR] %USB\VID_0A12&PID_0001.DeviceDesc%=CSRBC01.Dev, USB\VID_0A12&PID_0001 %USB\VID_0A12&PID_ffff.DeviceDesc%=CSRBC01.Dev, USB\VID_0A12&PID_ffff [SourceDisksNames] 1 = %CSR.Disk.Name%,,, [SourceDisksFiles] csrbc01.sys = 1 ;added for filterdriver ;btstack.sys=1 [DestinationDirs] DefaultDestDir = 10,System32\Drivers CSRBC01.Dev.Ext = 10, System32\Drivers [CSRBC01.Dev] CopyFiles=CSRBC01.Dev.Ext AddReg=CSRBC01.AddReg [CSRBC01.Dev.NT] CopyFiles=CSRBC01.Dev.Ext AddReg=CSRBC01.AddReg [CSRBC01.Dev.NT.Services] Addservice = CSRBC01, 0x00000002, CSRBC01.AddService ;Addserivce = Btkk,, BT.AddService [CSRBC01.AddService] DisplayName = %CSRBC01.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\System32\Drivers\CSRBC01.sys Tag=0x02 LoadOrderGroup = Group CSR ;added for filterdriver ;[BT.AddService] ;DisplayName = "BtStack Driver displayname" ;ServiceType = %SERVICE_KERNEL_DRIVER% ;StartType = %SERVICE_DEMAND_START% ;ErrorControl = %SERVICE_ERROR_NORMAL% ;ServiceBinary = %10%\System32\Drivers\BtStack.sys [CSRBC01.AddReg] HKR,,DevLoader,,"*ntkern" HKR,,NTMPDriver,,"CSRBC01.sys" HKLM,"System\Currentcontrolset\Services\CSRBC01\Parameters","MaximumTransferSize",0x10001,4096 HKLM,"System\Currentcontrolset\Services\CSRBC01\Parameters","DebugLevel",0x10001,0 ;added for filter driver HKR,,"UpperFilters",0x00010000,"BtStack.sys" [CSRBC01.Dev.Ext] csrbc01.sys ;btstack.sys ;---------------------------------------------------------------; [Strings] CSR="Cambridge Silicon Radio" MfgName="CSR" USB\VID_0a12&PID_0001.DeviceDesc="CSRBC01.Sys CSR Bluetooth" USB\VID_0a12&PID_ffff.DeviceDesc="CSRBC01.Sys CSR DFU Bluetooth" CSRBC01.SvcDesc="CSRBC01.Sys CSR test driver" CSR.Disk.Name="CSR Bluetooth Installation Disk" ;copy from the btstack inf file MFGNAME="Hust Wearnes Ltd." INSTDISK="Hust Wearnes Companion Disc" DESCRIPTION="Bluetooth Stack Driver" SPSVCINST_ASSOCSERVICE=0x00000002 ; Driver service is associated with device being installed COPYFLG_NOSKIP=2 ; Do not allow user to skip file SERVICE_KERNEL_DRIVER=1 SERVICE_AUTO_START=3 ;2 SERVICE_DEMAND_START=3 SERVICE_ERROR_NORMAL=1 上层驱动的inf ; BtStack.Inf - install information file ; Copyright ?2001 abc, [Version] Signature=$CHICAGO$ Class=BtStack ClassGuid={2B919025-882C-45f5-906E-39996F3BA5D0} Provider=%MFGNAME% DriverVer=06/20/2001,1.0.0.0 [Manufacturer] %MFGNAME%=DeviceList [DestinationDirs] DefaultDestDir=10,System32\Drivers [DeviceList] %DESCRIPTION%=DriverInstall,*BtStack\BtStack [SourceDisksFiles] BtStack.sys=1;,objchk\i386 [SourceDisksNames] 1=%INSTDISK%,,,. [ClassInstall32] AddReg=BtStackclassAddReg [BtStackclassAddReg] HKR,,,,"BtStack" HKR,,Icon,,"-25" ;------------------------------------------------------------------------------ ; Windows 2000 Sections ;------------------------------------------------------------------------------ [DriverInstall.NTx86] CopyFiles=DriverCopyFiles [DriverCopyFiles] BtStack.sys,,,%COPYFLG_NOSKIP% [DriverInstall.NTx86.Services] AddService = BtStack, %SPSVCINST_ASSOCSERVICE%, DriverService [DriverService] DisplayName = "BtStack Driver displayname" ServiceType = %SERVICE_KERNEL_DRIVER% StartType = %SERVICE_DEMAND_START% ErrorControl = %SERVICE_ERROR_NORMAL% ServiceBinary = %10%\System32\Drivers\BtStack.sys Tag=0x03 LoadOrderGroup = Group CSR DependOnServices=CSRBC01 ;------------------------------------------------------------------------------ ; Windows 98 Sections ;------------------------------------------------------------------------------ [DriverInstall] AddReg=DriverAddReg CopyFiles=DriverCopyFiles [DriverAddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,BtStack.sys [DriverCopyFiles] BtStack.sys ;------------------------------------------------------------------------------ ; String Definitions ;------------------------------------------------------------------------------ [Strings] MFGNAME="Wearnes Ltd." INSTDISK="Hust Wearnes Companion Disc" DESCRIPTION="Bluetooth Stack Driver" SPSVCINST_ASSOCSERVICE=0x00000002 ; Driver service is associated with device being installed COPYFLG_NOSKIP=2 ; Do not allow user to skip file SERVICE_KERNEL_DRIVER=1 SERVICE_AUTO_START=2 ;2 SERVICE_DEMAND_START=3 SERVICE_ERROR_NORMAL=1 |
|
10楼#
发布于:2001-07-24 14:05
用户被禁言,该主题自动屏蔽! |
|
11楼#
发布于:2001-07-24 16:07
VIA有一款usb filter driver软件,你们用过吗?我装了之后,一直不知道怎么用,也没有说明,甚至在start菜单里面都没有快捷.用debugview也看不到输出信息.本来以为可以看到via自己的usb controller的输出的,结果什么都没有.
|
|
|
12楼#
发布于:2001-07-25 11:00
用户被禁言,该主题自动屏蔽! |
|
13楼#
发布于:2001-07-27 11:10
但我觉得是可以输出via芯片传输的数据信息的。
|
|
|