Объекты C++ в функциях драйвера kernel mode

Тема в разделе "WASM.NT.KERNEL", создана пользователем retmas, 21 дек 2009.

  1. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Хотел было написать C0000001 но вовремя потер лишнее, что бы не было похоже на сарказм. Но видимо амплуа и без того играет ((

    На самом деле, я понял вот что: у тебя есть подправленная STL, есть реализация исключений (и видимо RTTI). Раз пишешь статью, значит код вышел из состояния "оставляет желать лучшего". То есть всё вполне юзабельно. Кстати поэтому я постеснялся предлагать помощь )

    Такая либа - очень хорошо, сарказм с моей стороны неуместен.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Вышел, но все еще не завершен.
    Не отказался бы ) Напиши в пм.
    STATUS_UNSUCCESSFUL :lol:
     
  3. Ox8BFF55

    Ox8BFF55 New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2009
    Сообщения:
    181
    Как насчет вещественных чисел??? просто не проверял(в данный момент не твозможности) и насколько помню, регистры надо восстанавливать.....
     
  4. maksim_

    maksim_ New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2009
    Сообщения:
    263
    кстати. знаю что нельзя юзать операции над числами с плавающей точкой, но не знаю почему. кто-нибудь разъяснит?

    может быть и MFC к драйверу прикрутите, чтобы юзер мод апликуху вообще не юзать - из дрова сразу окошки D:))))))))))))

    вобщем не понимаю я зачем такие извраты. имхо, достаточно определить операторы new delete + заюзать какую-нибудь библиотеку std классов: array, vector и пр. (у меня свой такой велосипед, который я делал именно в целях платформенно независимости - и под avr и под arm и под виндовые дрова).

    и последнее. интересно, почему нельзя собрать свою статическую либу, в которой реализовать все эти undefinded external symbol'ы? хотя, сам понимаю, что быдет довольно напряжно.
     
  5. make

    make New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2009
    Сообщения:
    59
    При переключении потоков не сохраняется FPU-контекст.
    FYI, http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Легко и просто - поддержка floating-point реализована в CRT
     
  7. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    и что?
     
  8. reversecode

    reversecode Guest

    Публикаций:
    0
    плавающая точка в ядре работает
    не помню какой драйвер когда то дизассемблировал там полно было asm кода на плавающей точке
     
  9. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Kernel-mode WDM drivers must wrap use of the floating-point unit (FPU) between calls to KeSaveFloatingPointState and KeRestoreFloatingPointState. Failure to use these routines can cause calculation errors in concurrent user-mode applications.
     
  10. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Насколько помню, в x64 в кернел-моде на FPU/MMX вообще забили полностью. Но SSE вроде должно работать.
     
  11. Ox8BFF55

    Ox8BFF55 New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2009
    Сообщения:
    181
    Как бы процессор в ринге ноль от плавоющих точек не отказывался(в частности регистров и команд), просто требуется перед этим сохранить все регистры(которые будут узатся). А все это связано с переключениям их ring-0->ring3 и соответственно ring-3->ring-0, так как работать с FPU приходится редко(особенно в ring-0) то это посчитали лишней затратой(сохранять регистры)...