Почему режим ядра создает проблемы для STL?

Microsoft STL в своей лекции кратко намекнул, что у STL есть проблемы с взаимодействием в режиме ядра. Может кто-нибудь объяснить, что он имел в виду?

0

Решение

Код режима ядра использует несколько собственных расширений Microsoft для C ++, в частности, для определения того, на каком уровне IRQ может выполняться код. Если вы ошиблись, Windows может отобразить синий экран с ошибкой «Driver IRQL Not Less or Equal».

К сожалению, эти расширения не совместимы с шаблонами C ++ или виртуальными функциями. Причина в том, что компилятор C ++ неявно создает экземпляры шаблонов и таблиц vtables, но не может применить правильную настройку IRQL, потому что нет явного момента создания экземпляра, из которого можно получить правильный уровень.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]