Microsoft KB Archive/249315

From BetaArchive Wiki

BUG: WTSWaitSystemEvent Returns Terminal Services Event Twice


The information in this article applies to:

  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT Server version 4.0
    • Microsoft Windows NT Workstation version 4.0
    • the operating system: Microsoft Windows 2000


When using WTSWaitSystemEvent in a tight loop, events are reported twice for each actual event.


The application should expect the event twice, and filter out the second occurrence.


Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.


Steps to Reproduce Behavior

Compile a program that executes the following code:

    DWORD dwEvent;

    while (1){
        if (!WTSWaitSystemEvent(WTS_CURRENT_SERVER_HANDLE, WTS_EVENT_ALL, &dwEvent))
            printf("WTSWaitSystemEvent failed with %u\n", GetLastError());

        if (dwEvent & WTS_EVENT_CONNECT)
            printf("WTS_EVENT_CONNECT ");

        if (dwEvent & WTS_EVENT_CREATE)
            printf("WTS_EVENT_CREATE ");

        if (dwEvent & WTS_EVENT_DELETE)
            printf("WTS_EVENT_DELETE ");

        if (dwEvent & WTS_EVENT_DISCONNECT)
            printf("WTS_EVENT_DISCONNECT ");

        if (dwEvent & WTS_EVENT_LOGOFF)
            printf("WTS_EVENT_LOGOFF ");

        if (dwEvent & WTS_EVENT_LOGON)
            printf("WTS_EVENT_LOGON ");

        if (dwEvent & WTS_EVENT_RENAME)
            printf("WTS_EVENT_RENAME ");

        if (dwEvent & WTS_EVENT_STATECHANGE)
            printf("WTS_EVENT_STATECHANGE ");


If you run the code on a terminal server computer, events are reported twice. For example, if a new session is started, WTS_EVENT_CREATE is reported twice, then WTS_EVENT_LOGON occurs twice, and so on.

Additional query words:

Keywords : kbAPI kbKernBase kbOSWinNT400bug kbOSWin2000bug kbDSupport kbGrpDSKernBase kbTermServ
Issue type : kbbug
Technology : kbAudDeveloper kbWin32sSearch kbWin32API

Last Reviewed: October 23, 2000
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.