2009-07-09 3 views
1

У меня есть драйвер, который я написал, и я создал ему символическое имя. Символическое имя ...проблемы, связанные с драйвером из пользовательского режима

L"\\DosDevices\\somename" 

... и когда я пытаюсь получить доступ к объекту устройства с помощью CreateFile из UserMode, я всегда получаю код ошибки 3 (путь не найден).

Я попытался с помощью CreateFile со следующими путями ...

L"\\\\.\\somename" 

L"\\Device\\somename" 

... и он не работает: я всегда получаю код ошибки 3

Кто-то знает, почему?

+0

Возможно, я ошибаюсь, но разве это не CHAR, а не WCHAR? (то есть падение L). Кроме того, я уверен, что вам понадобятся косые черты, а значит: «\\\\. \\ DosDevices \\ somename». Помните, что вы всегда будете использовать две обратные косые черты для обратной косой черты, которые вы действительно хотите. –

+0

Ваш драйвер * успешно * загружен, и во время его инициализации выполняются те вызовы API, которые ему необходимо выполнить, чтобы создать/рекламировать имя устройства? – ChrisW

ответ

1

Используйте WinObj и убедитесь, что символ был создан успешно - ссылка должна отображаться под GLOBAL ??. Если нет, ваш драйвер неисправен.

КПП. \\. \ somename верен.