windows所有函数调用都要进入系统内核吗?

比如调用ntdll.dll中的DbgUiRemoteBreakin和DbgBreakPoint函数,通用它们会进入内核吗?... 比如调用ntdll.dll中的DbgUiRemoteBreakin和DbgBreakPoint函数,通用它们会进入内核吗? 展开
 我来答
吉祥二进制
高粉答主

2014-01-13 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84583

向TA提问 私信TA
展开全部
必须进入内核的,windows的api调用,需要借助于内核栈。..一般来就是我们看到 sysenter指令,早期的windows是用的int 0x2e这个陷井指令进入内核。

windows的函数 叫做API 即appplication programing interface 应用程序接口。
更多追问追答
追问
你的意思是所有的windows函数调用都会进入内核?
追答
必须的啊,所有的操作系统都使用了封装思想啊,windows上的GUI界面就是explorer.exe主要是给电脑菜鸟的,控制界面就是cmd.exe那是主要给系统管理员的,API接口那是主要给程序员的。

每个api调用都进内核的,你用windbg调试会发现整个过程的,来这里,可以详细看一下这个过程,例子是分析 CreateFile函数如何从ring3到ring 0 的,以及如何理解api的http://tieba.baidu.com/p/2812935931
beddy1
2014-01-13 · TA获得超过1989个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2211万
展开全部
你说的这两个函数那必须要进内核的,因为要使被调试进程挂起。
但大多WINAPI是不进内核的,WINAPI在内核的基础上多来一层的目的一是为了内核透明,二就是为了性能,老进内核性能消耗太大。
追问
首先,谢谢您的回答,不过还是有点不明白:
1.这两个函数进入内核的?进入内核后它们两是变成Nt头的还是怎么样的?
2.大多WINAPI是不进内核的,但是有什么方法知道一个函数调用进不进内核呢?
追答
没有去跟过这些函数,不知道内核里对应什么样的内容。WINAPI设计的初衷就是对程序员透明,所以要知道某个函数有没有进内核也许只能看官方的文档,当然,你也可以跟反汇编。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式