Я использую Hyper V в Windows 8 и хотел бы иметь возможность обмениваться данными с виртуальным последовательным портом через именованный канал. Я даю каналу имя по выбору, и он хорошо работает, взаимодействуя с последовательным портом виртуальной ОС (XP, в моем случае), но только под пользователем Admin из-за настроек PipeSecurity.
Теперь я хотел бы иметь возможность предоставить полный контроль для всех в именованном канале, созданном Hyper-V. Программно или, может быть, с какой-то настройкой Hyper V. Мне нужно иметь возможность общаться с виртуальной ОС как обычный пользователь.
Я знаю, как установить определенную безопасность для именованного канала, который я создаю сам, используя NamedPipeServerStream вместе с объектом PipeSecurity. В основном я использую C#, но вижу, что существуют API C++, такие как SetSecurityInfo. Но для этого требуется дескриптор существующей трубы.
В псевдокоде я хотел бы сделать что-то вроде:
SetSecurityInfo("mypipe", new PipeAccessRule("Все", PipeAccessRights.FullControl, AccessControlType.Allow));
Кто-нибудь знает, как это сделать? (С++ или предпочтительно С#)