Необходимо конвертировать путь к файлу из Win32 в NT
Что бы выглядело вот так:"E:" -> "\Device\HarddiskVolume3"
"E:\Temp" -> "\Device\HarddiskVolume3\Temp"
"E:\Temp\transparent.jpeg" -> "\Device\HarddiskVolume3\Temp\transparent.jpeg"
"I:\foto.jpg" -> "\Device\Harddisk1\DP(1)0-0+6\foto.jpg"
"P:\Data\Passwords.txt" -> "\Device\TrueCryptVolumeP\Data\Passwords.txt"
"A:\Autoexec.bat" -> "\Device\Floppy0\Autoexec.bat"
"H:\VIDEO_TS\VTS_01_0.VOB" -> "\Device\CdRom1\VIDEO_TS\VTS_01_0.VOB"
"COM1" -> "\Device\Serial1"
"COM4" -> "\Device\USBSER000"
"\\ComputerName\C$\Boot.ini" -> "\Device\Mup\ComputerName\C$\Boot.ini"
"\\ComputerName\C$\Boot.ini" -> "\Device\LanmanRedirector\ComputerName\C$\Boot.ini"
"\\ComputerName\Shares\Dance.m3u" -> "\Device\LanmanRedirector\ComputerName\Shares\Dance.m3u"
Про функции типа
GetFinalPathNameByHandle я знаю, они не подходят по одной причине: файлуа может и не существовать поэтому открыть и получить его хэндл используя CreateFile не получится.
Есть ли ещё функции WinAPI (с поддержкой Vista и выше) для конверсии пути из Win32 в NT?