Здравствуйте, EreTIk, Вы писали:
TSS>>Эти две функции объявлены как NTKERNELAPI(DECLSPEC_IMPORT), поэтому генерация пролога для них это необходимость соблюдения стандартов(и да, это идет в ущерб оптимизации).
ETI>Про какие стандарты идет речь? Стандарт вызова функций говорит только о передачи параметров, но не заставляет генерировать пролог функции.
ETI>Эта же функция, но в Win10 x86 (10.0.10240.16384):
ETI>ETI>.00454965: CCCCCCCCCCCCCCCCCCCCCC int 3
ETI>IoFreeIrp: FF2510106700 jmp d,[pIoFreeIrp]
ETI>.00454976: CCCCCCCCCCCCCCCCCCCC int 3
ETI>
Да, вероятно я не прав насчет стандарта. Тем не менее, по умолчанию компилятор всегда лепит пролог, если явно не указать ему этого не делать. В сорцах win10 видимо явно указана директива __declspec(naked).