NT 设备名称

命名设备对象的名称格式为 \Device\DeviceName。 这称为 设备对象的 NT 设备名称

WDM 驱动程序的设备名称

WDM 驱动程序不会直接命名其设备对象。 相反,系统会实施统一的命名方案,以确保设备名称不会在驱动程序之间发生冲突。 WDM 驱动程序的命名方案如下所示。

  • 设备的 PDO 命名为 。 总线驱动程序为其枚举的设备请求名为 PDO。 总线驱动程序在创建设备对象时指定FILE_AUTOGENERATED_DEVICE_NAME设备特征。 有关详细信息,请参阅 指定设备特征。 然后,系统自动生成设备名称。

  • FDO 和筛选器 DO 未命名。 函数和筛选器驱动程序在创建设备对象时不请求名称。

对命名设备对象的任何 I/O 请求都会自动转到该设备对象堆栈中的顶部对象。 因此,只需命名 PDO。 用户模式应用程序不按名称引用 WDM 设备对象;相反,应用程序通过其设备 接口访问设备对象。 有关详细信息,请参阅 设备接口类

驱动程序编写器不得命名设备堆栈中的多个对象。 操作系统根据命名对象检查安全设置。 如果命名了两个不同的对象,并且具有不同的安全描述符,则发送到具有较弱安全描述符的对象的 I/O 请求可以使用更强的安全描述符到达设备对象。

非 WDM 驱动程序的设备名称

非 WDM 驱动程序必须显式指定任何命名设备对象的名称。 驱动程序必须在 \Device 对象目录中至少创建一个命名设备对象才能接收 I/O 请求。 创建设备对象时,驱动程序将设备名称指定为 IoCreateDeviceSecureDeviceName 参数。