DefineDosDevice

【勇芳软件工作室】汉化HomePreviousNext

DefineDosDevice功能允许应用程序定义,重新定义或删除MS-DOS设备名称。

MS-DOS设备名称作为符号链接存储在32位版本的Windows中的对象名称空间中。将MS-DOS路径转换为32位版本的Windows中的相应路径的代码将使用这些符号链接映射MS-DOS设备和驱动器号。DefineDosDevice功能提供了一种基于Win32的应用程序可以修改用于实现MS-DOS设备名称空间的符号链接的机制。

BOOL DefineDosDevice(

DWORD 【dwFlags中】,//指定设备定义方面的标志
LPCTSTR 【lpDeviceName】,//指向MS-DOS设备名称字符串的指针
LPCTSTR 【lpTargetPath】//指向MS-DOS的指针或32位Windows的路径字符串
); 

参数

【dwFlags中】

指定DefineDosDevice功能的几个可控方面。可以使用以下一个或多个值:

含义
DDD_RAW_TARGET_PATH如果指定了此值,该函数不会将【lpTargetPath】字符串从MS-DOS路径转换为32位版本的Windows的路径,而是按原样转换。
DDD_REMOVE_DEFINITION如果指定了此值,则该函数将删除指定设备的指定定义。要确定要删除的定义,该函数将走出设备的映射列表,寻找与此设备相关联的每个映射的前缀【lpTargetPath】的匹配项。匹配的第一个映射是删除的映射,然后函数返回。

如果【lpTargetPath】为NULL或指向NULL字符串的指针,则该函数将删除与设备关联的第一个映射,并弹出最近推送的映射。如果没有什么可以弹出,设备名称将被删除。

如果未指定此值,则【lpTargetPath】参数指向的字符串将成为此设备的新映射。

DDD_EXACT_MATCH_ON_REMOVE如果此值与DDD_REMOVE_DEFINITION一起指定,则该函数将使用完全匹配来确定要删除的映射。使用此值可确保不删除未定义的内容。

【lpDeviceName】

指向MS-DOS设备名称字符串,指定功能正在定义,重新定义或删除的设备。设备名称字符串不能有冒号,除非正在定义,重新定义或删除驱动器号(例如C或D)。

【lpTargetPath】

指向将实现此设备的路径字符串。指向MS-DOS路径字符串,除非指定了DDD_RAW_TARGET_PATH标志,在这种情况下,此参数指向32位版本的Windows的路径字符串。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

如本函数的介绍性摘要中所述,DefineDosDevice函数提供了一种方法,使基于Win32的应用程序可以创建和修改用于实现MS-DOS设备命名空间的符号链接。要检索特定MS-DOS设备名称的当前映射或获取系统已知的所有MS-DOS设备的列表,请使用QueryDosDevice功能。

MS-DOS设备名称是全局的。一旦定义,MS-DOS设备名称对于所有进程来说都是可见的,直到它被明确地删除或系统重启。

请注意,除非用户以管理模式(ADMIN)运行,否则系统引导时定义的驱动器盘符和设备名称将受到保护,不得重新定义和删除。

也可以看看

QueryDosDevice