我想了解一下windows提供的服务都是那些函数在实际执行任务的?例如:NtCreateFile就是一个系统服务,操作系统应该是根据一个中断号来确定应该调用哪个函数提供服务,不知道对不对?
回复(7) 2004-12-13 14:49 来自版块 - windows 源码解读
表情
bmyyyud哈哈,问题没解决吗?只有反汇编才知道的,各个操作系统版本不一样顺序还不同,比如NtReadFile在KeSystemDescriptorTable中的服务号为0xA1,没有公开的方法获得(2005-02-07 11:59)
paladiniigood(2005-02-05 17:45)
Shentu不错不错!赞一个!!(2004-12-17 19:34)
joshua_yu我现在已经基本搞清楚这个过程了: 例如readfile吧,实际上在kernel32.dll中定义,调用了更底层的ntdll.dll的NtReadFile,这个函数只是一个接口,通过INT 2E中断切入内核模式,由中断调度函数KiSystemService根据NtReadFi...(2004-12-17 10:51)
Shentuwin98下是这样的,不知道win2k以后的是怎么做的,应该没有这么简单..(2004-12-16 15:25)
joshua_yu兄弟最近才学,对这部分很是生疏。 如果用户执行系统调用需要内核提供的相关功能,比如说创建一个文件,则需要利用INT 2E中断进入内核模式,而这个中断对应一个中断服务程序。在这个程序当中,会根据用户请求的具体服务(对应一个服务号)调用相关的服务函数。 不知道上述的流程对不对...(2004-12-13 15:12)
lovedriver反了。应该是系统函数调用中断。 中间有好几层封装。(2004-12-13 14:58)

返回顶部