mejycrack
驱动牛犊
驱动牛犊
  • 注册日期2004-11-20
  • 最后登录2012-07-02
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1602回复:4

ntddk.h能在一般的.c文件中引用吗

楼主#
更多 发布于:2005-04-27 09:53
为什么总是提示我找不到这个文件,但是我在写驱动时,编译没问题!奇怪
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-27 10:40
能找到才奇怪呐.
内核态驱动运行在ring0,应用程序运行在ring3,普通的应用程序(exe\\dll)不能调用ntddk.h中的函数.
从理论上讲,你非要包含它,再调用其中的函数,不是没可能做到的,可是做到了,结果是程序DOWN掉.或者死机.
微软让你找不到是为你好.
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
Raul_Shao
驱动牛犊
驱动牛犊
  • 注册日期2005-03-05
  • 最后登录2006-03-22
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望14点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-27 11:02
好像是不行啊。不过我不太懂啊:(
楼上的仁兄是不是说ntddk.h是与内核有关的,
而我们编写的c文件是应用程序?
我是一只小小牛
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-27 11:47
当然,C文件有可能是应用也有可能是驱动.看楼主的意思应该是应用.
应用程序调用NTDDK.H里的函数当然不行,没有权限嘛.
多说几句:
MICROSOFT出于安全\\性能方面的考虑,将一部分驱动设定为用户态或用户态与内核态合作,如图形子系统.为了用户态驱动的方便,将部分内核例程包装了用户态形式的函数.
因此,如果你非要调用NTDDK.H里的函数,而你链接用户态DLL中的函数,你的程序多半不能正常使用;你链接内核例程,你的程序大概就不能启动了.
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
mejycrack
驱动牛犊
驱动牛犊
  • 注册日期2004-11-20
  • 最后登录2012-07-02
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-27 12:16
恩,明白!本来想放到ring3测试一个小东东,不用折腾驱动了,看来懒还是偷不了
游客

返回顶部