Microsoft KB Archive/148862

{|
 * width="100%"|

-

The information in this article applies to:


 * Microsoft Win32s version 1.3c

-

SUMMARY
This article lists all the known bugs in Win32s version 1.30c at the time of its release.

MORE INFORMATION

 * Incorrect context at EXIT_PROCESS_DEBUG_EVENT.
 * DEBUG_EVENT.RIP_INFO is not supported.
 * Progman is restored when the debugger application exits.
 * Problem with journaling hooks on Win32s when using MSTest.
 * OLE: need try/except at 32-bit entrypoints.
 * EXCEPTION_RECORD: The number of params and Info array is always zero.
 * Frame: Access Violation in PackFindData@8 (FindFirstFile looking for Arrow.pcx).
 * CVW32s: int 3 disables the receipt of bp for DbgBreakpoint.
 * CVW32s: Machine deadlock with the debugger, div0.exe, and FatalAppExit.
 * CVW32s: Ubrowse.exe runs on Windows NT but not Win32s example.
 * cvw/win32s: restart of MFC application fails.
 * cvw/w32s: exception; procterm; l; g; async stop doesn't stop.
 * EM_GETWORDBREAKPROC return code is incorrect. If an application sends the EM_GETWORDBREAKPROC message to an edit control, it will receive the address of a 32->16 callback thunk with no code on the other end of the stub.
 * Dialog procs should return BOOL not DWORD.
 * The DDE message thunks force the fAckReq bit to 1 if WM_DDE_DATA is sent with it set to 0. This forces the client to post the WM_DDE_ACK message so that the thunk layer can know when to free up data allocated for thunking the WM_DDE_DATA message. The server isn't expecting the ACK in this case. The thunk layer will recognize the forced ACK, however the code to consume it has not been implemented yet.
 * Int 3 cannot be trapped by way of SEH on Win32s.
 * Win32's CreateFile opens files in cooked mode as opposed to raw mode.
 * Some time functions, such as ctime, return values that are off by nine hours. This happens when the TZ environment variable is not defined. When TZ is defined and set to 0, these time functions return the correct value. The time offset is determined by the TZ environment variable, and when it is not defined, a default of -9 is used.
 * Microsoft Test script Mantapp.mst detects stack overflow when the test runs out of memory the second time.
 * _lopen gives the wrong error code when the file does not exist. _lopen fails with error code 87 instead of error code 2 (ERROR_FILE_NOT_FOUND). Win32s is unable to determine from the return value provided by Windows if the call failed due to the file not being there.
 * Cannot run ReadProcessMemory on memory that has hardware bp set on it.
 * UT Diagram in the Programmers Reference is incorrect.
 * CRT: getdcwd/getcwd does not work on Win32s.
 * An exception in the DLL termination routine causes the system to quit.
 * PlayMetaFileRecord/EnumMetaFile contains incorrect lpHTable.
 * A Windbg assertion occurs on the HOST machine.
 * PlaySound with SND_RESOURCE doesn't work correctly.
 * File mapping rounded to a whole number of pages (a multiple of 256 instead of 4096). The workaround is to use SetFilePointer and SetEndOfFile after closing the mapping handles, but before closing the file.
 * chdrive and SetCurrentDirectory fail on the PCNFS drive.
 * Microsoft Excel bapco Microsoft Test script does not run to completion.
 * Dynamic dialog boxes under Win32s: An ANSI Win32 application loads a dialog box resource directly from its executable through LoadResource, traverses the dialog box template, and renders its controls into another dialog box. The application then displays the dialog box, which repositions some of its controls during WM_INITDIALOG. In Windows NT, the controls rearrange as intended, but in Win32s, they appear misaligned by 50 pixels or so.
 * GetExitCodeProcess does not return exit codes for 16-bit Windows-based applications.
 * The CRT function system does not work the way it did in Windows NT.
 * There is a limitation in how NCB memory needs to be allocated on Win32s. The Win31 netbios VxD expects the memory to be allocated from the Win31 memory space to lock that specific memory page. If the memory is allocated from somewhere else such as from the Win32s sparse area, the memory allocation will fail. In this specific case, allocate a buffer using GlobalAlloc, memcpy in it the data retrieved, and call Netbios.
 * biSizeImage field of BITMAPINFOHEADER is zero. GetDIBits is not placing the correct value for this field into the buffer.
 * Only the first CBT hook gets messages.
 * Registry functions return incorrect result code. Registry functions such as RegCreateKey return incorrect results upon failure. The Windows 3.1 return code is returned, not the Windows NT return code. The functions that return correct results are: RegQueryValueA and RegQueryValueExA
 * General protection (GP) fault in WinExec 16-bit application context.
 * Bad handles from CreateProcess16 if the child doesn't yield.
 * GlobalReAlloc(x,y,GMEM_MOVEABLE) returns the wrong handle type.
 * GMEM_SHARE memory must be freed explicitly.
 * RestartThread writes to the debuggee stack.
 * The memory for CallBack frames is allocated once. The allocation size is 64K. In most cases, this is too large, and in some extreme cases this 64K may be exhausted.
 * GetShortPathName does not check the correctness of the path.
 * CreateDirectory handles errors differently in Windows NT from the way it handles errors in Win32s. Under Windows NT, all failures (directory already exists, no space left on device, and so on) are handled correctly. Under Win32s, all errors are handled identically (error #5, "Access is denied").
 * SetCurrentDirctory gives different error codes on Windows NT from what it gives on Win32s. SetCurrentDirectory works differently under Win32s. For example, if there is no floppy disk in drive B, and SetCurrentDirectory is called with "b:\" under Windows NT, error #21 is returned ("The device is not ready") while under Win32s, error #161 is returned ("The specified path is invalid").
 * signal(SIGINT, SIGABRT, SIGTERM) needs instance data.
 * FindText leaks memory and may cause a general protection (GP) fault.
 * spawnl doesn't pass parameters to an MS-DOS-based application.
 * Win32s does not support forwarded exports.
 * module management APIs missing ANSI to OEM translation.
 * GetIconInfo's piconinfo->fIcon member is always set to 1.
 * PlaySound with SND_NOWAIT doesn't work correctly.
 * FormatMessage doesn't set the last error.
 * Createfile, when used on a write-protected floppy disk, fails. GetLastError returns 2 instead of 19.
 * Win32app cannot be browsed if the same application is running.
 * Setup doesn't create backup files for some of the OLE files.
 * winhlp32:Compare macro does not display windows side by side.
 * MEASUREITEMSTRUCT and DRAWITEMSTRUCT are missing fields in menus.
 * HeapValidate fails on a new heap. HeapValidate is not supported in the retail version of Win32s. GetLastError returns ERROR_CALL_NOT_IMPLEMENTED. HeapValidate is supported only in the debug version of Win32s and in both the retail and debug versions of Windows NT.

Other new heap APIs that are not supported in Win32s are:

HeapCompact

HeapCreateTags

HeapExtend

HeapLock

HeapQueryTag

HeapSummary

HeapUnlock

HeapUsage

HeapWalk

All these APIs, including HeapValidate, are documented as not supported on Win32s and Windows 95.
 * winhlp32:delete of annotation in popup causes unh exception.
 * GrayString with a NULL callback address causes a Fatal Exit in the debug version of Windows.
 * SetEnvironment does not handle various errors correctly
 * winhlp32:PopupContext macro produces incorrect error message.
 * winhlp32:PC macro with non-help file doens't work correctly.
 * winhlp32:PopupID with non-existing context string doesn't work correctly.
 * A file opened as GENERIC_READ only can still be written to.
 * CreateFile does not update attributes when file is opened for the second time.
 * PrintDlg Error - Print Dialog succeeds with NULL hPrintTemplate and PD_ENABLEPRINT.
 * PrintDlg Error - Print Dialog succeeds with NULL hSetupTemplate and PD_ENABLESETUPTEMPLATE
 * PrintDlg Error - Print Dialog succeeds with NULL hInstance.
 * PrintDlg Error - If the From value is greater than the To value in the Print dialog, it still returns SUCCESS instead of an error value.
 * PrintDlg Error - If the From or To entry is empty in the Print dialog, it still returns SUCCESS instead of an error value.
 * winhlp32 doesn't play .avi files.
 * winhlp32:new highlight feature is not consistent.
 * winhlp32:System error on write protected medium.
 * winhlp32:bitmap in Shed.hlp does not print correctly.
 * winhlp32:winword produces error when attempting to print from a secondary window.
 * winhlp32:Clicks go through File Manager.
 * Mplay32.exe of Windows NT 3.1 does not run on Win32s.
 * winhlp32:Window title does not change back.
 * winhlp32:kicked out of help after opening non-helpfile.
 * SearchPath doesn't find file if Path is empty. NULL for lpszPath is fine, but an lpszPath = "" will not work the same as on Windows NT.
 * VerLanguageNameA is not exported by Version.dll.
 * Low level wave in win32s (WAVEHDR.dwBytesRecorded) is set to zero.
 * MoveFile fails on Novell client 4.0 when the source is a local file and the target is a remote file.
 * SetWindowLong (GWL_USERDATA) causes a warning from the debug version of Windows when the window is destroyed
 * Setting a word break function on an edit control causes a general protection (GP) fault.
 * Tooltips does not appear in Edit controls
 * WinHelp doesn't handle the HELP_TCARD parameter properly.
 * WM_CHOOSEFONT_GETLOGFONT does not work correctly.

Additional query words: bugs buglist

Keywords         : kbWin32s Version          : 1.30c Platform         : WINDOWS Issue type       :
 * }