Консольные утилиты от Andrey Shedel, использующие Native API
Andrey Shedel написал набор консольных утилит, использующих Native API, и разрешил их распространение
на условиях лицензии GNU General Public License. Все утилиты в одном архиве с исходными кодами находятся
здесь (RAR).
Кроме того, все утилиты можно скачать с сайта автора.
nrun - утилита для запуска процессов с использованием Native API;
ln - утилита для создания жёстких и символьных ссылок Windows;
kloader - утилита для загрузки драйверов;
sync - утилита для сброса дискового кэша в Windows;
uptime - утилита для вывода информации о времени работы системы (uptime);
Описание утилит:
Утилита nrun
Программа для запуска процессов. Эта программа представляет наибольший интерес. Её параметры таковы:
Программа может запускать как обычные Win32-процессы, так и Native-приложения. В обычных условиях
попытка запуска native-приложения приведёт к появлению сообщения "Приложение нельзя запустить в режиме Win32".
Приложение нельзя запустить в режиме Win32
Тут и приходит на помощь утилита nrun, которая может успешно запускать такие процессы. Программа использует
недокументированную функцию RtlCreateUserProcess. Использование этой функции для запуска Native-приложений
я описал тут.
Утилита nrun позволяет не прописывать native-приложение в ключ BootExecute, а запускать прямо из обычного режима Windows.
Это намного удобнее, так как для запуска приложения не приходится перезагружать компьютер. Однако, для взаимодействия с
интерактивным приложением наподобие Native shell всё же придётся перезагрузиться.
С помощью утилиты nrun можно повторно запустить в работающей системе smss.exe, но это приведёт к синему экрану смерти (BSoD).
Утилита ln
Программа для создания жёстких и символьных ссылок Windows. Эта программа является аналогом утилиты mklink.exe из
состава Windows 7, которая делает то же самое. Параметры программы выглядят так:
ln: create/delete links for NT.
Copyright (c) 2000 Andrey Shedel ,
http://www.chat.ru/~ashedel
Usage: ln [-fis] [-u|]
-f - force overwrite/delete
-i - ignore case
-s - symlink
-u - unlink
Ключ -f служит для принудительного создания ссылки. Ключ -i указывает программе на то, что следует игнорировать регистр символов в именах
файлов. Ключ -s служит для создания символьной ссылки, отсутствие этого ключа приводит к созданию жёсткой ссылки (hardlink). Ключ -u
нужен для удаления ссылки.
О том как можно использовать символьные ссылки в Windows можно прочесть здесь. Можно также почитать
о технологии точек повторной обработки (reparse points).
Другие
Три другие утилиты тоже представляют интерес, можно посмотреть их код в качестве примера использования Native API.
О первых шагах в программировании native-приложений читайте тут.