Драйвер запретил доступа к плате PCI

Мы записали драйвер устройства Windows для доступа к нашей пользовательской плате PCI. Драйвер использует CreateFile для получения дескриптора к карте.

Мы недавно испытали затруднения в одной установке, была карта, появившаяся, чтобы прекратить работать. Мы пытались заменить карту (замена появилась не, работают любой). Продавец компьютеров заменил материнскую плату, и обеим картам все еще не удалось работать. Мы помещаем карты в другой компьютер, и оба хорошо работали.

У нас теперь есть компьютер в нашем офисе для исследования. Windows Device Manager перечисляет нашу карту в Других Устройствах, как обычно, и говорит, что это хорошо работает. Однако наша инициализация драйвера перестала работать, когда она пытается соединиться с картой.

Мы создали тестовую версию нашего драйвера с некоторой дополнительной отладкой и решили, что CreateFile перестал работать. Это возвращает INVALID_HANDLE_VALUE, как это, как предполагается, при отказе. GetLastError указывает, что ошибкой является Доступ, Отклонен.

Так как в нас входят система как локальный администратор, что может запретить доступа к устройству?

1
задан Kevin Panko 4 May 2010 в 21:44
поделиться

2 ответа

Это не похоже на драйвер устройства, CreateFile() доступен только в обычном приложении Win32. Это также соответствует ошибке, драйверы устройств не подвергаются ограничениям безопасности, как приложения Win32.

Да, у вас могут возникнуть проблемы с открытием дескрипторов устройств с помощью CreateFile(). Я думаю, что учетная запись пользователя, по крайней мере, должна иметь SE_BACKUP_PRIVILEGE. В Vista также произошли изменения, ознакомьтесь с правилами в CreateFile docs, раздел "Физические диски и тома". Лучшее место, где можно найти гуру безопасности, которые могут показать вам, как редактировать привилегии учетной записи, это serverfault.com

1
ответ дан 3 September 2019 в 00:47
поделиться

Вы можете попробовать использовать "Проверенную" сборку ядра Windows. Это отладочная сборка, которая имеет гораздо больше диагностической информации, доступной через канал отладки. В последний раз, когда я использовал такую сборку (несколько лет назад), она была доступна на MSDN, но моя информация, возможно, устарела.

1
ответ дан 3 September 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: