Re: MJ0011和Raymond、王宇给出的Fast System Call的位置为何不一样?

Windows内核调试

MJ0011和Raymond、王宇给出的Fast System Call的位置为何不一样?


merry 2009-06-07, 22:05 下午

原链接:http://advdbg.org/forums/2408/ShowPost.aspx

MJ0011:
{ Standard (Intel) Feature Flags }
...
SEP_FLAG = $00000800; // Fast System Call   第11位

Raymond、王宇:
// Kernel Feature Bits
#define KF_FAST_SYSCALL   0x00001000     //第12位

MJ0011和Raymond、王宇给出的Fast System Call的位置是不一样的。
Q:请问这是什么原因,那种形式是正确的?
 

Re: MJ0011和Raymond、王宇给出的Fast System Call的位置为何不一样?


王宇 2009-06-08, 08:58 上午
不晓得 MJ 同学从哪里搞来的代码 很强大 看着像某个类 SysInfo 工具的源码
Raymond 老师是从 ReactOS 里找的定义
我则是从 wrk 里找的。

Re: MJ0011和Raymond、王宇给出的Fast System Call的位置为何不一样?


merry 2009-06-08, 12:37 下午
 MJ0011所给出的位置与文章《System Call Optimization with the SYSENTER Instruction》(http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c8223 )提到的位置一致。
 
 但我个人认为Raymond、王宇所给出的位置是正确的,但我无法确认。

 如有人知道,望告知!

Re: MJ0011和Raymond、王宇给出的Fast System Call的位置为何不一样?


格蠹老雷 2009-06-08, 12:54 下午
差异只是在不同模块/层次的不同表示,具体来说,NT在检测CPU时,会根据架构(厂商INTEL、AMD)做检查,然后将具有共性的特征记录下来,KF_XX系列常量便是CPU架构无关的一种表示,如果要解释!cpuinfo的Features栏,那么应该使用KF_XX这套定义。

Re: MJ0011和Raymond、王宇给出的Fast System Call的位置为何不一样?


MJ0011 2009-06-08, 13:02 下午
楼上没说到点子上

Powered by Community Server Powered by CnForums.Net