windows下的设备是以"\Device\[设备名]”形式命名的。

例如磁盘分区的C盘,D盘的设备名称就是

"\Device\HarddiskVolume2”
"\Device\HarddiskVolume3”。

也可以不指定设备名称,那么I/O管理器会自动分配一个数字作为设备的名称。例如

"\Device\00000001"

设备名不容易记忆。

在驱动程序中,定义设备对象名称需要以L"\\device\\"开头,

定义符号链接的名称需要以L"\\dosDevices\\"开头,(注意dosDevices中的最后一个字符是s,然后IoCreateSymbolicLink函数返回失败,半天找不到原因);

或者以L"\\??\\"开头也可以。

符号链接可以理解为设备的别名,更重要的是,设备名只能被内核模式下的其他驱动所识别,而别名可以被用户模式下的应用程序识别。“C:”就是一个符号链接名。

而在驱动中,符号链接名是这样写的:

L”\\??\\c:”  ---> \??\c:
L"\\??\\HelloDDK" --->\??\HelloDDK
L”\\DosDevices\\HelloDDK” ---> \DosDevices\HelloDDK

在内核模式下,符号链接是以“\??\”开头的,如C盘就是"\??\C:",

在用户模式下,符号链接是以“\\.\”开头的,如C盘就是"\\.\C:".

因此在应用程序中,符号链接名:

L"\\\\.\\HelloDDK"-->\\.\HelloDDK

最新文章

  1. C/C++ 标准输入输出重定向
  2. javascript操作字符串的方法
  3. mysql存储过程语法及实例
  4. 深入springMVC------文件上传源码解析(上篇)
  5. Java 基础知识相关好文章
  6. 跟着百度学PHP[4]OOP面对对象编程-13-魔术方法__set(),__get(),__isset(),__unset()
  7. texstudio on ubuntu 12.04
  8. 编译时:virtual memory exhausted: Cannot allocate memory
  9. 1.5.6 Filters
  10. linux_过程问题记录
  11. java基础知识回顾之---java StringBuilder与StringBuffer异同点
  12. ICallbackEventHandler 接口实现回调处理功能
  13. Python设计模式——装饰模式(Decorator)
  14. python开发初期及二次开发C api
  15. 学习linux能有什么用
  16. WordCount项目
  17. 大话python模块与包
  18. qtp10 安装笔记
  19. 使用matplotlib.pylab绘制分段函数
  20. 2440nandflash启动过程再学习

热门文章

  1. C++11常用特性介绍——decltype关键字
  2. vue.js 第九课
  3. Python 爬取 热词并进行分类数据分析-[简单准备] (2020年寒假小目标05)
  4. MySQL之可视化软件
  5. http://www.yyne.com/python使用-urllib-quote-进行-url-编码小技巧/
  6. Kafka-JavaAPI(Producer And Consumer)
  7. Microsoft Cortana移动版除美国市场外不再可用
  8. MD5摘要
  9. windows 10 遥控操作和传输文件
  10. Python 之并发编程之进程下(事件(Event())、队列(Queue)、生产者与消费者模型、JoinableQueue)