阅读:1402回复:6
什么样的 驱动 需要 动态加载 ???
今天第一次用 DDK 编译了一下 驱动, 不是因为别的,而是那个代码
我不晓得怎样用 DS 弄出来。 然后 用了 Build -C , 真简单。 我以前还以为多么高深装了好久都没感用 !!! 然后看了一个动态加载的代码,试了一下,发现动态加载的驱动 只能在 加载时才能在 WINOBJ 里看得到,泻载后就不见了。而且,注册表里没有任何信息 。 是否动态加载的驱动不会注册 ? 我的疑问是 到底什么样的驱动需要动态加载呢 ? 和不需要动态加载的驱动有什么区别 ? 在代码上有什么明显差别吗 ? |
|
|
沙发#
发布于:2005-03-08 21:03
即使是通过动态的SCM加载,在注册表了也留下信息的...
|
|
|
板凳#
发布于:2005-03-09 09:03
今天第一次用 DDK 编译了一下 驱动, 不是因为别的,而是那个代码 只有与其他驱动没有依赖关系的驱动能动态加载,如最顶层的过滤驱动。 有些驱动无法动态加载,如中间的及底层的过滤驱动 代码上基本没区别 |
|
|
地板#
发布于:2005-03-09 09:14
[quote]今天第一次用 DDK 编译了一下 驱动, 不是因为别的,而是那个代码 只有与其他驱动没有依赖关系的驱动能动态加载,如最顶层的过滤驱动。 有些驱动无法动态加载,如中间的及底层的过滤驱动 代码上基本没区别 [/quote] 也不一定,这个句和往连表里插节点一样,根据设备对象的ATTACHEDDEVICE 和ATTACHEDTO的前后指针,你可以往设备栈的任何一层插入,你自己的设备对象. |
|
|
地下室#
发布于:2005-03-09 09:22
动态加载需要用到注册表的。
硬件设备的fd是不能动态加载的。 另外,动态加载和group值的设定也有关系。 |
|
|
5楼#
发布于:2005-03-09 10:09
[quote][quote]今天第一次用 DDK 编译了一下 驱动, 不是因为别的,而是那个代码 只有与其他驱动没有依赖关系的驱动能动态加载,如最顶层的过滤驱动。 有些驱动无法动态加载,如中间的及底层的过滤驱动 代码上基本没区别 [/quote] 也不一定,这个句和往连表里插节点一样,根据设备对象的ATTACHEDDEVICE 和ATTACHEDTO的前后指针,你可以往设备栈的任何一层插入,你自己的设备对象. [/quote] 这是Undocumented,一般驱动中只维护向下的指针,下面的驱动不维护指向上面驱动的指针。当然操作系统知道 |
|
|
6楼#
发布于:2005-03-09 19:42
看来我了解的太少了,我决定了
先好好打打基础,看看书先。 在漫漫向各位请教了 ! |
|
|