Jump to content

[WIP] Windows Vista Extended Kernel


win32

Recommended Posts

17 hours ago, D.Draker said:

what is your opinion of HPET ? Can it help ?

It is certainly better than the regular ACPI timer, but I found that it did not help very much on Haswell+.

There is a better, more precise timer than ACPI that apparently did improve things on those systems (but still not perfect): invariant TSC-based timer. Windows 7 supports this but it actually is rarely used in practice. I enabled it in Vista with a test HAL, but it wasn't released because it didn't boot on some systems.

Link to comment
Share on other sites


8 hours ago, Sergiaws said:

That driver will be just for NVIDIA Graphic cards? Or will make another improvements. I'm a bit confussed.

It will support other drivers as well; the next one in my sights is the Process Hacker 2.39 driver. I will also add functions for Intel and AMD drivers, and also other system drivers such as Windows 7 file system drivers (which support TRIM).

Link to comment
Share on other sites

@win32 Could you please add the support for the color emojis like in Windows 8.1 and 10? I installed the emoji font file picked from the fully updated Windows 10 computer (you can try download from https://anonfiles.com/U384l078yc/seguiemj_ttf and install it). But outside of Firefox browser, the emojis are displayed only in black and white...

Edited by Brickedandroid
Link to comment
Share on other sites

  • 2 weeks later...
5 hours ago, George King said:

@win32

Is there list of functions added to NTOSKRNL.exe? It would be great to see source code too (if available in C), maybe we can add some of them to NTOSKRN8.sys to port more drivers to XP/2003/Vista/7 from newer systems :)

These functions were already in Vista's ntoskrnl but not exported previously:

wcstomb_s
wcsncpy_s
wcsncat_s
wcscpy_s
wcscat_s
vswprintf_s
vsprintf_s
swprintf_s
_vsnwprintf_s
_ultow_s
_snwprintf_s
_snwscanf_s

Maybe Server 2003 has some of them too, as that was when they started to be very concerned about buffer overflows in the kernel.

I then added these functions with my own driver (unreleased due to isolated bugs on a small number of configurations while using certain drivers, but otherwise NVIDIA 398 is stable):

memcpy_s
KeQueryMaximumProcessorCountEx
KeQueryLogicalProcessorRelationship
strncpy_s
_snprintf_s
KeQueryUnbiasedInterruptTime (this is still a stub, which relies on the biased interrupt time; lacking time to implement the proper implementation in the driver which grabs the bias value from elsewhere in the shared kernel data iirc)

 

I decided to upload the more complicated function implementations to here: https://github.com/win32ss/win32-api-reversals/tree/main/kernelmode

There is also some preliminary work on improving dxgkrnl to use Vulkan with NVIDIA drivers on Vista, and perhaps attempts at WDDM 2.x support in the far off distance.

Edited by win32
Link to comment
Share on other sites

38 minutes ago, win32 said:

These functions were already in Vista's ntoskrnl but not exported previously:

wcstomb_s
wcsncpy_s
wcsncat_s
wcscpy_s
wcscat_s
vswprintf_s
vsprintf_s
swprintf_s
_vsnwprintf_s
_ultow_s
_snwprintf_s
_snwscanf_s

Maybe Server 2003 has some of them too, as that was when they started to be very concerned about buffer overflows in the kernel.

I then added these functions with my own driver (unreleased due to isolated bugs on a small number of configurations while using certain drivers, but otherwise NVIDIA 398 is stable):

memcpy_s
KeQueryMaximumProcessorCountEx
KeQueryLogicalProcessorRelationship
strncpy_s
_snprintf_s
KeQueryUnbiasedInterruptTime (this is still a stub, which relies on the biased interrupt time; lacking time to implement the proper implementation in the driver which grabs the bias value from elsewhere in the shared kernel data iirc)

 

I decided to upload the more complicated function implementations to here: https://github.com/win32ss/win32-api-reversals/tree/main/kernelmode

There is also some preliminary work on improving dxgkrnl to use Vulkan with NVIDIA drivers on Vista, and perhaps attempts at WDDM 2.x support in the far off distance.

@win32 can the ntoskrnl extender for XP ported to 2000 ? 

Link to comment
Share on other sites

54 minutes ago, WinWord2000 said:

@win32 can the ntoskrnl extender for XP ported to 2000 ? 

This is not very relevant to this topic, but one would have to fill in the gaps and add XP/2003 functions in addition to the Vista+ functions for that to work properly. Then perhaps it could work, but there are some other ways in which the kernel side differs (XP has a distinct dxgkrnl, 2000 does not, but most XP graphics drivers were successfully ported to 2000, so perhaps the dxgkrnl functionality was implemented in win32k in 2000).

Link to comment
Share on other sites

21 minutes ago, win32 said:

This is not very relevant to this topic, but one would have to fill in the gaps and add XP/2003 functions in addition to the Vista+ functions for that to work properly. Then perhaps it could work, but there are some other ways in which the kernel side differs (XP has a distinct dxgkrnl, 2000 does not, but most XP graphics drivers were successfully ported to 2000, so perhaps the dxgkrnl functionality was implemented in win32k in 2000).

I would love to see more modern drivers for later Windows ported to 2000, but I'm not getting my hopes up. The one, modern, system I bought specifically for 2k use has to use Standard Mode due to the stupid InsydeH2O BIOS and this means most drivers outside of Realtek audio (the main reason) will not work. (since this is off-topic, please contribute further at the link below if you'd like).

Windows 2000 discussion aside, I'm hoping one day the AMD Radeon R4 98E4, Stoney Ridge graphics driver will work with Vista in addition to 7, 8, 8.1, and 10 along with several others like the Qualcomm Atheros QCA9377 among others (If you have Realtek audio, non-advanced mode (I2C/Serial I/O) Synaptics/Elantech and probably ALPS touchpads, and Realtek Ethernet, you are good as those still support Vista without any kernel mods provided by this or other mods. Rather than derail this thread, if you want to continue talk about AMD Graphics drivers, we can move the discussion to the other thread linked below, which does not have to pertain to just my model of AMD.

 

Link to comment
Share on other sites

19 hours ago, win32 said:

This is not very relevant to this topic, but one would have to fill in the gaps and add XP/2003 functions in addition to the Vista+ functions for that to work properly. Then perhaps it could work, but there are some other ways in which the kernel side differs (XP has a distinct dxgkrnl, 2000 does not, but most XP graphics drivers were successfully ported to 2000, so perhaps the dxgkrnl functionality was implemented in win32k in 2000).

How difficult is it to add dxgkrnl functionality to win32k.sys and is it possible?  in general how many type of functions should be added to win32k.sys ? 

Are @Ximonite aware of these missings ?

Forgive me for the wrong terminology because I don't know anything about this field 

Edited by WinWord2000
Link to comment
Share on other sites

  • 2 weeks later...

Looks like Firefox 105 doew not work. It installs, but opening it causes it to complain about WerUnregisterRuntimeExceptionModule not being located in KERNEL32.dll. This is on July 2022 update.

I'm finally in! I had to scour around for a Firefox older than 105. I went with Firefox 101, which installs and opens as intended with no issues. Idk what version of Firefox was the first to introduce needing WerUnregisterRuntimeExceptionModule in Kernel32.dll, but I know Firefox 105 has it while Firerfox 101 does not. So for now, no Firefox 105 until @win32 can figure something out.

Edited by Jakob99
Link to comment
Share on other sites

2 hours ago, win32 said:

I added WerUnregisterRuntimeExceptionModule and got Firefox 106 running. So it should not be too long.

From what I Googled, this appears to be related to error dialogs or similar.

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...