Jump to content

Goodmaneuver

Gold Sponsor
  • Posts

    1,008
  • Joined

  • Last visited

  • Days Won

    2
  • Donations

    0.00 USD 
  • Country

    Australia

Everything posted by Goodmaneuver

  1. 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.
  2. 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.
  3. 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
  4. 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.
  5. DW errors have returned after updating a module its seems but it is not the modules fault. I am not ready to comment further.
  6. 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
  7. 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.
  8. 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
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. Your ImportPatcher adds the .dll as a default then or the name had the same length and the the original .dll is still there. The OS does not add a suffix so this comment I do not understand. The module's name must equal the module it is calling. Just map the KernelEx folder as a known environment and DW will work. That is all that is required. Add KernelEx folder path to AutoExec.bat line SET PATH=
  20. That is incorrect. Are we talking the same thing here. If you alter the import sting of a module to point to a different module then the pointing needs to be accurate, it needs the full title.
  21. System Knowndlls works for any mapped directory and for modules not in a mapped directory but are registered with a InprocServer32 Key and Data pointing to the module. That does not make sensibility and your 20i core upload contains such redirects that cannot be used. It also defies all other redirects we have used in KnownDls of which there are many. You did not answer my questions about LZ32 being used in Kexbases before. https://msfn.org/board/topic/157173-kext-diy-kernelex-extensions/?do=findComment&comment=1202395. Lz32 is loaded in my OS at runtime. Everyone OS is going to be different with different third party applications. This is inevitable. The use of [GDI32] in Kstubs does not work I just gave proof that. There seems a module total number of active - in RAM API functions limit that can be used in KernelEx and or the OS. I am not ready to write it up explaining it just yet but soon. That is incorrect it does not work. The suffix has to be included. Try it and then use DW to see if it worked.
  22. It is OK to shorten the name Kernel32 and have KnownDlls have Knl32 pointing to kernel32 and use Kernel32 as module for redirection of functions in Kstubs but it is not necessarily OK to use the same technique for other modules. There can be only one instance of Kernel32, it can not be relocated. For example if Kernel32 is pointed to Knl32 in KnownDlls then Ntdll will load Kernel32 but then the registry tries to load Knl32 and that is as far as the OS will progress. If a module's import string Ntdll is replaced with Rad32 and KnownDlls redirect Rad32 to Radmin32, Radmin32 as [RADMIN32] module name in Kstubs gives trouble. I get a hard fault in explorer. If looking at Radmin32 it in DW it feeds back to itself from Rlocal32. The solution is not to redirect RAD32 to RADMIN32.DLL in system KnownDlls. There will be a separate instance in memory of RAD32 and RADMIN32. It is probably timed better with this arrangement. Have [RAD32] name definition in Kstub as [RADMIN32] name definition does not work. Ktree will show RAD32: in the "All extensions by, DLL" section.
  23. I have the DX modules working in BlackWingCat's Windows2000-KB935839-v30e-x86-extendedkernel. Kstub824 does not work linking to GDI32 so here's what to do. 1) Edit the Dwrite module import strings. before after GetFontInfo = GetTextCharset GetFontRealizationInfo = RealizePalette I would have like to use GetTextCharsetInfo for GetFontInfo but it does not fit. Perhaps Jumper could add it to their Kexbase. 2) Add dll fowarding Kstub entries for D3D10_1.dll [D3D10_1.DLL] D3D10CompileEffectFromMemory=>D3D10: D3D10CompileShader=>D3D10: D3D10CreateBlob=>D3D10: D3D10CreateEffectFromMemory=>D3D10: D3D10CreateEffectPoolFromMemory=>D3D10: D3D10CreateStateBlock=>D3D10: D3D10DisassembleShader=>D3D10: D3D10GetGeometryShaderProfile=>D3D10: D3D10GetInputAndOutputSignatureBlob=>D3D10: D3D10GetInputSignatureBlob=>D3D10: D3D10GetOutputSignatureBlob=>D3D10: D3D10GetPixelShaderProfile=>D3D10: D3D10GetShaderDebugInfo=>D3D10: D3D10GetVertexShaderProfile=>D3D10: D3D10ReflectShader=>D3D10: D3D10StateBlockMaskDifference=>D3D10: D3D10StateBlockMaskDisableAll=>D3D10: D3D10StateBlockMaskDisableCapture=>D3D10: D3D10StateBlockMaskEnableAll=>D3D10: D3D10StateBlockMaskEnableCapture=>D3D10: D3D10StateBlockMaskGetSetting=>D3D10: D3D10StateBlockMaskIntersect=>D3D10: D3D10StateBlockMaskUnion=>D3D10: 3) Add these Kernel32 entries in Kstub. [KERNEL32.DLL] GetLocaleInfoEx=>EXKERNEL: GetSystemDefaultLocaleName=>KERNEL32:GetGeoInfoW IsValidLocaleName=>EXKERNEL: LCIDToLocaleName=>EXKERNEL: I think that GetGeoInfoW returns AU instead of Australia (for example) for GetSystemDefaultLocaleName. (not sure). It worked for SumatraPDF 3.2 Here is it working viewing an eBook.
  24. I got Dibya's ExKernel.dll to work by making Ntdll point to Kernel32. 1) Create a system KnownDlls value to shorten Kernel32's name like KNL32 and make it have data KERNEL32.DLL so when ever Knl32 is called the module gets Kernel32. 2) Edit ExKernel: Replace NTDLL.dll with KNL32.dll. Still editing ExKernel rename these imported strings. before after RtlEnterCriticalSection = EnterCriticalSection RtlLeaveCritcalSection = LeaveCriticalSection RtlInitializeCriticalSection = InitializeCriticalSection RtlTryEnterCriticalSection = TryEnterCriticalSection NtAllocateVirtualMemory = HeapAlloc RtlRaiseException = RaiseException RtlInitializeCriticalSectionAndSpinCount = InitializeCriticalSectionAndSpinCount 3) Create Kstub entries in [KERNEL32] [KERNEL32.DLL] K32_NtStatusToDosError=>KERNEL32:K32_RtlNtStatusToDosError NtCreateFile=>KERNEL32:K32_NtCreateFile NtFsControlFile=>KERNEL32:DeviceIoControl NtPowerInformation=>POWRPROF:CallNtPowerInformation NtQueryInformationFile=>PSAPI:GetModuleInformation NtQueryInformationThread=>KERNEL32:GetThreadPriority Here it is working
  25. I am not sure that the first paragraph last post is correct about IE6 and I may have to delete it. There is an issue but it could be that 4.5.2 needs to be installed after IE6. This is what my MSFN shortcut seems to indicate.
×
×
  • Create New...