На рабочей станции Vista у меня есть подключенный компьютер XP Embedded, на котором я хочу программно подключить том локально (например, смонтировать XP Embedded \\MyXPEmbedded\C:\some\path\
на рабочую станцию Vista (смонтированную на C:\mounted_XPEmbedded\
).
(Это административная утилита, которая работает на рабочей станции Vista и поддерживает файлы на рабочей станции XP Embedded, которая является частью более крупного устройства.)
Я могу увидеть Встроенный компьютер XP с рабочей станции Vista. Например, я могу ::getnameinfo()
разрешить имя компьютера со встроенным XP из его IP-адреса.
Однако все вызовы GetVolumeNameForVolumeMountPoint()
завершаются неудачно (возвращает false
), при этом форматированное сообщение от ::GetLastError()
:
Logon failure: unknown user name or bad password
Очевидно, что это проблема с разрешениями. Тем не менее, я не вижу обсуждения в API Microsoft, как я могу предоставить пользователя / пароль через эти API-интерфейсы GUID тома.
При «просмотре» XP Embedded из проводника Windows на рабочей станции Vista путем ввода IP-адреса компьютера с установленным XP в адресную строку мне предлагается ввести имя пользователя и пароль, после чего я могу видеть все на XP Embedded ( Дух! Как мне обеспечить это программно?)
ВОПРОС: Как программно предоставить логин / пароль пользователя при работе с API-интерфейсами GUID пути (и в частности ::GetVolumeNameForVolumeMountPoint()
)?
Часть проблемы может заключаться в том, что эти компьютеры не разделяют один и тот же домен (они не могут, компьютер Vista будет добавлен в домен клиента, XP Embedded должна быть «скрыта»).
Другая информация, которая, вероятно, не важна:
- Рабочая станция Vista и XP Embedded не используют один и тот же домен (они не могут)
- Приложение работает на рабочей станции Vista под учетной записью с правами администратора (я полагаю, это требуется?)
- Эта административная учетная запись Vista отсутствует на компьютере XP Embedded (XP Embedded имеет другую учетную запись администратора)
- Часы между обоими компьютерами являются текущими (учетные данные безопасности должны работать)
- Рабочая станция Vista имеет две сетевые карты, одна из которых подключается непосредственно к встроенному блоку XP, который имеет только одну сетевую карту
- Использование C ++, MSVS2008
БОНУСНЫЙ ВОПРОС: Было бы неплохо, если бы я мог запустить эту административную утилиту на рабочей станции Vista без административных разрешений, возможно ли это? (Я знаю административный логин / пароль для встроенной XP.)