windows7上,在一个service程序里创建用户session的进程 总是报错

windows7下,在一个service程序里创建用户session的进程 总是报错
SERVICE_TABLE_ENTRY ServiceTable[2];
ServiceTable[0].lpServiceName = _T("MyService");
ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;

在ServiceMain函数中调用WTSQueryUserToken(dwSessionId, &hToken)时,报错ERROR_NO_TOKEN 1008.
sessionid 的值已经成功获取,
根据msdn的说法,The token query is for a session in which no user is logged-on. This occurs, for example, when the session is in the idle state. 
服务程序是开机即启动的,用的admin账户登录,为何会报这样的错呢?

------解决方案--------------------
dwSessionId从哪里来的
------解决方案--------------------
同样代码XP下没有问题?
------解决方案--------------------
ServiceMain ?
你服务启动的时候,应该还没到你登录呢。

除非你的服务是手动启动。
------解决方案--------------------
自动运行的服务不能保证用户登陆后启动
------解决方案--------------------
服务跟用户登陆时间差,谁先谁后都可能,不能保证