FIX: WSAEventSelect( ) Returns WSAEINVAL if Network Events is 0 (168349)



The information in this article applies to:

  • Microsoft Windows NT Workstation 4.0
  • Microsoft Windows NT Server 4.0

This article was previously published under Q168349

SYMPTOMS

When the network event's bitmask is set to 0 in the last parameter of WSAEventSelect( ), the API returns WSAEINVAL. As a consequence of this behavior, the user cannot cancel any prior association of network events with the socket.

RESOLUTION

Either of the following options will disassociate the socket from the event:
  • Call WSAEventSelect with NULL passed as the event parameter: rc = WSAEventSelect(socket, NULL, 0);

    -or-
  • If your design permits, call closesocket to close the socket.

STATUS

This problem was corrected in Windows 2000.

MORE INFORMATION

WSAEventSelect( ) is an API that specifies an event object to be associated with the supplied set of FD_XXX network events for a given socket. This event object is set when any of the nominated network events occur.

It should have been possible to cancel the association of network events on the socket by calling

rc = WSAEventSelect(socket, hEventObject, 0);

However, due to the above-mentioned bug, this API fails with rc=10022, which means that the supplied parameters are invalid.

Modification Type:MajorLast Reviewed:4/6/2004
Keywords:kbAPI kbBug kbfix kbnetwork kbOSWin2000fix kbWinsock KB168349