2010-05-04 4 views
1

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

У нас недавно возникли проблемы при установке, когда карта, казалось, перестала работать. Мы попытались заменить карту (замена тоже не работала). Компьютерный поставщик заменил материнскую плату, и обе карты по-прежнему не работали. Мы положили карты на другой компьютер, и оба работали нормально.

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

Мы создали тестовую версию нашего драйвера с некоторой дополнительной отладкой и определили, что CreateFile не работает. Он возвращает INVALID_HANDLE_VALUE, поскольку он должен быть при ошибке. GetLastError указывает на ошибку: Access is Denied.

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

ответ

1

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

1

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

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

+0

Хорошо, немного искал, что означает SE_BACKUP_PRIVILEGE, с несколькими политическими настройками. Для всех упомянутых мы имеем разрешение. Также я просто разместил этот вопрос на сервере. Посмотрим, что они придумают. – Corin

Смежные вопросы