阅读:1292回复:7
请教一个问题
在WinXP/2k中,可以在driver(.SYS)里,调用动态库(.DLL)吗?如果可以的话,如何实现?希望高手们能给予指点,谢谢!
|
|
沙发#
发布于:2002-06-17 08:47
any body?~~
这儿有人吗? :( |
|
板凳#
发布于:2002-06-17 09:18
我做过打印驱动,它本身是dll,内核级的,
而且他也调用dll,不过这是在WINDOWS的打印环境下,他是否有普遍意义我不知道,我想应该可以吧…… |
|
地板#
发布于:2002-06-17 09:29
以下是walter Oney 的话:
直到现在,官方认为内核模式驱动程序仅应调用DDK中公开的函数。例如,你不能在驱动程序中调用wcscmp函数,而应该调用RtlCompareUnicodeString。然而,这里有一个公开的秘密,用于创建驱动程序的标准输入库(ntoskrnl.lib)定义了许多函数,而这些函数却是在诸如string.h、stdio.h、stdlib.h,和ctypes.h的头文件中声明的,这些头文件都是应用程序经常使用的头文件。所以,为什么我们不能使用它们?实际上,倘若你了解所有的内部细节,你完全可以调用它们。但你不能总这样做,例如,你不能总用memcpy替代RtlCopyBytes,因为这两者稍有不同。(RtlCopyByte可以保证一个字节一个字节地复制数据而不是以较大的块,大块复制数据在某些RISC平台上会出现麻烦) |
|
|
地下室#
发布于:2002-06-17 10:30
我做过打印驱动,它本身是dll,内核级的, 你说的打印驱动(.DLL) 中用的是不是LoadLibrary()和GetProcAddress()?可他们好象是user级的,而不是kernel级的(.SYS)? :( |
|
5楼#
发布于:2002-06-17 11:44
我说的打印驱动是内核级的dll,他有标准的导出函数接口,可以被系统打印环境加载,被内核级的gdi调用。所以我觉得应该有办法在内核级使用dll,可是我不知如何实现,sorry…… :P :P :P
|
|
6楼#
发布于:2002-06-17 11:47
可以的
自己实现一个PELoader就行了 |
|
|
7楼#
发布于:2002-06-17 13:23
如何实现呢?能说说吗?
|
|