Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



§ 9a. Программный комплекс NTLoader

Дмитрий Иванов, 25 Февраля 2007
Статья доработана и обновлена 27 Декабря 2012

Файлы к статье скачать
Имя: NTLoader.zip (ZIP архив)
Размер: 25 КБ

NTLoader это драйвер + программа, с помощью которых можно разрешить любому приложению напрямую работать с портами ввода-вывода под Windows NT, 2000, XP даже если это приложение написано под Windows 95, 98, Me. Т.е. с помощью этого комплекса можно продолжать пользоваться программой написанной для Windows 95 для работы с портами (например LPT или COM) под Windows XP не изменяя кодов программы!


Для чего может быть полезен NTLoader? Напрмаер, у вас есть проверенная годами программа - программатор. Единственная проблема - она работает только под Windows 95, 98, Me т.к. общается с портом напрямую. Вдруг возникает необходимость перенести ее на компьютер под управлением Windows XP - разумеется, там она работать не будет, т.к. XP прямого обращения к портам не терпит. Возникает делема: либо начать использовать другую программу (что мягко скажем, проблематично) или переписывать имеющуюся программу. Дело не простое, особенно если она не ваша и исходных кодов вы не имеете. Вот тут NTLoader сможет вам помочь - несколько щелчков мыши и ваша программа успешно работает на XP.


Рассмотрим, как пользоваться этим NTLoader`ом. В архиве к этой статье вы найдете следующие файлы:

Для того чтобы NTLoader смог работать, вам необходимо установить специальный драйвер. Сделать это довольно просто. Для этого нужно:

1. Скопировать файл драйвера NTLoader.sys в папку C:\Windows\system32\drivers\ если, конечно, система у Вас установлена на диск С: и вы не меняли пути установки Windows.

2. Запустить файл Install.reg. При этом вас спросят о вашем желании добавить информацию из этого файла в реестр. Нажимайте Да. При этом вы получите сообщение об успешном внесении информации в реестр.

3. Перезагрузить компьютер.


Все, теперь драйвер установлен и комплекс готов к работе. Запускайте приложение NTLoader.exe. Принцип работы довольно прост: нажав на кнопку Search... вы указываете путь к программе, которую нужно запускать. Затем нажимаете кнопку LOAD. Все! Теперь запущенная вами программа сможет успешно работать с портами ввода-вывода напрямую под Windows NT, 2000, XP.



Теперь давайте протестируем NTLoader. Напишем простенькую программу, которая будет работать с портом LPT напрямую. Вот ее код (для простоты примера сделаем ее в консольном варианте). Готовый проект и программу можно найти в скаченном вами архиве. Беглого взгляда на код достаточно, чтобы сказать, что эта программа не сможет работать под Windows XP - и действительно, тут и обращение к порту с помощью функций _outp(), _inp() и даже прямое взаимодействие с регистрами порта на ассемблере. Давайте убедимся в этом. Попробуйте ее запустить под XP - при потытке обращения к порту, программа вылетает с ошибкой (что и не удивительно).

#include <conio.h>
#include <stdio.h>

void main()
{
	printf("Simple programm. Press any key to continue...\n\n");
	getch();

	printf("Try write to port (1)...\n");
	_outp(0x378, 0);

	printf("Try write to port (2)...\n");
	_asm
	{
		mov dx, 378h
		mov al, 1
		out dx, al
	}

	printf("Try read port...\n");
	char temp = _inp(0x378);
	printf("Value: %d\n", temp);

	getch();
}

А теперь попробуем запустить эту же программу с помощью NTLoader. Выбираем с помощью Search... путь к нашей тестовой программе и нажимаем LOAD. И о Чудо! Она работает!

Надеюсь, что NTLoader поможет вам в работе с портами ввода-вывода под Windows NT, 2000, XP.


Дополение от 9 февраля 2008: по многочисленным просьбам читателей, в обновленной версии программы добавлена возможность запуска NTLoader из командной строки с параметром в виде пути запускаемой программы. Например, чтобы не пользоваться кнопками "Search" и "Load" а сразу запустить нужную программу минуя пользовательский интерфейс NTLoader нужно запускать его вот так:

NTLoader.exe [путь к запускаемой программе]



© Дмитрий Иванов
25 Февраля 2007
www.kernelchip.ru



© KERNELCHIP 2006 - 2024