Реферат: Використання інтерфейсу Centronics для керування зовнішніми пристроями
OPEN_ALWAYS
Открывает объект (файл), если он существует. Если объект (файл) не существует, функция создает его, как будто dwCreationDistribution были CREATE_NEW.
TRUNCATE_EXISTING
Открывает объект (файл). После этого объект (файл) будет усечен до нулевого размера.Выдает ошибку если указанный объект (файл) не существует
DwFlagsAndAttributes
Атрибуты объекта (файла), атрибуты могут комбинироваться
· FILE_ATTRIBUTE_ARCHIVE
· FILE_ATTRIBUTE_COMPRESSED
· FILE_ATTRIBUTE_HIDDEN
· FILE_ATTRIBUTE_NORMAL
· FILE_ATTRIBUTE_OFFLINE
· FILE_ATTRIBUTE_READONLY
· FILE_ATTRIBUTE_SYSTEM
· FILE_ATTRIBUTE_TEMPORARY
HTemplateFile
Определяет дескриптор с GENERIC_READ доступом к временному объекту(файлу). Временный объект(файл)поставляет атрибуты файла и расширенные атрибуты для создаваемого объекта (файла) ИСПОЛЬЗУЕТСЯ ТОЛЬКО В WINDOWS NT Windows 95: Это значение должно быть установлено в Nil.
LPTPort := 'LPT1'; hCommFile := CreateFile(Pchar(LPTPort), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);6. Використання бібліотеки IO . DLL для доступу до портів у Windows 95/98/NT /2000/ XP
При використанні DOSі Windows 95/98 доступ до портів вводу/виводу (I/Oports) комп’ютера був відносно простим. Проте у WindowsNT /2000/ XP (захищена операційна система) доступ до портів вв/вив значно ускладнився за рахунок віртуалізації апаратного забезпечення (virtualizehardware). Віртуалізація означає, що програма вже не може звертатися безпосередньо до фізичного пристрою, а звертається тільки до драйвера, який емулює (emulates) роботу фізичного пристрою (відеоадаптеру, клавіатури, звукової карти чи принтера). Програмна емуляція фізичних пристроїв (хороший стиль для станд. задач) з одного боку підвищує надійність і захищеність роботи операційної системи (помилкові команди перехоплюються), а з іншого обмежую можливості керування нестандартними зовнішніми пристроями через порти вв/вив.
Тому команди вводу/вив в порт (INandOUT) у WindowsNT/2000/XP не працюють, а операційна система працює із зовнішніми пристроями як з файлами (команди запису/зчитування з файлу). Крім ускладнення програмування використання драйвера як посередника значно змекншує швидкодію операцій вв/вив.
Тому для роботи з портами розроблена динамічно під’єднувана бібліотека IO.DLL, що дозволяє зручно виконувати команди вв/вив даних у порти для 95/98 andNT/2000/XP.
/ LicensingIO.DLL is completely free! /
Download
io.zip 46k (Contains all the files) io.dll 46k
The following two files are for C++ users. There is more info on these in the prototypes section.
io.cpp 1k io.h 1k
C/C++ Prototypes
void WINAPI PortOut(short int Port, char Data);void WINAPI PortWordOut(short int Port, short int Data);void WINAPI PortDWordOut(short int Port, int Data);char WINAPI PortIn(short int Port);short int WINAPI PortWordIn(short int Port);int WINAPI PortDWordIn(short int Port);void WINAPI SetPortBit(short int Port, char Bit);void WINAPI ClrPortBit(short int Port, char Bit);void WINAPI NotPortBit(short int Port, char Bit);short int WINAPI GetPortBit(short int Port, char Bit);short int WINAPI RightPortShift(short int Port, short int Val);short int WINAPI LeftPortShift(short int Port, short int Val);short int WINAPI IsDriverInstalled();procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';stdcall ? ????????, ?? ???????? ????? ???????? ?????????? ????????? (????? ????). ?? ???????????? ????????? ??????????? ????? ??????? (Left-to-right), ? ??? ????????? ? ?????? ?????? (Right-to-left). ??? ??????? ????????? ???????? ???????????????? stdcall (calls to external code)Опис функцій / FunctionDescriptions
Please refer to the prototype for the particular language you are using.
PortOut
Вивід байта у спеціальний порт / Outputs a byte to the specified port.
PortWordOut
Вивід слова (16 біт) у порт / Outputs a word (16-bits) to the specified port.
PortDWordOut
Вивід подвійного слова у порт / Outputs a double word (32-bits) to the specified port.