Открыть имя устройства с помощью CreateFile

Я работаю над простым драйвером устройства, который я хочу объединить с драйвером из пользовательского режима с помощью IRP.

у меня возникли проблемы с открытием драйвера устройства. Используя DeviceTree Я могу видеть имя устройства, например DeviceMyDevice.

но когда я пытаюсь открыть его так:

hand := CreateFile('DeviceMyDevice', GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);  

Я всегда получаю INVALID_HANDLE_VALUE и GetLastError is (система не может найти указанный путь)

что я делаю неправильно ? Я знаю, что водитель работает потому что я вижу, как он работает и печатает материал в DebugView. Есть советы ?

enter image description here

1 ответов


вот хорошее объяснение Тим Робинсон, MVP (Windows SDK):

имена вида \Device\xxx являются внутренними именами диспетчера объектов NT, которые недоступные на Win32. Вы сможете получить доступ к устройству, если он создает символическую ссылку на \Device\MyDevice С