Microsoft KB Archive/170581

From BetaArchive Wiki

BUG: Mailslot Created on Win95 Allows Only 4093 Bytes


The information in this article applies to:

  • Microsoft Win32 Application Programming Interface (API), on platform(s):
    • Microsoft Windows 95
    • Microsoft Windows 95 OEM Service Release 2
    • the operating system: Microsoft Windows NT, versions 3.51, 4.0


If you call the WriteFile() API to write more than 4093 bytes to a Mailslot that has been created on a Windows 95 Workstation, it fails. The error returned varies depending on the operating system you are calling from:

   Windows NT 3.51:   8     (ERROR_NOT_ENOUGH_MEMORY)
   Windows NT 4.00:   59    (ERROR_UNEXP_NET_ERR)
   Windows 95 :       122   (ERROR_SEM_TIMEOUT) 


There are several ways to work around this issue. One suggestion is to break the message into smaller chunks, and use some method for insuring that all the chunks get there in the proper order. For instance, you can send a header at the beginning of each message, and a footer marking the end of the message. The header should have an ID that indicates the number of messages to expect and the count (that is, 1 of 4, 2 of 4, etc.) The receiving station can reassemble the message from the header information until all data is received.


Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available.


The Win32 SDK indicates that there is no limit to the amount of data you can send to a mailslot using the WriteFile() API. This is correct when a mailslot is created on the Windows NT Platform.

Additional query words: CreateMailSlot nMaxMessageSize

Keywords : kbnetwork kbAPI kbIPC kbOSWinNT351bug kbOSWinNT400bug kbSDKPlatform kbOSWin95bug kbMailslot kbGrpDSNet
Issue type :
Technology : kbAudDeveloper kbWin32sSearch kbWin32API

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