reference link: https://docs.microsoft.com/ru-ru/windows/win32/api/wtsapi32/nf-wtsapi32-wtsvirtualchannelopenex
[DllImport("wtsapi32.dll", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
private static extern IntPtr WTSVirtualChannelOpenEx(uint dwSessionID, string pChannelName, int flags);
Declare Function WTSVirtualChannelOpenEx Lib "wtsapi32.dll" (TODO) As TODO
private uint WTS_CURRENT_SESSION = uint.MaxValue;
private enum WTSVirtualChannelOpenExFlags
{
WTS_CHANNEL_OPTION_DYNAMIC = 0x00000001, // dynamic channel
WTS_CHANNEL_OPTION_DYNAMIC_PRI_LOW = 0x00000000, // priorities
WTS_CHANNEL_OPTION_DYNAMIC_PRI_MED = 0x00000002,
WTS_CHANNEL_OPTION_DYNAMIC_PRI_HIGH = 0x00000004,
WTS_CHANNEL_OPTION_DYNAMIC_PRI_REAL = 0x00000006,
WTS_CHANNEL_OPTION_DYNAMIC_NO_COMPRESS = 0x00000008
}
Do you know one? Please contribute it!
None.
Please add some!
public static void VirtualChannelOpen(string virtualChannelName, out IntPtr virtualChannelHandle)
{
virtualChannelHandle = WTSVirtualChannelOpenEx(WTS_CURRENT_SESSION,
virtualChannelName,
(int)WTSVirtualChannelOpenExFlags.WTS_CHANNEL_OPTION_DYNAMIC);
if (virtualChannelHandle == IntPtr.Zero)
{
// error
}
}