Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Присоединяюсь к дискуссии

Здраствуйте все!!!

Я никого не знаю. Только что присоединился.
Хочу задать вопрос: Как работать на уровне портов в Windows XP? А то мне
при попытке OUT port, выдает " Енто только для особых" Как он узнает,что
где-то внутри программы есть такая инструкция? Как это влияет на
быстродействие?


С уважением,

Виктор.


Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "victorkyd" Wed, 28 Jan 2004 00:07:38 +0300 (#64330)

 

Ответы:

Hi!
Ну тема давно избитая - смотри архивы рассылки...
А так:
На С++Builder - WinIO
На Delphi - ZLPortIO,DLPortIO
И все будет ОК!

Если надо - обращяйся на личный (думаю мессаги про ZLPortIO,DLPortIO и
WinIO с моей стороны уже всех достали)

P.s. Замечу, что WinIO более гибкий и мощный инструмент чем ZLPortIO или
DLPortIO

Ответить   Tue, 27 Jan 2004 00:32:07 +0200 (#64384)

 

Еще одно...
Если надо писать именно в порт (не в адрес - скажем 3fa), то с ними можно
работать как с файлами. Точно не помню, но кажется так (Delphi)
AssignFile(f,\..\COM#);reset(f); Write(f,---);
Что-то в таком духе (не уверен во всех \ в AssignFile)

Ответить   Tue, 27 Jan 2004 00:32:17 +0200 (#64385)

 

Здравствуйте !

Пожелание : всегда пишите какой компилятор используете, на каком языке
пишите.

Теперь по теме.
В виндах с портами можно работать как с файлами. То есть можно открыть порт
так :
CreateFile(
"\\\\.\\COM10", // address of name of the communications device
fdwAccess, // access (read-write) mode
0, // share mode
NULL, // address of security descriptor
OPEN_EXISTING, // how to create
0, // file attributes
NULL // handle of file with attributes to copy
);

а затем полученный от CreateFile дескриптор использовать при вызове
DeviceIoControl.

И все :-)

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 27 Jan 2004 02:02:40 +0300 (#64405)

 

Здраствуйте все!!!
-----Original MessageFrom: Victor V. Vakchturov [mailto:forum-moderat***@m*****.ru]
Sent: Tuesday, January 27, 2004 2:03 AM
To: comp.soft.prog.prog (3863622)


// Пожелание : всегда пишите какой компилятор используете, на каком
языке пишите.

Компилятор я использую Cbuilder++, BorlandC++, в ближайшее время
собираюсь переходить на Microsoft Visual C++

//Теперь по теме.
//В виндах с портами можно работать как с файлами. То есть можно открыть
порт так :
// CreateFile(
// "\\\\.\\COM10", // address of name of the communications
device
// fdwAccess, // access (read-write) mode
// 0, // share mode
// NULL, // address of security descriptor
// OPEN_EXISTING, // how to create
// 0, // file attributes
// NULL // handle of file with attributes to copy
// );

// а затем полученный от CreateFile дескриптор использовать при вызове
DeviceIoControl.

// И все :-)
Вы неправильно меня поняли. В программах я использую ассемблерные
вставки ASM{}, в них пишу на асимблере процедуру ввода в порт. Все
отлично компилировалось, работало в Windows 98. Поставил Windows XP pro
и всякий при вызове в программе порта выдает что-то вроде "Priveliged
instruction".
А в программах написанных под Dos вызовы проходят.
Порты с которыми я обращяюсь 378h,379h,37ah в скором времени будут
необходимо работать с шинами ISA и PSI.

Возможно необходимо написать драйвер VxD.Надо заняться этим вплотную.

Не подскажете пару ссылок(включая англоверсии)?

Всем спасибо,

Виктор.

--
// С уважением, Вахтуров Виктор.
// Информационный сайт для программистов http://SoftMaker.com.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "victorkyd" Thu, 29 Jan 2004 00:42:47 +0300 (#65223)

 

Здравсвуйте !

Хм...
Возможно для процесса надо задать какие то аттрибуты безопастности...

Это естессвенно.
Дос работает же не в защищенном режиме.
Тут вы - хозяин.

А чем все-таки не устраивает DeviceIoControl ?

VxD - под 95/98. А там, говорите, все и так работает.
Под NT/2000 (XP - не знаю) надо писать Kernel-mode driver.
Пример есть в NT DDK. И в DDK для 2000 - й винды.
Есть пакет Driver Studio чтобы писать дрова в VC++ IDE.
Там все на классах :-) Правда много денег стоит (но в России,
конечно, как обычно - за 80 руб на базаре все найдете).
Однако, если напишите свой драйвер, как думаете, Вы с ним
взаимодействовать будете ? А все так же - CreateFile+DeviceIoControl...

Ну...
http://sizov.by.ru/cat/drivers.shtml
http://drivermaker.home.comcast.net/devtips/index.htm

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Wed, 28 Jan 2004 01:15:29 +0300 (#65235)

 

.......

Для удовлетворения любопытства - в защищенном режиме i80x86 прямой
доступ к портам имеет только код, в дескрипторе сегмента которого
установлен уровень привилегий не ниже заданного в поле IOPL
регистра флагов. Если код не имеет права выполнять ввод-вывод
процессор вызывает обработчик исключения.
Большинство ОС на i80x86 выставляют поле IOPL так, что любая
попытка ввода-вывода из кода вне режима ядра приводит к
исключению, а его обработчик уже разбирается, можно
делать операцию или нет.
Приложение Windows 98 может явно выполнять ввод-вывод, но не
для всех портов. Для линии Windows NT/2000/XP, насколько я
помню, это запрещено вообще. Так что изменение атрибутов
безопасности не поможет. Правда, у меня под рукой нет
документации, так что точнее сказать не могу - вдруг
в XP в этом отношении что-то изменилось, хотя
вряд ли.

Задачи Dos работают в режиме V86, специально для них предназначенном. Он
обычно тоже относится к защищенным режимам (в противоположность
реальному), но это не так важно.
Windows для задач в режиме V86 следит за вводом-выводом, но обычно
позволяет его выполнить - для совместимости.

Да, чем? Если Вы работаете с чем-то стандартным - COM, LPT, то
проще и надежнее вообще использовать соотвествующий API -
благо в Win32 он доведен до ума по сравнению с Windows 3.x.

XP - та же линия Windows NT. А VxD действительно для Windows 9x.
Так что, если Вы работаете с нестандартными портами, драйвер
писать придется. Причем, если нужно работать и в Windows 95,
то отдельно придется написать VxD для нее.

А по поводу работы с шинами ISA и PCI, о которой Вы упоминали выше,
меня мучают сомнения. Во-первых, напрямую обращаться к их портам
не стоит даже из режима ядра - пересечетесь со стандартными
драйверами и снесете систему. Если уж что-то нужно, надо
пользоваться сервисами уже существующих драйверов шин
(описания и примеры в DDK).
Только зачем такое вообще нужно ?
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Wed, 28 Jan 2004 10:44:30 +0300 (#65512)

 

Вообще ХР как и win2000 ни кому не дает работать "по железу" тока через API.
вот и проблемы.
С уважением monah
janal***@n*****.ru

Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sat, 31 Jan 2004 17:00:49 +0600 (#67903)

 

Для всего что выше Вин98 прямой вывод в порт не пойдет.
нужен драйвер.
Ols


Ответить   ol Wed, 28 Jan 2004 09:05:27 -0800 (#65485)

 

Было это давно, писал бух. программу , и с тех пор осталось одно
неприятное воспоминание о простом казалось, вопросе, который завел меня
в тупик:

Есть таблица . В ней данные по датам. Как выделить данные с за
промежуток времени(допустим с 1.12.2001 по 7.01.2002). Одной строчкой
SQL у меня не получилось. Короче, нагородил...
SELECT *,а как дальше? Мне бы 1 рабочую строку целиком.

Текстовые поля получается выделить, а дату нет?

Хотелось заполнить пробелы в образовании.

По портам все понял,отложил до покупки дорогостоящего софта на
рынке(пара месяцев у меня есть),большое всем спасибо.

С уважением ,
Виктор.
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "victorkyd" Sat, 31 Jan 2004 02:36:12 +0300 (#66879)

 

victorkyd пишет:

CREATE TABLE TEST (
NAME VARCHAR(100),
DATES DATE
)

SELECT NAME,DATES
FROM TEST
WHERE DATES>='1.12.2001'
AND DATES<='7.01.2002'

Вот и все.

| С уважением, |
| Олег Пономарев. |
| |
| mailto: pony***@y*****.ru |
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 30 Jan 2004 07:44:43 +0200 (#66980)

 

Приветец, victorkyd!

в смысле выделить? если выбрать то так например:
select * from table1 where date1 between '01.12.2001' and '07.01.2002'
где table1 - твоя таблица, date1 - твое поле с датой
или я тебя не так понял?

можно извращаться как угодно... Только для начала напиши какая БД
(или SQL-сервак)

Ответить   Шевченко Сергей Fri, 30 Jan 2004 12:27:42 +0400 (#67201)