Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144

Доступ к адресам 0CF8h, CFCh Windows 10

28.11.2019, 13:11. Показов 3893. Ответов 4

Студворк — интернет-сервис помощи студентам
Поставлена задача написать на языке C/C++
Разработать программу формирования цикла опроса и идентификации устройств PCI, которая будет считывать два первых поля конфигурационного пространства - коды Vendor ID (производитель) и Device ID (устройство).
Соответственно для чтения/записи в порт если не ошибаюсь нужно подключить драйвер GIVEIO, но не нашёл её для системы windows 10, а без него при применении ассемблерной вставки происходит Exception при обращении к порту.
- Как решить данную проблемы с драйвером под данную систему(win10)?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int device, vendor;
    for (int i = 0; i < 256; i++)
    {
        for (int j = 0; j < 32; j++)
        {
            for (int k = 0; k < 8; k++)
            {
                int res = 0;
                int res1 = 0x80000000;
                res1 += i << 16;
                res1 += j << 11;
                res1 += k << 8;
                _asm
                {
                    mov dx, 0CF8h
                    mov EAX, res1
                    out dx, EAX //вывод операнда в порт выдаёт ошибку 0xC0000096: Privileged instruction.
                    mov dx, 0CFCh
                    in eax, dx
                    mov res, eax
                }
            }
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2019, 13:11
Ответы с готовыми решениями:

Файловый сервер на Windows 2008 R2 - доступ по IP адресам к сетевым папкам
Добрый день. Помогите настроить файловый сервер. Сервер Windows Server 2008 R2 и клиенты находятся в рабочей группе. Необходимо...

Доступ к ПК, по 2-м сетевым адресам
Добрый вечер! Есть небольшая проблемка. Имеется 2 сети: 10.120.79.* и 10.120.1.*. Одна сеть работает через ADSL-модем, вторая через...

Как запретить/дать доступ по определенным IP адресам?
Всем доброго времени суток! ребята подскажите плз как запретит/дать доступ по определенным IP адресам? т.е. при аутентификации проверялся...

4
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
28.11.2019, 14:39
Но ведь уже начиная с WinXP они не пускают кого попало к адресам периферии, все предполагается делать через системные драйвера. То есть определитесь, вы хотите напрямую к регистрам устройств или на win10?
Цитата Сообщение от mastercard Посмотреть сообщение
Поставлена задача написать на языке C/C++
Разработать программу формирования цикла опроса и идентификации устройств PCI, которая будет считывать два первых поля конфигурационного пространства - коды Vendor ID (производитель) и Device ID (устройство).
В формулировке я не вижу требования использования ассемблера, да и винды: lspci выполняет то, что нужно без программирования на С/С++
В общем, ищите лучше по работе с PCI средствами winapi
0
1 / 3 / 2
Регистрация: 22.12.2016
Сообщений: 144
28.11.2019, 15:15  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В формулировке я не вижу требования использования ассемблера, да и винды: lspci выполняет то, что нужно без программирования на С/С++
В общем, ищите лучше по работе с PCI средствами winapi
Извиняюсь, не до конца пояснил суть задачи, в методичке к заданию был приложен драйвер GIVEIO.sys который позволяет обращаться к регистрам устройств но он актуален для windows 7, а у меня на ПК стоит win10 к которому этот драйвер не установить даже если сильно захотеть. А в добавок к основной задаче - 3и подзадачи, которые и намекают на работу с регистрами устройств PCI напрямую

-Если устройство не мост(0-бит поля Header Type =0) вывести и
расшифровать значение полей базовых регистров ввода/вывода.

-Если устройство не мост(0-бит поля Header Type =0) вывести и
расшифровать значение полей базовых регистров постоянной
(ROM) памяти.

-Если устройство мост(0-бит поля Header Type =1) вывести и
расшифровать значение поля Сlass Code.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
28.11.2019, 15:25
Цитата Сообщение от mastercard Посмотреть сообщение
в методичке к заданию был приложен драйвер GIVEIO.sys который позволяет обращаться к регистрам устройств но он актуален для windows 7, а у меня на ПК стоит win10 к которому этот драйвер не установить
Самое простое - виртуальная машина.
Но все равно ползать по регистрам периферии для не-системных программистов (разработчики ядра ОС, драйверов, прошивок) - бесполезное занятие. Так что если нет строгого требования использовать подход времен win98, лучше ищите современные средства.
Цитата Сообщение от mastercard Посмотреть сообщение
А в добавок к основной задаче - 3и подзадачи, которые и намекают на работу с регистрами устройств PCI напрямую
Не вижу связи получения информации об устройстве с прямым чтением его регистров.
0
0 / 0 / 0
Регистрация: 10.09.2020
Сообщений: 1
04.12.2020, 15:20
mastercard, Привет. Если задача в итоге была решена, может быть у тебя остались исходники кода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2020, 15:20
Помогаю со студенческими работами здесь

Доступ по MAC адресам компьютеров к порту свича
Есть свич, подключен сервер (port 1) и к этому серверу хочу разрешить конкретному пользователю только по MAC адресу. Возможно ли прописать...

Как запретить доступ с компа к определённым ip адресам? (Firewall)
Здрасти всем. :) Собственно, задача такова - требуется запретить доступ с компа к определённым ip адресам (либо вообще запретить...

Массив: К элементам по четным адресам добавить 1, из элементов по нечетным адресам вычесть 1.
К элементам по четным адресам добавить 1, из элементов по нечетным адресам вычесть 1. Четность проверять не надо так как элемент...

Windows 10 самопроизвольно коннектится по неизвестным внешним ip адресам
Здравствуйте! Недавно заметил одну особенность. У меня (Windows 10) подключается к разным внешним IP адресам. Это наблюдается на...

Общий доступ (DHCP) в Windows 7, доступ к серверным ресурсам
Для начала опишу как сделанно: Есть Серверный ПК, с двумя сетевухами, одна инет, вторая локаль. Локаль поключенна к свитчу, далее инет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru