BUG: WTSWaitSystemEvent Returns Terminal Services Event Twice

ID: Q249315


The information in this article applies to:
  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT 4.0
    • Microsoft Windows 2000


SYMPTOMS

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


RESOLUTION

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


STATUS

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


MORE INFORMATION

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());
            break;
        }

        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 ");

        printf("\n");
    } 
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 kbNTOS400bug kbWinOS2000bug kbDSupport kbGrpKernBase kbTermServ
Version : winnt:4.0
Platform : winnt
Issue type : kbbug


Last Reviewed: January 20, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.