// дополнение из Driver Developer Kit for Windows NT unit xDDK; interface USES Windows; const GPD_TYPE = 40000; // тип файлового устройства // Device type -- in the "User Defined" range." METHOD_BUFFERED = 0; // управление буфер. вводом/выводом (включено ?) FILE_READ_ACCESS = 1; // устройство для ввода FILE_WRITE_ACCESS = 2;// устройство для вывода // The IOCTL function codes from 0x800 to 0xFFF are for customer use. IOCTL_GPD_READ_PORT=DWord(GPD_TYPE shl 16) or (FILE_READ_ACCESS shl 14) or METHOD_BUFFERED; IOCTL_GPD_WRITE_PORT=DWord(GPD_TYPE shl 16) or (FILE_WRITE_ACCESS shl 14) or METHOD_BUFFERED; IOCTL_GPD_READ_PORT_UCHAR=IOCTL_GPD_READ_PORT or($900 shl 2); IOCTL_GPD_READ_PORT_USHORT=IOCTL_GPD_READ_PORT or($901 shl 2); IOCTL_GPD_READ_PORT_ULONG=IOCTL_GPD_READ_PORT or($902 shl 2); IOCTL_GPD_WRITE_PORT_UCHAR=IOCTL_GPD_WRITE_PORT or($910 shl 2); IOCTL_GPD_WRITE_PORT_USHORT=IOCTL_GPD_WRITE_PORT or($911 shl 2); IOCTL_GPD_WRITE_PORT_ULONG=IOCTL_GPD_WRITE_PORT or($912 shl 2); type // Данные для вывода в порт через драйвер устройства типа GenPortIO _GENPORT_WRITE_OUTPUT=record PortNumber:ULONG; // Port # to write to case byte of // Data to be output to port 0:(LongData:ULONG); 1:(ShortData:WORD); 2:(CharData:BYTE); end; // Данные для ввода из порта через драйвер устройства типа GenPortIO _GENPORT_WRITE_INPUT=record PortNumber:ULONG; // Port # to read from end; //-------- НОВЫЙ ВАРИАНТ ДРАЙВЕРА ---------------- // Данные INPUT-буфера для ввода из порта через драйвер устройства типа GenPortIO tGENPORT_READ_INPUT_BUFFER=record PortNumber:ULONG; // Номер порта для чтения end; // Данные OUTNPUT-буфера для ввода из порта через драйвер устройства типа GenPortIO tGENPORT_READ_OUTPUT_BUFFER=record case byte of 1:(ULongData:ULONG); // Данные, возвращаемые драйвером 2:(UShortData:WORD); 3:(UCharData:BYTE); 4:(LongData:LongInt); 5:(ShortData:SmallInt); 6:(CharData:ShortInt); end; // Данные INPUT&OUTNPUT-буфера для ввода из порта через драйвер устройства типа GenPortIO tGENPORT_READ_INPUT_OUTPUT_BUFFER=record case byte of 0:(Input:tGENPORT_READ_INPUT_BUFFER); // Номер порта для чтения 1:(Output:tGENPORT_READ_OUTPUT_BUFFER); // Данные, возвращаемые драйвером end; // Данные INPUT-буфера для вывода в порт через драйвер устройства типа GenPortIO tGENPORT_WRITE_INPUT_BUFFER=record PortNumber:ULONG; // Номер порта для записи case byte of 1:(ULongData:ULONG); // Данные, записываемые в порт 2:(UShortData:WORD); 3:(UCharData:BYTE); 4:(LongData:LongInt); 5:(ShortData:SmallInt); 6:(CharData:ShortInt); end; implementation end.