Content Type
Profiles
Forums
Events
Everything posted by Goodmaneuver
-
DW has trouble hooking advapi32 and GDI32 on DDR3/4 systems.
Goodmaneuver replied to Goodmaneuver's topic in Windows 9x/ME
I am please to say that I have fixed most of the issues discussed here. The GDI32 CRC error and ADVAPI32 export table errors with DW have been fixed with the Kstub entry for [ADVAPI32.DLL] QueryServiceConfig2W=>RADMIN32:QueryServiceConfigW I did not want to send QueryServiceConfigW API back to ADVAPI32 just in case both QueryServiceConfig2W and QueryServiceConfigW were called at once. The 100% Commit Charge still exists in Process explorer. The testing was done on ASUS MSA78LE. -
I have looked into it several years ago and it is when SHLWAPI goes to load URLMON then there is a problem. There is little to no benefit from running IE7 over IE6. JSCRIPT can be updated as shown in the IE6 upload. MSXML3 also can be updated to recent version which is not shown in the upload. IE6 modules are an integral part of the OS and if a second version is to be run alongside then it could cause severe problems. IE7 would need to be safe mode compatible. I was foolish to mention 2454 GDI32 as it would not run alongside ME's version even though it loads. The 2454 UXTHEME has only one function missing in ME's GDI32 anyway and it is accounted for by KEX. I am running IE6 sp3 executable as shown in the upload, but it does not make any difference. Trust BWC's Windows2000-KB935839-v30e-ex86-extendedkernel 2019 updates for IE6 as I have done. In the proposed CORE.ini I sent in, the Verify Version setting needs the other two 2K missing APIs namely GDI32.GetCharABCWidthsI=kexbasen.0 and probably NTDLL.LdrUnloadDll=kexbases.0. When registering a module with missing GetCharABCWidthsI it knocked out KernelEx completely so that is why if Verify Version is to be used more widespread the two BASE.names mentioned should be included. Once adding GetCharABCWidthsI the module registered no problems. I have changed CORE_8.zip to have the updated BASE.names as mentioned above. I think @Jumper you thought that I was talking web browser when mentioning browser but no I was referring to file browser. The reference is when you go to open a file from within the KMPlayer. This is like using Browse from Run from the Start button, but it will be themed to match that of the player and a normal window.
-
Yes and no on that. You see as well as RAD32 I also have these module redirects in system KnownDLLs to RADMIN32. API-MS-WIN-CORE-RTLSUPPORT-L1-2-0 API-MS-WIN-DOWNLEVEL-ADVAPI32-L1-1-0 API-MS-WIN-SECURITY-LSALOOKUP-L2-1-0 API-MS-WIN-SECURITY-LSALOOKUP-L2-1-1 API-MS-WIN-SECURITY-LSAPOLICY-L1-1-0 API-MS-WIN-SERVICE-MANAGEMENT-L1-1-0 API-MS-WIN-SERVICE-MANAGEMENT-L2-1-0 API-MS-WIN-SERVICE-WINSVC-L1-1-0 API-MS-WIN-SERVICE-WINSVC-L1-2-0 BROWCLI NETAPI NETRAP SAMCLI SAMLIB SRVCLI WKSCLI Redirecting to a module named RADMIN32 with Kstubs does not work for me. Obviously if those KnownDlls above are missing an API for a particular module then the MEDAL option is to be applied. Unicows; depending on what you have in mind; if the first part of the CTRAS API 's names are ignored then CTRAS vs 0.2.0.3 is an alternative. For example GetCharABCWidthsI=>CTRAS:WAPI_CTGetCharABCWidthsI. CTRAS was distributed with MSreader. There is no trouble though with UNICOWS or Kexbasen showing up for me. Folder path mapping is a problem showing up with JAVA and it occurred a long time ago in KEX but not 4.5.2. It would help if I find out just when it occurred. It occurs win Windows 7 32 bit and it makes a folder path in Users\*login name*\ folder. I tend to think that the NT folder path conversion APIs should not be stubbed. Yes but KMPlayer modifies the skin with a variable color control. Their browser uses Windows system but changes color scheme to dark. Even an error message will be dark theming. Their alpha transparency does not work though. A renaming of GDI32 from 5.1.2454 will load and the 2 theme entries of UXTHEME 5.1.2454 namely PaintMenuBar and CalcMenuBar could be stubbed. I am using modern ROS UXTHEME feeding ROS 2011 era as base and this has the first use of Kstub825 as an ordinal redirect. UXTHEME is loaded with Mozilla browser, Internet Explorer and therefore Explorer plus KMP, PotPlayer ecectera WMP9 but not 7. I have incorporated UXTHEME from 5.1.2223. The HTML upload will show what modules in use that load with IE6. An insight into what is happening at the moment. horizontal.htm
-
I have said a few things about RADMIN32 and Kstub redirects before; some things now can be disregarded. What works 100% is if you directly link to RADMIN32 using hex editor when there are no missing imported APIs. If there are some missing RADMIN32 export entries, then you use a renamed RADMIN32, say we use MEDAL, and use KexStubs to redirect the missing APIs to MEDAL. These redirections seem to have no restriction on what client redirect module you choose. Do not use system redirects in registry KnownDlls to MEDAL. I have RAD32 redirected in system KnownDlls to RADMIN32. This is so that shorter named APIs can be replaced with RAD32 when there are no missing APIs. The registry then redirects RAD32 to RADMIN32. There is no need to worry about a solution for ResolveDelayLoadedAPI; ResolveDelayLoadedAPI=>KERNEL32:BeginUpdateResourceW seems to work.
-
Win 98se on an emachines etower 633ids - Part 2
Goodmaneuver replied to justacruzr2's topic in Windows 9x/ME
You are wright it does not download any more. I am sorry for not trying to download it again; I downloaded it yesterday. -
It is probably best to use ROS WindowsCodecs of 2011 era as it loads better without any missing imported APIs from OLE32 and is equivalent to Vista SP1 6001. 2017 6003 vs would not register. It makes a difference to KMPlayer 4.06's preferences menu where the different KMP themes change appearances.
-
Win 98se on an emachines etower 633ids - Part 2
Goodmaneuver replied to justacruzr2's topic in Windows 9x/ME
I would suggest it be accurate? That should work then but VXDs are not necessarily compatible between the Win98 and WinME I have found. -
Win 98se on an emachines etower 633ids - Part 2
Goodmaneuver replied to justacruzr2's topic in Windows 9x/ME
It could be listed different in servers of different countries. Also you need to click on Download Now button where an acknowledgment of not a robot popup will need ticking. If still a problem then try a search for Fastfame A2.71_ALC201A Driver Download (Official). The use of a VXD driver though will need to be a manual install not an auto install, directing install to the Win9x folder only. -
KernelEx 2022 (Kex22) Test Versions (4.22.26.2)
Goodmaneuver replied to jumper's topic in Windows 9x Member Projects
I like K22_26pre1.7 KernelEx.dll better than K22_26pre2.7. The inclusion of the error message is a good improvement. When registering a module and there is a missing API then the pre1.7 KernelEX.dll message will display the missing API name. This is an additional message to that of the RegSvr32 message of 'a device attached to the system is not functioning' which still will appear after acknowledgement of the KEX message. Also as an example, I was wondering why DNSAPI.dll of later versions above Whistler 5.1.2411 would not work. 5.1.2428 added the Tracing functions. K22_26pre1.7 KernelEX.dll gave an error that said that TraceEvent was missing. KernelEX.dll K22_26pre1.7 thus proved KEX not to be working at logon for DNSAPI.dll. DNSAPI.dll needs to be fully compatible for WinME and is essential for the Wireless software for Netgear 311T and 311v3 interface cards. My assumption of a timing load problem will not show up as a KEX error though and in such cases Regall.exe which I got from ShowShifter 2.5 can stall and not terminate but using KernelEX.dll of K22_1.7 it terminated. If a module is not loading as previous sentence and no error is apparent then moving the module into the Windows directory from the System directory will often make it work. Some more APIs to consider to add the the KEX base. RtlIpv6StringToAddressExA (needed for earlier modules where both RtlIpv6StringToAddressExA and RtlIpv6StringToAddressExW are importing from NTDLL) CM_Get_DevNode_Registry_PropertyA (The last missing API of CFGMGR32 for SETUPAPI) EDIT:-I found out what was stopping some modules loading in the system folder. It was a MUI file and it was an earlier version than the module in question. Some parent modules were effected. Registering tests if module loads etcetera. I just deleted the MUI file to fix the problem. -
Win 98se on an emachines etower 633ids - Part 2
Goodmaneuver replied to justacruzr2's topic in Windows 9x/ME
I would try installing this driver but before you do delete the ALCXWMD.sys file located in the System32\Drivers folder if it exists. There is also an option to install a Win9x VXD driver. https://www.driverguide.com/driver/detail.php?driverid=142611&si=5f3d1e71687508bc94c549cffb553ac6 -
In the Core_8.zip is Core.ini and in Core.ini I had made default=1. This did not make default mode = Base. Default mode is still DCFG1. So making default = 1 did not do as I thought it would and Base (Verify Version) needs to be selected to enable that mode and make SumatraPDF work. The "default=" option in CORE.ini only makes the Sheet open on that selection. That is all it does.
-
DW has trouble hooking advapi32 and GDI32 on DDR3/4 systems.
Goodmaneuver replied to Goodmaneuver's topic in Windows 9x/ME
DW errors have returned after updating a module its seems but it is not the modules fault. I am not ready to comment further. -
I have experimented before and taking out certain (most of them) DCFG1 names is not a good idea. It would corrupt the system. Even taking out SHELL32.SHParseDisplayName=none had consequences. WMP10 WMP.dll if not using XP mode took on a silvery skin colour like WMP11. The blue skin returns once making WMP.dll XP mode. Inheritance in Core.ini takes on the contents as well so there is no need to include it in any inherited modes later on down the list. Ktree does no necessarily pick up on Modes that do not have Contents though and therefore will need to be altered or just be aware of that fact. Adding Content down lower in Core.ini may have made Ktree list all modes but alters KEX functioning. You would think that Microsoft would know what was NT SP4 and what was NT SP5. I have tested it also on several games as well and they do not install complaining that NT40 mode is not SP5. Here is a proposal and I am confident that the new custom mode of BASE can be taken on as the Default Mode if desired. Also BASE settings will not need altering prior to rebooting. Not anymore as I have included GDI32.GetCharABCWidthsI=kexbasen.0 This is important as explained later. Watch out though I have added 4 x Kstubs so make sure that is configured/corrected before rebooting. I do not think that all OS version Modes included are needed though and some could be trimmed out. Core.ini proposal is in the zip. CORE_8.zip
-
DW has trouble hooking advapi32 and GDI32 on DDR3/4 systems.
Goodmaneuver replied to Goodmaneuver's topic in Windows 9x/ME
I thought I was purchasing the RAM locally but is was overseas and just arrived a few days ago. The funny thing is that I already had ECC unbuffered RAM installed. The good part is the newly purchased RAM works. There was no change in the Process Explorer commit charge reading. The DW issue was marginal in the first place on the DDR3 machine and seems to be non-reoccurring once I had fixed several registry errors along with addressing some well used system files so that they are referencing internally %WinDir%\system instead of Windows\System32 etcetera. I have also worked on KernelEx and it now has less errors in my Kstubs (no == or=>=> or duplications). Only a couple of redirects untested. I am thinking my Kstub errors may have been a main contributor to the DW issue. GDI32 now has correct CRC. The registry errors were checked using RegDllView and most directories that were wrong were corrected. The only issue without trying to run any KernelEx dependent programs was that on opening the root directory of C: I got the scripting error in Sysroot.htt. -
Take note I said this. The original naming must be written into 4.5.2. If the original mode/profile names are changed then the functioning of KEX is altered. The new BASE core names are only good if I do not alter my 4.5.2 settings. If I do then system will be corrupted and will not do as it was doing prior to changing mode settings to new names. It does not work properly upgrading to new names. Please do not change the original naming. To get SumatraPDF to display eBooks all that was required was to add a mode name of SPDF for example and I placed it below MIN; 6=SPDF [SPDF] inherit=BASE contents=std,kexbasen,kexbases desc=eBook Paser [SPDF.names] KERNEL32.VerSetConditionMask=kexbases.0 KERNEL32.VerifyVersionInfoA=kexbases.0 KERNEL32.VerifyVersionInfoW=kexbases.0
-
SumatraPDF 3.2 needs Legacy Base Enhancements mode selection where VerifyVersionInfoW is enabled in later KEX otherwise if selecting another 2K setting prevents eBook's from displaying. The menu only displays with 2K settings and it took me a while to figure this out. So DCFG1 is special.
-
That part is true. I am not lying about what I said that my build recognizes case changes in file names lower case being the default but I had uppercase and lower case mix, Kstub01 to be precise. I do not want to be chatted about mentioning other OSes but I have a directory named Videos on the network drive and if you write to that drive via those OSes then it renames the videos folder "videos". When I access the network drive via WinME afterwards I then have 2 folders named "Videos" and "videos" both contain the same thing which means I have 2 names for the same folder showing up in WinME on the Android based network drive. Your Kstub824 needed to have the same characters in the INI as the DLL including case. Can this statement be explained further, Please explain definitions and profiles and how they can be accessed in Core.ini.
-
SOLVED! ExKernel was not loading because Kstubs were not loading and there were several reasons. My build recognizes a file name change between uppercase and lowercase names in explorer. There is no need to rename the file with a different character at first. Uppercase and Lowercase is recognized straight away as a different name. I had to make the Kstub.ini name equal the Kstub.dll name exactly matching the case of which I did have but in WinMerge if a slow double chick occurs it makes the name comparison equaling the LHS name being case sensitive and that how the change came into being. The other reason in another build was that I had not sorted alphabetical some of Kstub entries and there were several duplicates and quadruplicates of the same API function.
-
I had an instance of ==> in Kstubs instead of just => and it made a difference but there is still a limit and because it involves a module Jumper has shown discretion about, I think I might have to write about it in a separate topic.
-
Note If using Dibya's Exkernel.dll from my instructions, CancelSynchronousIo does not work so do not make a Kstub entry for this. It does work! Machine struggling to load ExKernel at times now I think. Reason to be investigated. Some reasons may be too many files in system directory, registry changes or hardware. CancelSynchronousIo=>Kernel32:CancelIo can be used too. It should not be a problem unless both CancelIo and CancelSynchronousIo are called at the same time and I do not know what happens then as I have not tested.
-
There are several of us using Windowscodecs.dll of which I can speak of what I use. RtlSetBits came into being in Windowscodecs about LH5308 so any Windowscodecs up to LH5270 will work. The thing is that it was continually evolving and final versions may be required for some software. A solution is to use ReactOS version of the module of which SumatraPDF requires. ROS 4.2 year 2017 is what I am using and it is equivalent to Vista service pack3.
-
In response to previous post. The executables that do not finish profiling like MPC-HC; DW shows that KernelEx stops working because of the Fls and Decode and Encode Pointer function calls are not dealt with. (My fault here as it only occurs on one build and normally not the case). I would say that DW in this case of profiling MPC-HC has pushed the OS to its limit some how. MPC-HC loads many ACM modules.
-
If KernelEx redirects or has stubbed functions only then the original DLL for those functions will not be loaded. If the DLL cannot be loaded and is not an explicit then it will not be included in DW's profile log. DW indeed does not hook some modules with NT40 or above but having DW set to NT or higher mode does not stop the executable loading. The NT40 or above errors are found to be the same when profiling different executables. Here are 2 such errors. Error writing a breakpoint at the entrypoint return of "c:\me\system\WOW32.DLL". Entrypoint cannot be hooked. Invalid access to memory location (998). Loaded "c:\me\system\WOW32.DLL" at address 0xBFDC0000 by thread 1. Cannot hook module. Note well that LegacyBaseEnhancements is OK for DW also. DW indicating the red dependency function is DW doing its job correctly. It is once profiling that KernelEx then is operational and if all is OK there will be no red function call failures. Implicit API function calls and delay loaded calls are displayed just by dragging and dropping the module into DW. https://www.dependencywalker.com/help/html/dependency_types.htm I find dependency Walker an extraordinary helpful program. For instance when profiling PotPlayer firstly there are no red instances. This is testimony for Jumpers KernelEx; a job well done. There are no failed explicit functions with Desktopdll.dll but if I disable DesktopHook.dll then DW stalls when it goes to load Desktophook.dll. If I make Desktopdll Kexbasen then PotPlayer finishes profiling but Desktopdll is not loaded. If I then make it Kexbases then Desktopdll loads but there was an exception in Kernel32. The next file to show in the DW log was Urlmon after Desktopdll and I had this one disabled. I then made Urlmon Kexbases and there was no exception created in Kernel32 and Urlmon did not show after Desktopdll in DW log.
-
Tell me what the issues are? Only use DW in BASE mode do not profile in NT or above modes. Leave the file to be profiled in what ever mode it needs. If a dynamic link library which has register server function registers it means that it loads into RAM prior to registering. I test with KernelEx disabled first and if it works then I usually leave the DLL in follower mode. There are the odd ones which need KernelEx disabled so testing again in follower mode will be necessary. Otherwise I step up the mode setting until it registers. Some will fail to register.
-
If you do not want to map the KernelEx folder then place Depends.EXE, Depends.DLL and CHM into the KernelEx folder and operate DW from there.