阅读:1393回复:14
热插拔的软件实现【50分】
cpci板卡,板子的硬件设计已经实现热插拔,但是不知道,软件方面还应该作些什么?
主要有一下两点向高手请教: 1、板子插上后如何启动硬件检测和资源分配及驱动装载; 2、板子拔下后,如何通知bios释放资源。 请高手指点。 |
|
|
沙发#
发布于:2003-11-04 09:04
1:你要编写一个pnp例程,当你装上驱动程序以后,进入StartDevice例程,在这个例程里面,有你分配的资源
2:在驱动程序卸载的时候释放资源 |
|
|
板凳#
发布于:2003-11-04 09:11
那么谁来完成驱动程序的安装和卸载,或者说在那里完成驱动程序的安装和卸载?
|
|
|
地板#
发布于:2003-11-04 09:24
驱动程序的安装和卸载当然是由你自己来完成,在驱动程序里面有相关的例程,当你要安装和卸载的时候就会调用了。
|
|
|
地下室#
发布于:2003-11-04 09:28
那么谁来完成驱动程序的安装和卸载,或者说在那里完成驱动程序的安装和卸载? 你说的这些我知道,但是我是要实现热插拔呀,而且是完全热插拔。当pci板卡带电插上后,应该自动完成资源配置和驱动安装,而不是手动完成。 |
|
|
5楼#
发布于:2003-11-04 09:34
另外pci配置寄存器中有个capability寄存器是与此有关的,如何设置?
grant老兄,帮帮忙! [编辑 - 11/4/03 by fwzfwz1] |
|
|
6楼#
发布于:2003-11-04 10:00
一般板子插上后,会产生一个中断通知系统。
挂这个中断你可以知道是不是你的板卡被插进来了 (通过查板上的一个寄存器)。 如果是的话,可以发一个命令让系统检查新硬件, 应该是DI_Setup****相关的API。 |
|
|
7楼#
发布于:2003-11-04 10:10
一般板子插上后,会产生一个中断通知系统。 1、中断,是不是ENUM中断, 他的中断号是多少,如何得知; 2、你所说的寄存器是不是pci配置寄存器中的capability寄存器,其位置在pci配置空间的0x34。 3、发一个命令让系统检查新硬件,是在中断服务程序里吗?如果是怎么还会有API函数,我感觉API函数应该是应用程序调用的。 请grant赐教! |
|
|
8楼#
发布于:2003-11-04 11:14
>>1、中断,是不是ENUM中断, 他的中断号是多少,如何得知;
应该是每家厂家自己设计吧?我见到的好象是IRQ9。 >>2、你所说的寄存器是不是pci配置寄存器中的capability寄存器,其位置在pci配置空间的0x34。 存贮板卡插入拨出状态的寄存器。你看一下Hotswap规范。 >>3、发一个命令让系统检查新硬件,是在中断服务程序里吗?如果是怎么还会有API函数,我感觉API函数应该是应用程序调用的。 DDK中提供的函数。 |
|
|
9楼#
发布于:2003-11-04 11:15
帖两份文件上来。
虽然说得不是很详细,但是还是说了一些东西的。 |
|
|
10楼#
发布于:2003-11-04 11:17
还有一份。
|
|
|
11楼#
发布于:2003-11-04 11:24
3x!!!
|
|
|
12楼#
发布于:2003-11-04 12:04
粗略看了一下,不太清楚Pigeon Point Hot Swap Kit? (HSK)
是win2000的一部分呢,还是一个独立的开发包? |
|
|
13楼#
发布于:2003-11-04 17:52
粗略看了一下,不太清楚Pigeon Point Hot Swap Kit? (HSK) 它是一个独立的开发包。 不要看它的开发包,它的文件中有许多关于HotSwap的具体细节。 |
|
|
14楼#
发布于:2003-11-04 17:58
那么如果有这个开发包的话,是安装呢还是调用库函数呢?
我估计是安装,安装以后它和windows融为一体。 |
|
|