驅動開發之符號鏈接和設備名稱


windows下的設備是以"\Device\[設備名]”形式命名的。例如磁盤分區的c盤,d盤的設備名稱就是"\Device\HarddiskVolume1”,"\Device\HarddiskVolume2”, 當然也可以不指定設備名稱。如果IoCreateDevice中沒有指定設備名稱,那么I/O管理器會自動分配一個數字作為設備的名稱。例如"\Device\00000001"。\Device\[設備名],不容易記憶,通常符號鏈接可以理解為設備的別名,更重要的是設備名,只能被內核模式下的其他驅動所識別,而別名可以被用戶模式下的應用程序識別,例如c盤,就是名為"c:"的符號鏈接,其真正的設備對象是"\Device\HarddiskVolume1”,所以在寫驅動時候,一般我們創建符號鏈接,即使驅動中沒有用到,這也算是一個好的習慣吧。

驅動中符號鏈接名是這樣寫的
L"\\??\\HelloDDK" --->\??\HelloDDK
L"\\DosDevices\\HelloDDK"--->\DosDevices\HelloDDK
在應用程序中,符號鏈接名:
L"\\\\.\\HelloDDK"-->\\.\HelloDDK

winobj和DeviceTree可以用來查看這些信息。

 

DosDevices的符號鏈接名就是??, 所以"\\DosDevices\\XXXX"其實就是\\??\\XXXX

轉載於:http://hi.baidu.com/jkhdgpvdnoeknwe/item/4daa5f9adf6f1acab72531f4

http://blog.csdn.net/chence19871/article/details/17393095


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM