1
我需要打開在Windows中創建的一個內核模塊,並在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 etc ....但我無法打開設備。
有一種方法可以在Cygwin中執行此操作,或者我必須在 用戶級應用程序中使用CreateFile?
編輯: 使用的Sysinternals的WinObj我可以看到正確 下我的設備: 僅供參考內核模塊鏈接調用正確的一個IoCreateDevice函數(....)
#define DOS_DEVICE_NAME L"\\DosDevices\\deviceName"
...
RtlInitUnicodeString(&ntWin32NameString, DOS_DEVICE_NAME);
ntStatus = IoCreateSymbolicLink(&ntWin32NameString, &ntUnicodeString);
....
EDIT2之後創建這樣\全球??與符號鏈接\設備\設備名稱