Набор тестовых Win 32? программ
Пока что разобраны syscall'ы
Nt Create File?,
Nt Open File?,
Nt Write File?,
Nt Close?. и на их основе были реализованы программы.
create.c — создает файл, используя ntdll.lib
create2.c — создает файл, не используя ntdll.lib
writefile2.c — пишет в существующий файл HELLO в юникоде, используя ntdll.lib
writefile2.c — пишет в существующий файл HELLO в юникоде, используя ntdll.lib
для сборки использовать:
cl.exe /Gz /Od %PROGRAM.C%.c user32.lib ntdll.lib /link /subsystem:console /NODEFAULTLIB
cl.exe /Gz /Od %PROGRAM.C% user32.lib /link /subsystem:console /NODEFAULTLIB
соответственно для версий с ntdll.lib и без
- флаг /Gz указывает использовать соглашение _stdcall для вызовов функций
- /link — дальнейшие параметры передаются компоновщику
- /NODEFAULTLIB не линкует со стандартными библиотеками
На самом деле прямого вызова sysenter пока не происходит, за счет отсутствия данного вызова у inline assembler'а студии, в планах разобраться с ml.exe