Я пытаюсь смонтировать устройство Windows через путь устройства ist к папке ntfs. Путь к устройству имеет вид:
\\?\GLOBALROOT\Device\ImDisk{0}
Я хотел бы смонтировать его в пустой папке ntfs, скажем:
c:\temp\
Устройство, которое я пытаюсь смонтировать, является RAM-накопителем ImDisk, который поставляется с API. По сути, API монтирует устройство через
hDir = CreateFile(Directory, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ, NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS |
FILE_FLAG_OPEN_REPARSE_POINT, NULL);
, а затем делает
DeviceIoControl(hDir, FSCTL_SET_REPARSE_POINT, &ReparseData,
16 + iSize + 2 + iSize + 2, NULL, 0, &dw, NULL))
из всего, что я вижу в msdn, это сделано правильно. Единственная проблема: это не работает. Независимо от обозначения устройства, которое я использую, созданное соединение не может быть открыто проводником. Соединение создается и распознается проводником, когда при попытке открыть его проводник сообщает, что целевой синтаксис недействителен.
До сих пор я пытался смонтировать устройство, обращаясь к нему как:
\\?\GLOBALROOT\Device\ImDisk0
\\.\GLOBALROOT\Device\ImDisk0
\\.\Device\ImDisk0
\\Device\ImDisk0
Ничего из этого, похоже, не работает.
Я уверен, что Ram-Drive существует и правильно сформирован. Я могу получить к нему доступ через Driveletter (если я назначу его во время его создания, например, E: \)
И я могу получить к нему доступ через
CreateFile("\\?\GLOBALROOT\Device\ImDisk0\file.txt")
Я могу создать FileStream, выполнить код из него и т. Д.
Есть какие-нибудь подсказки, как смонтировать его в ntfs-папку?
Любая помощь приветствуется!
Заранее спасибо!
Corelgott