Ay's Blog@CNSSUESTC

内核下进行浮点运算


 1     KFLOATING_SAVE saveData ;
 2     NTSTATUS status;
 3     int i = 0 ;
 4     double tem = 0 , sum = 0  ;
 5 
 6     //////////开启浮点运算环境
 7     status = KeSaveFloatingPointState(&saveData);
 8 
 9     if ( ! NT_SUCCESS(status))
10         return ;
11 
12     //浮点运算操作
13 
14         //////////关闭浮点运算环境
15     KeRestoreFloatingPointState(&saveData);


内核下进行浮点运算很特殊~~
正确操作应该向上面代码一样

在贴个抄来的内核sleep()函数

1 void KeSleep(ULONG uMiniseconds)
2 {
3     KTIMER ktimer;
4     LARGE_INTEGER liTimerout;
5     liTimerout.QuadPart=-(LONG)(uMiniseconds*10000);
6     KeInitializeTimer(&ktimer);
7     KeWaitForSingleObject(&ktimer,Executive,KernelMode,FALSE,&liTimerout);
8 }

不过效率貌似有待改进....有时间在说吧~~那个xxxdelay函数也可以的

posted on 2009-06-06 20:19 __ay 阅读(1824) 评论(0)  编辑 收藏 引用 所属分类: 操作系统&&内核


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理