Получение привелегий для доступа к портам в Nt
Вообще, мне нужен доступ к CDROM'у на низком уровне, это можно реализовать и с помощью функции DeviceIOControl, но она тоже требует привилегий.
P.S. Кстати, если кто знает, как определить form-factor сектора CD (CDDA, form1, form2 form1 и т.д.), сообщите.
... как в NT получить доступ к порта IO, какие для этого нужны привелегии?
Для этого твой код должен выполняться в режиме ядро
Для этого твой код должен выполняться в режиме ядро
А разве нельзя получить в процесе выполнения эти привелегии? Я просто не знаю, вот и спрашиваю...
Кто знает, подскажите пожалуйста, как в NT получить доступ к порта IO, какие для этого нужны привелегии?
Вообще, мне нужен доступ к CDROM'у на низком уровне, это можно реализовать и с помощью функции DeviceIOControl, но она тоже требует привилегий.
P.S. Кстати, если кто знает, как определить form-factor сектора CD (CDDA, form1, form2 form1 и т.д.), сообщите.
Лучше это реализовать не на низком уровне, а через драйвер(пакет) ASPI, и команды MMC-2(MMC-3,MMC-4). Для работы с этим драйвером не нужны привилегии, можно реализовать почти тоже, что и на низком уровне.
Ссылки:
adaptec.com]www.adaptec.com
Здесь можно достать драйвер с ним есть инструкция по работе с ASPI на английском
aspi32.narod.ru/index.html
Сайт где немного описывается работа с ASPI на русском языке. Там есть много ссылок по этой теме. Также там есть ссылка на книгу на русском языке, где написано, как писать программы с помощью ASPI. (Я ее купил, и она мне понравилась)
t10.org]www.t10.org
t13.org]www.t13.org
Здесь есть разные манулы
Вот один из подходящих мануалов:
t10.org/ftp/t10/document.97/97-117r0.pdf]MMC-2 Commands specific to CD Media Only
А разве нельзя получить в процесе выполнения эти привелегии?
Нет твоя программа считается прикладной и выполняется в user-mode (ring3), в kernel-mode (ring0) работет собственно ядро и его драйверы. Всякое обращение из кольца 3 в кольцо 0 генерирует исключение. Эта особенность защищенного режима процессора реализована аппаратно (он потому и называется защищенным).
А на счет DeviceIoControl ты по моему не прав. Она для того и существует чтобы отсылать запросы драйверам. По крайней мере я ее использовал без проблем при обращении к драйверу винта