关于远程登入获取会话ID的方法解决办法

关于远程登入获取会话ID的方法
我在XP上远程登入一台server 2003的机子,打开一个服务控制管理程序,并设置了服务允许与桌面进行交互(SERVICE_INTERACTIVE_PROCESS)。现在有个问题是,我怎么才能得到我当前登入的会话ID,因为我要在当前登入的会话ID上面调用CreateProcessAsUser创建进程

代码:
if (WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, &sessionInfo, &ndSessionInfoCount))
{
for (unsigned int i=0; i<ndSessionInfoCount; i++)
{
if (sessionInfo[i].State == WTSActive)
{
dwSessionID = sessionInfo[i].SessionId;
sprintf(csTemp, " 活动SessionID=%d", sessionInfo[i].SessionId);
WriteLog(pLogFile, csTemp);
//break;
}
}
}
我输出log看了下,server2003因为允许多个用户同时登入,所以同时处于WTSActive状态的连接会有好几个,至少有两个,因为server2003貌似把系统的服务进程都创建在了一个独立的会话ID上了


请问下,如何才能够得到当前远程登入的会话ID?能否大概把API说一下,有代码就更好啦。
还有就是据说WTSEnumerateSessions函数在sp3上不起作用了,不知道该怎么弄?

------解决方案--------------------
这有比较高深,看有没高手在