阅读:1686回复:8
kernel DLL 的使用
内核的DLL 能不能被用户程序直接调用? 其实 内核DLL 就是一个动态连接库,系统里的好多功能也是用内核个DLL实现的 比如 stream.sys 等等。我想应该可以,但没有试过。
|
|
|
沙发#
发布于:2004-12-15 13:08
内核的DLL 能不能被用户程序直接调用? 其实 内核DLL 就是一个动态连接库,系统里的好多功能也是用内核个DLL实现的 比如 stream.sys 等等。我想应该可以,但没有试过。 请查看DDK文档, 个人认为如果IRQL允许,应该可以调用的 |
|
|
板凳#
发布于:2004-12-15 13:42
应该不行吧,内核dll只有DriverEntry,没有DllMain
期待高人指点 |
|
地板#
发布于:2004-12-15 13:51
特权级
|
|
|
地下室#
发布于:2004-12-15 19:41
应该不行吧
|
|
5楼#
发布于:2004-12-20 09:57
不管怎样,谢谢大家的讨论!
|
|
|
6楼#
发布于:2004-12-26 00:08
其实内核dll只有DriverEntry,没有DllMain是没有关系的.难道你在哪个程序中看到导出了这两个函数?没有!!其实从汇编的角度来看,其实这两个函数就是一样的.只是这里系统给我们提供的参数是不一样的.因为这两个的调用模式就不一样!!其实驱动也是可以直接被应用程序调用的.某天我就看到一个牛人用一个函数来直接加载驱动的!
|
|
7楼#
发布于:2004-12-26 18:07
其实内核dll只有DriverEntry,没有DllMain是没有关系的.难道你在哪个程序中看到导出了这两个函数?没有!!其实从汇编的角度来看,其实这两个函数就是一样的.只是这里系统给我们提供的参数是不一样的.因为这两个的调用模式就不一样!!其实驱动也是可以直接被应用程序调用的.某天我就看到一个牛人用一个函数来直接加载驱动的! puke. 搞清楚特权级再回也不迟. 至于一个函数加载驱动网上你可以搜出一陀文章,与直接调用完全无关 :D |
|
8楼#
发布于:2004-12-28 17:59
这和DLL中的DllMain没有关系,即使编写一个user mode下的DLL,只是导出几个routines的话,也可以不用DllMain。
在Kenel mode, loading driver 由Kernel来完成,driver应该是run 在kernel mode进程空间里。 如果只是通过一个所谓的运行在kernel mode来访问device,不怎么可能吧。除非这个DLL有NTDLL.dll的特权。嘿嘿。 |
|
|