halfman
驱动牛犊
驱动牛犊
  • 注册日期2001-04-06
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4800回复:13

如何实现USB上层驱动程序的同时安装和卸载?

楼主#
更多 发布于:2001-07-17 14:57
   在某USB驱动程序上面做了一个驱动程序,希望每次加载USB驱动时能加载该驱动。而USB驱动卸载时也能卸掉该驱动。
   应该如何做?
zsih
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-07-17 16:19
我也好想要这方面的资料!
大红灯笼
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-18 09:55
看一下DDK和DriverWork的usbfilt例子,inf中加一行,在usb硬件的注册表里面加一个直
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
halfman
驱动牛犊
驱动牛犊
  • 注册日期2001-04-06
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-07-20 10:08
是加
HKR,,"UpperFilters",0x00010000,"xxxdriver"那一项?
要不要加
DependOnGroup
DependOnService
我试着都加了.
还是没有达到目的.还望指点
[QUOTE]原本由 rayyang2000 发表
[B]看一下DDK和DriverWork的usbfilt例子,inf中加一行,在usb硬件的注册表里面加一个直 [/B][/QUOTE]
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-07-20 10:41
是这个东东.我试过,可以使用.usbfilt可以把我的driver通讯的信息输出.
你能确定是正确安装了新的inf吗?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
halfman
驱动牛犊
驱动牛犊
  • 注册日期2001-04-06
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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大侠继续解惑.
  
  
  
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
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]
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
halfman
驱动牛犊
驱动牛犊
  • 注册日期2001-04-06
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-07-23 10:21
   不好意思
   那天发了帖子又仔细看了一下usbfilt的inf文件开头几句说明.
发现自己完全理解错了.
   多谢指点
  
  
  
  
  
  
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2001-07-23 15:50
用户被禁言,该主题自动屏蔽!
halfman
驱动牛犊
驱动牛犊
  • 注册日期2001-04-06
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2001-07-24 14:05
用户被禁言,该主题自动屏蔽!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2001-07-24 16:07
VIA有一款usb filter driver软件,你们用过吗?我装了之后,一直不知道怎么用,也没有说明,甚至在start菜单里面都没有快捷.用debugview也看不到输出信息.本来以为可以看到via自己的usb controller的输出的,结果什么都没有.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2001-07-25 11:00
用户被禁言,该主题自动屏蔽!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2001-07-27 11:10
但我觉得是可以输出via芯片传输的数据信息的。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部