WTS32api: WTSEnumerateSessions возвращает код ошибки 5 - PullRequest
0 голосов
/ 20 декабря 2018

Я использую WTSEnumerateSessions для получения пользовательских сессий.В большинстве случаев он работает нормально, но иногда возвращает 0 пользовательских сеансов.

Поэтому мы добавили Marshal.GetLastWin32Error(), чтобы выяснить причину этого.и мы получили код ошибки 5, в котором говорится, что доступ запрещен.

IntPtr ppSessionInfo = IntPtr.Zero;
Int32 pCount = 0;
Int32 retval = WTSEnumerateSessions(server, 0, 1, ref ppSessionInfo, ref pCount);
Log.Write(pCount.ToString());
Int32 dataSize = Marshal.SizeOf(typeof(WTS_SESSION_INFO));

Int64 current = (int)ppSessionInfo;

if (retval == 0 || pCount == 0)
{
    Log(Marshal.GetLastWin32Error());
}

this Я узнал, что это отказ в доступе, но я хотел узнать больше.почему ему отказано в доступе при выполнении такого низкоуровневого API, и это тоже иногда не всегда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...