zoukankan      html  css  js  c++  java
  • Windows驱动开发-符号链接和设备名

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

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

    "DeviceHarddiskVolume2”
    "DeviceHarddiskVolume3”。

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

    "Device0000001"

    设备名不容易记忆。

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

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

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

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

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

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

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

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

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

    L"\\.\HelloDDK"-->\.HelloDDK
  • 相关阅读:
    Tornado Web框架
    使用django实现自定义用户认证
    设置DNS 代理
    Docker
    TCP/IP详解学习笔记(1)-基本概念
    IMS知识学习路径浅谈
    Word文档不能编辑解决方法
    P2P网络“自由”穿越NAT的“秘密”原理
    斗战神 拳猴刷图加点
    斗战神 装备精炼
  • 原文地址:https://www.cnblogs.com/a-s-m/p/12329836.html
Copyright © 2011-2022 走看看