Привилегированное обучение на С - PullRequest
1 голос
/ 27 апреля 2011

У меня проблемы с C. Я пытаюсь запрограммировать параллельный порт в Windows 7 Professional x64 в VS 2010 Ultimate.Поскольку у меня нет параллельного порта, я использую конвертер от USB-> Parallel, и Windows правильно установила драйверы.Я припаял 8 светодиодов на конце параллельного разъема, и они все работают нормально, когда я подключаю USB к компьютеру.Теперь я хотел бы управлять параллельным портом через мою программу, написанную на C:

#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <Windows.h>
/********************************************/
/*This program set the parallel port outputs*/
/********************************************/

void main (void)
{
//clrscr();            /* clear screen */
_outp(0x378,0xff); /* output the data to parallel port */
getch();              /* wait for keypress before exiting */
}

Программа компилируется и запускается, но я получаю сообщение об ошибке:

Unhandled exception at 0x00f313a5 in portovi.exe: 0xC0000096: Privileged instruction.

Я прочитал, что порт IO отключен на компьютерах с Windows NT, и вам нужен определенный драйвер для этого.Есть ли какое-то решение?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Есть способы обойти это.Например, здесь .

0 голосов
/ 27 апреля 2011

Ваш USB-> параллельный конвертер имеет драйверы для создания виртуального параллельного порта. Он реализует API параллельного порта Windows. Он не реализует API уровня регистров параллельного порта PC / AT, и даже если бы вам было разрешено записать порт ввода / вывода 0x0378, вы ничего там не найдете. Только реальные параллельные порты PC / AT на системной шине (ISA или PCI) используют этот регистр.

...