Re: Floating Point в драйвере
- From
- Roman Ukhov ()
- To
- Vladislav Volovik ()
- Date
- 2001-09-14T13:41:39Z
- Area
- SU.WINDOWS.NT.PROG
From: "Roman Ukhov" <rukhov@robobat.odessa.net>
Reply-To: "Roman Ukhov" <rukhov@robobat.odessa.net>
Hi,
"Vladislav Volovik" <vladislav@inobject.com> wrote in message
news:9nnjdv$28ls$1@bn.utel.com.ua...
>
> Народ, никто не знает как такое заюзать (нужно именно сопроц, эмуляцию не
> предлагать)
> Проблемы:
> 1. в WinNT ваще неясно как
> 2. в Win2000 ясно как сохранить/востановить контекст fpu, но совсем не
> понятно как прилинковать математические функции, да и обычный sprintf(s,
> "%f", 12.2) пашет неправильно :-(
Из MSDN:
....
Don't use native floating point operations. Windows NT does not support
kernel-mode floating point operations on some systems. Specifically, the
Windows NT kernel does not preserve floating point registers on kernel-mode
stack switches, so using floating point registers in the driver corrupts an
application's floating point registers.
....
A FLOATOBJ structure is used to emulate a floating point number. This
structure, in conjunction with the FLOATOBJ_Xxx service routines, allows
graphics drivers to emulate floating point arithmetic in the NT kernel.
Floating point arithmetic is not otherwise supported in the Windows NT
kernel code.
Regards,
Roman Ukhov
http://rukhov.newmail.ru
--- ifmail v.2.15dev5
* Origin: RoboBAT (2:5020/400)