Jump to content

Kext: DIY KernelEx extensions

Recommended Posts

On 9/23/2019 at 12:36 AM, deomsh said:

Please read this:


MSVCR70.DLL or MSVCR71.DLL should be used instead of MSVCRT.DLL too. Rename/ copy when still in MS-DOS (real mode) or use KnownDLLs in Registry (reboot needed). 


I should've asked years ago, but how do I manually add stubs? I know KernelEx serves as a compatibility layer and stubs out missing functions to allow Windows NT programs run on 9x, but I was never informed how I could try doing this myself.

While stubbing functions, am I required to place those missing files with something? I am aware certain programs linked by jumper will give us a live info of missing files and dependencies.

Link to comment
Share on other sites

  • 1 month later...

  • 3 months later...
  • 4 weeks later...

A bit late but I am following now. First page https://msfn.org/board/topic/173302-kernelex-auxiliary-dll-updates/?do=findComment&comment=1092328 and 4.5.2 ones have not changed to what was used in KernelEx 4.5.2. language is written into the Kernel I think. I do not think language in these files would be a problem unless file names and functions are named in different languages and you want to interrogate but I did not think they were?

Edited by Goodmaneuver
Link to comment
Share on other sites

  • 2 weeks later...

Are these functions catered for in KEX

GetLocaleInfoEx  > Kernel32
GetSystemDefaultLocaleName > Kernel32
IsValidLocaleName > Kernel32
LCIDToLocaleName > Kernel32
GetFontFileInfo > Gdi32                      This one is asking for the font name
GetFontRealizationInfo > Gdi32           This one is asking for the font ID and is a ROS function call

Is there any chance of these functions set to work or stubbed.

Does this make sense


@@ -8180,7 +8245,7 @@ static BOOL freetype_GetFontRealizationInfo( PHYSDEV dev, void *ptr )
         info->flags |= 2;
     info->cache_num = physdev->font->cache_num;
-    info->instance_id = -1;
+    info->instance_id = physdev->font->instance_id;
     if (info->size == sizeof(*info))
         info->unk = 0;


Link to comment
Share on other sites

To use Kexstubs already catered for function redirects or stubs need to be known in case of duplicates. Is there any easy way of finding out this. Like I was not sure of the 4 Kernel functions listed above. The gdi32 ones I would like to try to redirect to GdiPlus functions. Like GetFontFamily for example.

Link to comment
Share on other sites

Nlsdl has the missing kernel Dwrite functions. I have read somewhere in MSFN that may have helped to redirect functions to other modules using KEX stubs and core.ini is there instructions?


Edited by Goodmaneuver
Link to comment
Share on other sites

Ktree9 Jan 2013 if that the latest does not include functions of those shown in the other image for DirectX 11 which D2D1 is used in programs mentioned in other posts. Blackwingcat's Msvcrt wrapper (includes _ftol2_sse) does not need to be used, it depends on what files are chosen but BWC's wrapper was shown in 6 posts up. It works if not used to extreme as a replacement for Msvcrt - the memory manager has trouble. The DownlevelLCIDToLocaleName is equivalent to LCIDToLocaleName for instance, so redirecting LCIDToLocaleName to DownlevelLCIDToLocaleName should work. Please consider.

Edited by Goodmaneuver
Link to comment
Share on other sites

I believe that the assigning in most modern Windows of some files to use SSE2 and some to not use SSE/2 is fine tuning and we should take note of this. Msasn1 has SSE2 where as Msls31 has not. Msasn1 can be made compatible with BWC's wrapper and BASE & see here  https://msfn.org/board/topic/173233-kernelex-45-core-updates-45201617/?do=findComment&comment=1171794 


Link to comment
Share on other sites

  • 1 month later...

There are 2 x GlobalMemoryStatusEx Kernel32 ;kexbases shown on Ktree, is this OK?

These functions are not mentioned in Ktree and are working

RtlImageNtHeaderEx => RtlImageNtHeader     
LdrProcessRelocationBlock => RtlReAllocateHeap    These 2 are tested with ImageHlp up to version 6.1.7601.22484 for several years and OK. ( RtlImageNtHeader is mentioned in Ktree but why when it is a function already in Ntdll )

Link to comment
Share on other sites

My small collection of unsupported API's from recent times.





DnsValidateName_W=        ;KM76
WinHttpReadData=           ;Flash23
WinHttpReceiveResponse=       ;Flash23

_ftol2=                   ; or ?ntdll
_ftol2_sse=               ; or ?ntdll

RtlMakeSelfRelativeSD=       ;FF38
RtlSelfRelativeToAbsoluteSD=     ;FF38
RtlStringFromGUID=              ;FF38



CM_Connect_MachineW=          ;KM76
CM_Disconnect_Machine=        ;KM76
CM_Locate_DevNode_ExW=        ;KM76

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...