Мне нужно открыть модуль ядра, созданный в Windows, с программой userland , скомпилированной в Cygwin; от Windows я могу открыть его с помощьюCygwin: открыть персональное устройство
CreateFile("\\\\.\\deviceName",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL)
но в Cygwin, если я стараюсь не использовать
open("//deviceName", O_RDWR);
ничего не происходит; Я попытался использовать «\ DosDevices \ deviceName», // deviceName, // DosDevices/deviceName и т. Д., Но я не могу открыть это устройство.
Есть ли способ сделать это в Cygwin или я должен использовать CreateFile в приложении ?
EDIT: FYI в модуле ядра ссылка создается таким образом, после вызова правильно в IoCreateDevice (....)
#define DOS_DEVICE_NAME L"\\DosDevices\\deviceName"
...
RtlInitUnicodeString(&ntWin32NameString, DOS_DEVICE_NAME);
ntStatus = IoCreateSymbolicLink(&ntWin32NameString, &ntUnicodeString);
....
edit2: Использование Sysinternals Winobj я могу правильно видеть мое устройство под \ГЛОБАЛЬНЫЙ?? с символическая \ Device \ DEVICENAME