【发布时间】:2010-11-09 22:31:43
【问题描述】:
article 解释了如何使用QueryDosDevice 查询逻辑 DOS 名称的 NT 命名约定。它解释了如何使用DefineDosDevice 使用它们的 NT 命名约定添加和删除逻辑设备名称。文章解释了访问各种设备需要一个 DOS 名称。
"Win32 程序不能使用内部 要访问的 Windows NT 设备名称 设备,因为 Win32 子系统 和 Win32 API 需要更多 熟悉的驱动器号和 MS-DOS 设备名称,例如 A:、C:、COM1:、 和 LPT1"
我找到了这个interesting article,它获取了所有可用的 DOS 名称,然后使用函数 GetLogicalDriveString 查询 NT 名称。本文不解释如何返回所有已定义的设备 DOS 名称,只是驱动器。
但是,我想知道如何做相反的事情。我将如何获得 NT 设备名称列表。我不只是在寻找驱动器,而是在寻找所有设备。例如 LPT1 和 COM1 是保留的 DOS 名称,它们对应于特定的 NT 名称。我想映射其他可能没有 DOS 名称的设备,以便我可以使用 WINAPI 函数CreateFile。
如何获得所有与 DOS 名称相反的 NT 设备名称的列表?
【问题讨论】:
-
如果不使用 Windows 驱动程序开发工具包,这是否可能?如果可能的话,我想继续使用常规的 WINAPI。