Everything posted by jumper
-
ImportPatcher.41 - Find and fix dependency problems
> Win XP SP3 kernel32.dll v. 5.1.2600.6293 Link is to a patcher. No Kernel32.dll file.
-
ImportPatcher.41 - Find and fix dependency problems
Searching the 279 files in my C:\WINDOWS\KernelEx folder (and its 5 subfolders!), I found 3 versions of Kernel32.dll that contained the text ".reloc" + bwc13i .... 699KB ... 5.00.2195.7152 + bwc20a .... 703KB ... 5.00.2195.7173 + ReactOS .. 1428KB ... 42.3.14 I suggest trying one of the blackwingcat versions.
-
Kext: DIY KernelEx extensions
> Btw schwups has posted the Win ME iphlpapi functions before I had the time to do it myself, thanks schwups. Ditto! I was able to download ver. 4.90.3001.2 from MDGx per this SP2RC3 discussion: > I [MDGx] suggest using newest iphlpapi.dll [build 4.90.3001.2] supported by 98/98SE/ME I haven't tested it yet, but if 4.90.3001.2 is good on SE, Iphlpapi5 will require it instead of trying to wrap any of multiple originals.
-
KernelEx v4.5.2 flash 11.6.602.168
> This file-substitution did not work. I got some sort of error message in FF2 when trying to bring up the Adobe flash-version/test page. > I thought that replacing the DLL file was all that was needed. No? In the past, Yes. Make sure the new file is named just "NPSWF32.dll" without the version in the name. What was the text of the error message?
-
Looking for a solution that I'm not sure exists
The original FLAC files without metadata already exist, so it's just a matter of generating files or streams that also contain the metadata without duplicating the original data. IIRC, VideoLan and VirtualDub both have a video/audio server mode that can create streams on-the-fly from separate audio and metadata files. And Quicktime / MP4 file formats support metadata physically present in the file along with audio tracks that are referenced from another file (the original FLAC file in our case here). Perhaps there are also other ASX or playlist formats that would suffice.
-
Kext: DIY KernelEx extensions
> µTorrent 3.0.0 build 26473 - According to Filehippo/horse is it no beta. According to Oldapps.com, uTorrent 3.0.1 is Build 25815. You might also want to try these last Supported Versions of uTorrent for Windows Systems: Windows ME . . . uTorrent 3.0 Build 25460 Windows 2000 . . uTorrent 3.0 Build 25824
-
Kext: DIY KernelEx extensions
Ktree reads the KernelEx install folder from the registry, reads Core.ini to get the [DCFG1] content= DLL list, then loads each DLL from within the install folder and calls get_api_table() on it. Any errors are reported in the Core.ini section (too late to check now!). Assuming you had KernelEx installed, Core.ini was not open in some app that read-locks it, and you weren't booted with an experimental Core.ini, I don't see why kexbases (DecodePointer, etc.) wouldn't be included in the report. Renaming the DCFG1 section to BASE like I tried several days ago breaks that part of Ktree; I had to hex a special version of Ktree to get it to work. Also, modifying the contents= line itself could interfere if there was a typo on the names of standard files. > "VerifyVersionInfoA" even shows multiple times KernelEx provides a custom version for each profile / OS.
-
ImportPatcher.41 - Find and fix dependency problems
> Ah, I see. And if I'm interpreting this correctly, the "ntdll.RtlDeleteCriticalSection" and similar functions seen in 'k2rnel32.dll' (W2K 'kernel32.dll') are export forwarder thingies. I think so. > So what we actually need (ignoring the other issues here) is an Export Patcher tool? Today (Feb 19) is the one-year anniversary a short-lived Export Patcher project according to my folder creation date. I dropped it in favor of fwd: DLL forwarder which came out about a week later. > As regards not being able to have two versions of 'kernel32.dll' loaded at the same time, does not renaming the W2K version (theoretically) make this possible? The two versions both want to be loaded in overlapping address spaces, so one of them must be relocated. The 9x version is not relocatable, I don't think the NT version is either (look for a .reloc section with Quick View). The ReactOS version is, however (and also doesn't overlap)!
-
Kext: DIY KernelEx extensions
According to Depends, 98SE contain the following 86 exports in Iphlpapi.dll: What's the count and list for the ME version? I should be able to make the wrapper compatible with both.
-
Kext: DIY KernelEx extensions
Supplement:The ImportPatcher generats this ini µTorren#3.0.0 26473.zip file of µTorrent 3.0 exe. It lists many missing functions, but in comparison to the generated file of version 2.0.4 (stable with KernelEX) there are only seven functions more. The difference: [ntdll.dll] NtStopProfile= RtlUnicodeToOemN= _chkstk= RtlAdjustPrivilege= NtSetIntervalProfile= NtStartProfile= NtSetInformationProcess= [Patches needed] PSAPI.DLL=Functions, Unbind This appears to be a debug build (_chkstk and profiling apis). Perhaps it's a beta???
-
KernelEx 4.5.2 Silent/Unattended Install?
A quick peek into KernelEx.nsi (in the 4.5.2 source package) reveals that it contains no support for silent installs. [ref. 4.12 Silent Installers/Uninstallersk Try using a macro recorder.
-
Looking for a solution that I'm not sure exists
Quicktime allows you to create a small, new media file with metadata and just a reference to the music track.
-
Kext: DIY KernelEx extensions
According to MSDN - RegOpenUserClassesRoot function (Windows), these definitions should all work well: [Advapi32.dll] RegOpenUserClassesRoot=r120s4 RegOpenUserClassesRoot=t4 RegOpenUserClassesRoot=o4 The 'e0' isn't needed as the LastError isn't set. "r120s4" would provide the best desciption of the failure.
-
Kext: DIY KernelEx extensions
> To run the setup I added [Advapi32.dll] RegOpenUserClassesRoot=o4e0 - (4 is # of WINAPI parameters, e0 is error success). It works, but I'm not sure with the value codes. "o" by hit or miss. Check the log. If RegOpenUserClassesRoot is not there, then the definition doesn't matter; it is only needed to satistfy the loader. If it is being called, a better definition or implementatation might improve the quality of the install and help the app run better.
-
Kext: DIY KernelEx extensions
> ...SeaMonkey 2.0.14 crashes immediately when I try to print ... What was in the log file? Perhaps one of the new ActCtx definitions? What modes are you using (with old and new core.ini)? Please try to step through the few core.ini differences and debug this for us.
-
Kext: DIY KernelEx extensions
A while back I assembled a set of stub definitions to duplicate the KernelEx functions that are pure stubs (so no lost functionality). I'll package them with a special version of Kstub822 so we can log what functions are being used and might need better definitions or actual implementations.
-
Kext: DIY KernelEx extensions
After much definition testing, I was unable to find one for FindActCtxSectionStringW that would appease Msvcrt90. The ActCtx definitions were introduced way back in post #10 and schwups first reported problems with it in post #15. Joe traced the main problem to FindActCtxSectionStringW in post #25. Clearly including FindActCtxSectionStringW was a big mistake (mine!), as no app is known to need it. Removing FindActCtxSectionStringW, retaining the other new definitions, and adding similar new definitions for the rest of the (non-Find*) ActCtx clan, we get: [Kernel32.dll] ActivateActCtx=o2e0 AddRefActCtx=z1 CreateActCtxA=p1e0 CreateActCtxW=p1e0 DeactivateActCtx=o2e0 GetCurrentActCtx=f1e ; needs code for success IsolationAwareCleanup=z0 ; for ActCtx/manifest QueryActCtxSettingsW=o7e0 QueryActCtxW=o7e0 ReleaseActCtx=z1 ZombifyActCtx=o1e0 Using these "Method 2" definitions, we shouldn't need method 4 (or 3). So here is a Core.ini that reverts nearly back to the original: The only differences are: [ApiConfigurations] default=0 [DCFG1] contents=Kstub822,std,kexbases,kexbasen desc=Base enhancements [DCFG1.names.98] ComDlg32.PrintDlgExA=Kstub822 ComDlg32.PrintDlgExW=Kstub822 [DCFG1.names.Me] ComDlg32.PrintDlgExA=Kstub822 ComDlg32.PrintDlgExW=Kstub822 I'm hoping to assemble this week a release package for Kexstubs that will be easy to install. I'll be reviewing Kstub822.ini and preparing a stubs.ini that has logging disabled and any last definitions that should go in. All suggestions are very welcome!
-
Pdf printer without ghostscript
I think this was discussed in Printing with KernelEx 4.5.1. Try seaching the forums for "print to pdf". It may now be possible to run dopdf or tinypdf in 9x with the help of KernelEx and Kexstubs.
-
Windows Setup Time app crash
> The MSVCR100.DLL file is linked to missing export Kernal32.dll:InterlockedPopEntrySList On my system, this api is provided via Kexstubs. Before Kexstubs, it was sometimes possible to just use KnownDLLs to forward MSVCR100 to MSVCR90 (try searching the forums for MSVCR100.dll).
-
Kext: DIY KernelEx extensions
Shame on µTorrent 3.0. NTAllocateVirtualMemory is a Windows Native System Services routine; apps should be calling VirtualAlloc instead. You can try using some of the other return codes as documented at MSDN, but I think this function will require a full Wine implementation.
-
ImportPatcher.41 - Find and fix dependency problems
In W2K and later, many NTDLL.DLL apis are made available in Kernel32.dll via export forwarders. I know exactly how export forwards are implemented, but it's not a small change for Import Patcher to support them. IP is architectured to patch Imports, not Exports. "It's impossible. But doable." KernelEx 4.52 runs as an MPR service, thus it loads after MPR. I assume this is why you're trying to patch MPR instead of using Kexstubs. NTDLL.DLL interfaces directly to drivers and the OS, so it really is an impossible substitution. Kernel32.dll is also extremely OS-centric and off-limits for substitution. Also Kernel32.dll is non-relocatable, so two versions can't be loaded at the same time. The best solution I see is to rebuild the Wine or ReactOS sources for MPR.dll and static link the necessary functions from the other librarys.
-
Kext: DIY KernelEx extensions
Good news: I'm posting this from K-Meleon 1.6.0 Beta2 using new Method 2 definitions. Obstacles: 1. FindActCtxSectionStringW To avoid the R6034 error, previously this function needed to be undefined. I found that declaring success also works: FindActCtxSectionStringW=o5e0 2. CreateActCtxW Neither T nor F worked, but returning the first parameter (pointer to ACTCTX struct) works: CreateActCtxW=p1e0 3. ActivateActCtx Once again, declaring success instead of failure was the key: ActivateActCtx=t2e0 After redefining each function, I relaunched KM and then checked Kstub822.log to monitor the progress. In all three cases, the 'e0' (ERROR_SUCCESS) is probably not needed, but MSDN states "This function sets errors that can be retrieved by calling GetLastError" without limiting the scope to failure cases. Additionally, I've deleted the two ANSI functions as they don't seem to be needed. In summary, the new ActCtx definition set is: [Kernel32.dll] ActivateActCtx=t2e0 CreateActCtxW=p1e0 DeactivateActCtx=f2e FindActCtxSectionStringW=o5e0 ReleaseActCtx=f1 I haven't exit KM yet, but will update if DeactivateActCtx or ReleaseActCtx also need to report success.
-
Kext: DIY KernelEx extensions
I was pretty sure I could bait you into tackling Method 3 by using the verb "hex"! Now that we have one method that we know works, I'll continue pursuing the other three. I'm sure Method 4 works, but it's proving difficult to set up reliably; I think a profile that enables ActCtx rather than disabling it will work better. I'm still hoping for a Method 2 solution (e120 or e127, perhaps) that will make the other methods unnecessary. I didn't have any apps that look for ActCtx functions, so hadn't been able to test myself. Now I've downloaded K-Meleon 1.6 and will begin testing. Thanks you, loblo, for providing us with the first working solution to the ActCtx conundrum!
-
Kext: DIY KernelEx extensions
> > If you have an NT2K mode that sticks [...] > All the attempts don't work. All the specfic compatibility modes don't stick! If you are saying NT2K mode won't stick, and that even Win95 mode won't stick, check that the Kstub822 module names match: [DCFG1] contents=Kstub822,std,kexbases,kexbasen [WIN95.names] ComDlg32.PrintDlgExA=Kstub822.0 ComDlg32.PrintDlgExW=Kstub822.0
-
Kext: DIY KernelEx extensions
If you have an NT2K mode that sticks and supports KERNEL32.FindActCtxSectionStringW, NOFACSS should also stick--those are the only two dependencies: [NOFACSS] inherit=NT2K desc=Win2000 SP4 (for OpenOffice) [NOFACSS.names] KERNEL32.FindActCtxSectionStringW=none Perhaps the KernelEx bug that limits the number of modes that stick to 11 (0..10) limits ME to something even lower. Try renumbering the modes like this: [ApiConfigurations] default=0 0=DCFG1 1=WIN95 2=WIN98 3=WINME 4=NT40 5=NT2K 6=NOFACSS 7=NOAC 8=WINXP 9=VISTA 10=NOHEAP If this works, check to see if NOHEAP and VISTA will stick. You can also drop from the numbering sequence any modes you don't use (e.g. NOHEAP, NT40, etc.), just make sure to leave the sections for inheritance purposes.