IPB

Google Frontpage Forums Unattended CD/DVD Guide
> 98 (FE), 98 SP1, 98 SE + ME SHELL32.DLL fix, for Explorer lockups with IE 5.xx/6.xx
MDGx
post Oct 12 2006, 05:08 PM
Post #1


creator of 98SE2ME
Group Icon

Group: Moderator
Posts: 2381
Joined: 22-November 04
Member No.: 37121
Country Flag


UPDATE 2-28-2007

This is *the* fix we have all been waiting for, folks. newwink.gif
These 2 fixes were created by Anonymous author, who also developed unofficial U891711, Q918547, GDI*.*, KERNEL32.DLL + older SHELL98 fixes.

SHELL98:
http://www.mdgx.com/web.htm#9SU

Restored proper SHELL32.DLL 4.72.3812.634 English.
This SHELL32.DLL version corrects *almost all* EXPLORER.EXE lockups independent of free USER resources percentage:

* Unofficial Windows 98/98 SP1/98 SE Explorer Lockups With Internet Explorer 5.xx/6.xx SHELL32.DLL 4.72.3812.634 Fix:
- SHELL32.DLL Fix [475 KB, English]:
http://www.mdgx.com/files/SHELL98.EXE
- SHELL32.DLL Fix [475 KB, French]:
http://www.mdgx.com/files/SHELL98F.EXE
- SHELL32.DLL Fix [475 KB, Italian]:
http://www.mdgx.com/files/SHELL98I.EXE
This SHELL32.DLL Fix corrects Windows Explorer (and similar tools that use SHELL32.DLL APIs) lockups while trying to copy/create/move/delete/rename large number of files/folders with Internet Explorer 5.xx/6.xx already installed.
BUG: This SHELL32.DLL fix breaks the ability of removing annoying arrows from Desktop shortcut icons!
FIX: See "PATCHED SHELL32.DLL BUG + FIX" for complete details:
http://www.mdgx.com/98-5.htm#PSBF

SHELLME:
http://www.mdgx.com/web.htm#MEU

Same SHELL32.DLL version "rearranged" for easier localization (translation into languages other than English):
* Unofficial Windows ME Explorer Lockups With Internet Explorer 5.xx/6.xx SHELL32.DLL 5.50.4134.120 Fix:
Direct download [843 KB, English]:
http://www.mdgx.com/files/SHELLME.EXE
Direct download [847 KB, Italian]:
http://www.mdgx.com/files/ITSHELME.EXE
This SHELL32.DLL Fix corrects Windows Explorer (and similar tools that use SHELL32.DLL APIs) lockups while trying to copy/create/move/delete/rename large number of files/folders with Internet Explorer 5.xx/6.xx already installed.

How to uninstall this fix [valid for all versions]:
Start button -> Settings -> Control Panel -> Add/Remove Programs -> select "Remove Unofficial Explorer Lockups SHELL32.DLL Fix" -> click Add/Remove button -> reboot.

Author's comments...
QUOTE
I am sending SHELL32.DLL [for Win98/98 SE], which is far more than a mere workaround.
It does not fix the underlying bug in USER.EXE and its WM processing, but is designed to prevent the series of EXPLORER.EXE hangs 100% even if User Resources are low etc.
Although some MSFN members seem to think otherwise, it is not a bug in SHELL32.DLL - it just happens to be the best place to take care of the problem.
As always, this patch comes with the notice "Use at your own risk!"

I am very sorry but I have no time to localize SHELL32.DLL and I also have no plans at this point to port the code from Win98/98 SE SHELL32.DLL 4.72.3812.634 or 635 to WinME 5.50.4134.120 ( --> .134) - the patch is more difficult to implement under WinME.
However, I am sending a "rearranged" SHELL32.DLL 5.50.4134.120 [for WinME], the same "workaround", which should be much easier to localize = translate localizable strings into languages other than English.

Rick Chauvin wrote on Jan 3 2007, 05:46 PM:
QUOTE
I've found interestingly that for whatever reason? the Shell32.dll fix
(SHELL98.EXE) fix for Explorer lockups appears? to be more effective if
the Kernel32.dll fix (Copy2gb.exe) is also installed. To explain more of
what I've noticed is that if only the Shell32.dll is updated the hang
problem is yes much improved (70% successful) over just having the
original one in place - but I still can make it hang although not nearly
as readily as without it that's for sure; however if I have both the
shell32 and Kernel32 dlls updated then in my observances as of yet
anyway, it appears to be even more improved (85% successful) and more
difficult to trigger the hang problem. (In any of my tests when it hangs
the User, System, and GDI resources still show high %) Even though not a
perfect fix, the Shell32.dll workaround is a good one and well worth it,
and many thanks again to anonymous for taking the time to look at this
problem.
Rick,

Many thanks for testing the patch and for your comments.
Is there a sure-fire method that you know and use which triggers the bug successfully in most cases?
It would be very helpful to know.
It may help pinpoint the location of the actual bug in USER.EXE and whatever code in KRNL386.EXE/KERNEL32.DLL USER.EXE calls.
Which versions of KERNEL32.DLL have you been using for these tests?
4.10.2225 (official version) from 320798usa8.exe or an earlier version?
The updated version from COPY2GB.EXE on your machine is 4.10.2226 (unofficial version), correct?

LLXX wrote on Jan 6 2007, 07:39 PM:
QUOTE
First of all, there is nothing wrong with SetFilePointer as it uses
64-bit file pointers; the problem is in _llseek which interprets its
32-bit file pointer as signed irregardless of the desired seek (from the
beginning, from the current position, or from the end), and thus
attempts to move the file pointer past the beginning of the file even
when the desired seek is from the beginning (in which case a negative
offset would be nonsensical). In the unfixed version of _llseek,
SetFilePointer gets passed the sign-extended file pointer, causing *it*
to attempt to seek past the beginning of the file. I have fixed this by
forcing it to zero-extend the file pointer to 64 bits (thus keeping its
sign positive) *only* when a seek from the beginning is specified.
Otherwise the file pointer is signed and can be moved within the file as
usual.

Anonymous seems to have fixed shell32.dll to use SetFilePointer instead,
although this still leaves _llseek flawed. SetFilePointer doesn't need
any changes.
LLXX wrote on Dec 16 2006, 07:33 PM:
QUOTE
Don't know what's with that one. The _llseek doesn't even look like it
was fixed. Edit: This problem doesn't affect explorer.exe in WinME so
maybe that file is just a dummy.
What is her problem??? It is beyond me why she writes such nonsense. Has she not read the official definition on msdn2.microsoft.com and in the 'Win32 SDK Reference Help' (WIN32.HLP)???
KERNEL32.SetFilePointer has two modes: If called with a 32-bit pointer to the high-order DWORD of a 64-bit file pointer, it uses a 64-bit distance to move and uses it correctly.
However, if the pointer to the high-order DWORD is NULL, KERNEL32.SetFilePointer uses a 32-bit distance to move.
This is how KERNEL32._llseek calls KERNEL32.SetFilePointer (if unpatched) - KERNEL32._llseek itself is just a stub to call KERNEL32.SetFilePointer!
This is very different from a (real = non-zero) pointer pointing to a high-order DWORD that is zero.

AFAIK, _llseek and SetFilePointer are flawed in all versions of Windows (Win9x, WinNT, Win2k and WinXP) and probably in Vista, too.
Interestingly, the official description on msdn2.microsoft.com of the SetFilePointer API (and its 32-bit call mechanism!) has changed several times over the years. One may speculate if this was done to disguise the flaw.

P.S.:
The code below is an example of a bug in USER.EXE.
Unfortunately, it is *not* the bug that causes the EXPLORER.EXE hang, but the type of bug I was alluding to in an earlier message.
This bug can cause mayhem when Resources are too low and KERNEL.LOCALALLOC fails.
This type of bug occurs more than once in USER.EXE, but also exists in GDI.EXE, which highlights that coding practices apparently were not at their best when Windows 95 was developed.
CODE
push  0x40
push  0x14
call  KERNEL.LOCALALLOC
mov   cx, ds <-- ds<>0
mov   [bp-4], ax
mov   [bp-2], ds
or    cx, ax <-- always <>0
jnz   ...
xor   ax, ax
jmp   ...
Author's comments...
QUOTE
This is a patched version of:
- SHELL32.DLL 5.50.4134.120 for Windows ME
- SHELL32.DLL 4.72.3812.648 for Windows 98/98 SP1/98 SE
that prevents the EXPLORER hang from occuring when a large number of files is deleted, moved etc.
As I wrote earlier, the problem arises because USER.EXE runs completely out of resources (=0%) right after such a file operation is completed.
However, this is not a bug in USER.EXE. The patch I am providing is not a fix in the true sense, it is more of a workaround and, as always, is provided 'as is' without warranties expressed or implied and with the note 'Use it at your own risk.'
The problem may still occur if a large number of files is deleted, moved etc, while USER resources are low, say below 30%.
I also believe this problem has nothing to do with what versions of SHLWAPI.DLL and/or BROWSEUI.DLL are installed.
It may occur much more frequently with the IE6 SP1 versions because they have much more code, which also takes longer to execute (and may no longer be "optimized" for a Win9x environment).

May I use this opportunity to address a common misconception about GDI and
USER resources in Win9x/ME: The OS and all applications, whether they are
16-bit or 32-bit versions, share the same GDI and USER resources. These
resources are managed by GDI.EXE and USER.EXE, respectively. One of the
two data segments of GDI.EXE is for GDI resources and one of the two data
segments of USER.EXE (plus two extra heaps) is for USER resources. GDI and
USER objects (in these data segments) are accessed through *16-bit-wide*
handles. 32-bit applications (and DLLs) just use zero-extended 32-bit
versions of the same handles. The data segments I am referring to are
32-bit segments with an *initial* size of approx. 2.1 MiByte each. The
16-bit resources are just the lowest 65536 bytes each in these two 32-bit
data segments. 16-bit-wide handles and the 16-bit resource limit cause the
real bottle neck in resources of Win9x. Increasing the default size of the
two 32-bit data segments (which would be possible using hidden system
settings for them) makes very, very little, if any difference.

Please post here your test results.
Thanks.

Enjoy.
Go to the top of the page
 
+Quote Post

Posts in this topic
- MDGx   98 (FE), 98 SP1, 98 SE + ME SHELL32.DLL fix   Oct 12 2006, 05:08 PM
- - LLXX   Have you actually tried making a directory with se...   Oct 12 2006, 08:33 PM
|- - erpdude8   QUOTE (LLXX @ Oct 12 2006, 09:33 PM) Have...   Oct 13 2006, 09:16 AM
||- - eidenk   QUOTE (erpdude8 @ Oct 13 2006, 09:16 AM) ...   Oct 13 2006, 09:41 AM
||- - LLXX   QUOTE (erpdude8 @ Oct 13 2006, 10:16 AM) ...   Oct 13 2006, 02:02 PM
|- - winxpi   Sorry but is it possible that some of you guys don...   Oct 14 2006, 03:50 AM
|- - erpdude8   QUOTE (winxpi @ Oct 14 2006, 04:50 AM) So...   Oct 16 2006, 03:07 PM
- - eidenk   I usually don't quote myself but here it goes ...   Oct 13 2006, 09:02 AM
- - erpdude8   QUOTE (MDGx @ Oct 12 2006, 06:08 PM) QUOT...   Oct 13 2006, 09:33 AM
- - PROBLEMCHYLD   Explorer hangs after deletion but it recovers with...   Oct 13 2006, 09:41 AM
- - Fredledingue   Does it affect file deletion/move done with any pr...   Oct 13 2006, 01:50 PM
- - MDGx   QUOTE (PROBLEMCHYLD @ Oct 13 2006, 09:41 ...   Oct 13 2006, 03:35 PM
- - PROBLEMCHYLD   Same results with Active Desktop enable/disable my...   Oct 13 2006, 04:56 PM
- - MDGx   QUOTE (winxpi @ Oct 14 2006, 02:50 AM)Sor...   Oct 17 2006, 04:57 AM
- - MDGx   Anonymous author of various 98/ME fixes [U891711, ...   Oct 23 2006, 10:37 AM
|- - PROBLEMCHYLD   QUOTE (MDGx @ Oct 23 2006, 11:37 AM) Anon...   Oct 23 2006, 10:54 AM
- - MDGx   UPDATED 11-7-2006 * Unofficial Windows 98/98 SP1/...   Nov 7 2006, 07:28 AM
|- - hp38guser   QUOTE (MDGx @ Nov 7 2006, 03:28 PM) UPDAT...   Nov 7 2006, 08:52 AM
- - eidenk   QUOTE (MDGx @ Oct 12 2006, 05:08 PM) Auth...   Nov 7 2006, 09:37 AM
- - Eck   MDGx, I've noticed that somehow 98SE2ME alway...   Nov 7 2006, 10:55 AM
- - the_guy   Can the installer please be modified to work on 95...   Nov 7 2006, 03:08 PM
- - noguru   Very nice Thanks for posting this. I used the IE...   Nov 7 2006, 05:20 PM
- - MDGx   QUOTE (hp38guser @ Nov 7 2006, 08:52 AM)H...   Nov 7 2006, 06:57 PM
|- - noguru   QUOTE (MDGx @ Nov 8 2006, 01:57 AM) QUOTE...   Nov 7 2006, 07:20 PM
|- - erpdude8   QUOTE (MDGx @ Nov 7 2006, 07:57 PM) Did y...   Nov 7 2006, 09:32 PM
- - MDGx   QUOTE (noguru @ Nov 7 2006, 07:20 PM)With...   Nov 7 2006, 07:47 PM
- - erpdude8   how about patching the WINME SHELL32.DLL v5.50.413...   Nov 7 2006, 09:21 PM
- - MDGx   QUOTE (erpdude8 @ Nov 7 2006, 09:21 PM)ho...   Nov 7 2006, 09:30 PM
- - PsycoUnc   -hmm, seems like a lot of effort to fix a prob whi...   Nov 11 2006, 08:06 AM
|- - myelin   QUOTE (PsycoUnc @ Nov 11 2006, 07:06 PM) ...   Nov 11 2006, 10:08 AM
|- - erpdude8   QUOTE (PsycoUnc @ Nov 11 2006, 09:06 AM) ...   Nov 13 2006, 11:01 AM
- - PROBLEMCHYLD   I just had a chance to test it and i have to say t...   Nov 11 2006, 06:39 PM
- - MDGx   Hi Guys, Your questions have been answered by ano...   Nov 13 2006, 12:44 AM
|- - Petr   QUOTE (MDGx @ Nov 13 2006, 07:44 AM) QUOT...   Nov 13 2006, 01:14 AM
||- - noguru   QUOTE (Petr @ Nov 13 2006, 08:14 AM) QUOT...   Nov 13 2006, 06:44 AM
||- - Petr   QUOTE (noguru @ Nov 13 2006, 01:44 PM) Ho...   Nov 13 2006, 08:32 AM
|- - eidenk   QUOTE (MDGx @ Nov 13 2006, 12:44 AM) Hi G...   Nov 13 2006, 01:14 PM
- - MDGx   Replies from anonymous author to comments originat...   Nov 14 2006, 12:35 PM
|- - PROBLEMCHYLD   QUOTE (MDGx @ Nov 14 2006, 01:35 PM) QUOT...   Nov 15 2006, 11:10 PM
|- - erpdude8   QUOTE (MDGx @ Nov 14 2006, 01:35 PM) Repl...   Nov 28 2006, 03:52 PM
- - hp38guser   I have converted the patch to Dutch. However I ran...   Nov 14 2006, 05:00 PM
|- - noguru   QUOTE (hp38guser @ Nov 15 2006, 12:00 AM)...   Nov 14 2006, 06:28 PM
- - MDGx   QUOTE (hp38guser @ Nov 14 2006, 05:00 PM)...   Nov 16 2006, 06:40 AM
- - Rick Chauvin   It was good to see others working on this Quantity...   Dec 16 2006, 02:42 PM
|- - whatever420   QUOTE (Rick Chauvin @ Dec 16 2006, 03:42 ...   Dec 16 2006, 04:06 PM
||- - noguru   QUOTE (whatever420 @ Dec 16 2006, 11:06 P...   Dec 16 2006, 04:23 PM
|- - Rick Chauvin   MDGx, erpdude8, etc ps to my yesterdays post... ...   Dec 17 2006, 11:13 AM
- - Max_04   Practically shell32 of this fix is impossible to l...   Dec 17 2006, 02:21 PM
|- - Petr   QUOTE (Max_04 @ Dec 17 2006, 09:21 PM) Pr...   Dec 17 2006, 03:23 PM
|- - Max_04   QUOTE (Petr @ Dec 17 2006, 10:23 PM) QUOT...   Dec 17 2006, 04:31 PM
- - Petr   OK, it is here: http://old.winpack.org/petr/SHELL3...   Dec 17 2006, 04:47 PM
|- - Max_04   QUOTE (Petr @ Dec 17 2006, 11:47 PM) OK, ...   Dec 18 2006, 01:46 PM
- - Rick Chauvin   Petr, with what you and Max_04 found, is that prob...   Dec 17 2006, 06:12 PM
- - Rick Chauvin   An update on my previous post is that since I firs...   Dec 17 2006, 08:12 PM
- - glocK_94   Thanks Petr for PE Explorer!!! It...   Dec 18 2006, 02:37 PM
- - MDGx   QUOTE (Rick Chauvin @ Dec 17 2006, 11:13 ...   Dec 20 2006, 07:06 PM
|- - Petr   QUOTE (MDGx @ Dec 21 2006, 02:06 AM) Anon...   Dec 21 2006, 01:20 AM
- - LLXX   How exactly is Anonymous "fixing" these ...   Dec 21 2006, 03:45 AM
- - MDGx   QUOTE (Petr @ Dec 21 2006, 01:20 AM)The s...   Dec 21 2006, 01:40 PM
- - Rick Chauvin   ..another update to my previous posts. I'm a ...   Dec 21 2006, 04:44 PM
|- - LLXX   QUOTE (Rick Chauvin @ Dec 21 2006, 05:44 ...   Dec 22 2006, 02:05 PM
|- - Rick Chauvin   QUOTE (LLXX @ Dec 22 2006, 03:05 PM) QUOT...   Dec 23 2006, 02:43 PM
|- - LLXX   QUOTE (Rick Chauvin @ Dec 23 2006, 03:43 ...   Dec 23 2006, 10:56 PM
- - ale5000   Can someone apply the fix to Italian Win ME shell3...   Dec 21 2006, 06:13 PM
|- - erpdude8   QUOTE (ale5000 @ Dec 21 2006, 07:13 PM) C...   Dec 22 2006, 09:47 AM
- - ale5000   Fixed Win ME english file is here: http://www.mdgx...   Dec 22 2006, 09:02 PM
- - Rick Chauvin   Yes the IE6 files certainly has the bug brought ou...   Dec 24 2006, 12:01 PM
- - MDGx   Rick Chauvin: 1. Please note that by installing 9...   Dec 31 2006, 01:10 PM
|- - Rick Chauvin   QUOTE (MDGx @ Dec 31 2006, 02:10 PM) Rick...   Dec 31 2006, 02:33 PM
- - erpdude8   I advised earlier in this forum NOT to use BROWSEU...   Jan 1 2007, 04:24 PM
|- - winxpi   QUOTE (erpdude8 @ Jan 1 2007, 04:24 PM) I...   Jan 1 2007, 05:18 PM
|- - Rick Chauvin   QUOTE (erpdude8 @ Jan 1 2007, 05:24 PM) I...   Jan 1 2007, 05:55 PM
|- - LLXX   QUOTE (erpdude8 @ Jan 1 2007, 04:24 PM) I...   Jan 1 2007, 05:58 PM
|- - erpdude8   QUOTE (LLXX @ Jan 1 2007, 06:58 PM) 4807 ...   Jan 7 2007, 09:09 PM
|- - LLXX   QUOTE (erpdude8 @ Jan 7 2007, 09:09 PM) Q...   Jan 8 2007, 12:36 AM
- - Rick Chauvin   [..edited..] I've found interestingly that f...   Jan 3 2007, 05:46 PM
- - LLXX   I have fixed the 2GB+ copy limitation at its root,...   Jan 4 2007, 06:51 PM
|- - Rick Chauvin   QUOTE (LLXX @ Jan 4 2007, 07:51 PM) I hav...   Jan 5 2007, 06:51 PM
|- - LLXX   QUOTE http://www.msfn.org/board/index.php?s=&.....   Jan 6 2007, 07:39 PM
- - MDGx   UPDATED · 1-9-2007 Please see the top of this top...   Jan 9 2007, 04:23 PM
- - bristols   Thanks MDGx and anonymous author for this latest v...   Jan 9 2007, 07:18 PM
- - MDGx   QUOTE (bristols @ Jan 9 2007, 06:18 PM)Th...   Jan 9 2007, 07:26 PM
- - bristols   Cheers MDGx for the explanation. Got the updated ...   Jan 9 2007, 07:37 PM
- - MDGx   QUOTE (bristols @ Jan 9 2007, 06:37 PM)Ch...   Jan 9 2007, 07:54 PM
- - Rick Chauvin   QUOTE (MDGx @ Oct 12 2006, 06:08 PM) [......   Jan 10 2007, 08:54 PM
|- - noguru   QUOTE (Rick Chauvin @ Jan 11 2007, 03:54 ...   Jan 11 2007, 11:48 AM
||- - Rick Chauvin   QUOTE (noguru @ Jan 11 2007, 12:48 PM) MD...   Jan 11 2007, 12:44 PM
|- - whatever420   QUOTE (Rick Chauvin @ Jan 10 2007, 09:54 ...   Jan 11 2007, 11:12 PM
|- - Rick Chauvin   QUOTE (whatever420 @ Jan 12 2007, 12:12 A...   Jan 12 2007, 11:59 AM
- - hp38guser   Many thanks to Anonymous author! This was the ...   Jan 11 2007, 04:15 PM
- - LLXX   That speed decrease may simple be due to more inef...   Jan 12 2007, 04:19 AM
|- - Rick Chauvin   QUOTE (LLXX @ Jan 12 2007, 05:19 AM) That...   Jan 12 2007, 12:04 PM
|- - erpdude8   QUOTE (Rick Chauvin @ Jan 12 2007, 01:04 ...   Jan 12 2007, 06:35 PM
- - Rick Chauvin   Technically I used that term Win9x and 9x out of t...   Jan 13 2007, 08:55 AM
- - glocK_94   Thanks a lot for the update! : I translated t...   Jan 14 2007, 09:53 AM
- - MDGx   Rick Chauvin: Anonymous author replied to your co...   Jan 15 2007, 10:49 AM
- - bristols   I've come across a potential problem with this...   Jan 15 2007, 10:52 AM
- - bristols   I've been testing the WebDAV problem I mention...   Jan 15 2007, 12:34 PM
- - MDGx   QUOTE (bristols @ Jan 15 2007, 11:34 AM)I...   Jan 15 2007, 02:21 PM
- - bristols   Thanks MDGx.   Jan 16 2007, 09:20 AM
2 Pages V   1 2 >


Google Frontpage Forums Unattended CD/DVD Guide

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 




Lo-Fi Version Time is now: 22nd November 2009 - 10:29 AM
All trademarks mentioned on this page are the property of their respective owners
MSFN is not affiliated with Microsoft
Copyright © 2001-2009 msfn.org
Privacy Policy