Jump to content
MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. ×

KernelXE - My Unofficial Windows 2000 Kernel


Ximonite
 Share

Recommended Posts

4 hours ago, piotrhn said:

GDI32.DLL - Please add function:

  • ClearBitmapAttributes  (XP) 5.1

USER32.DLL - Please add some functions:

  • PaintMenuBar  (XP) 5.1
  • CalcMenuBar  (XP) 5.1
  • IsServerSideWindow  (XP) 5.1
  • RegisterUserApiHook  (XP) 5.1
  • UnregisterUserApiHook  (XP) 5.1
  • ChangeWindowMesageFilter  (Vista) 6.0
  • DisableProcessWindowsGhosting  (XP) 5.1
  • DwmHintDxUpdate  (Vista) 6.0
  • GetGestureInfo  (7) 6.1
  • GetRawInputDeviceInfoA  (XP) 5.1
  • IsThreadDesktopComposited  (Vista) 6.0
  • IsTouchWindow  (7) 6.1
  • LogicalToPhysicalPoint  (Vista) 6.0
  • RegisterPowerSettingNotification  (Vista) 6.0
  • RegisterTouchWindow  (7) 6.1
  • SetGestureConfig  (7) 6.1
  • UnregisterPowerSettingNotification  (Vista) 6.0
  • UnregisterTouchWindow  (7) 6.1

 

VIDEOPRT.SYS Please add to driver function: (code from 2k3 Sp2)

 VideoPortIsNoVesa: (XP) 5.1
          mov    al,[L00027041]
          retn
 L00027041:
         db    00h;
         db    00h;
         db    00h;

 

TASKMGR - update taskmgr to version 5259, from early VISTA 5259 is last compatible with 2k and works fine. there's few news:

-dumping process

-open contain folder LOCATION

-properties of file

-network card as in XP/2k33

Here is what I can do for all these functions:
videoprt.VideoPortIsNoVesa - relies on code that doesn't exist in KernelXE's videoprt.sys and cannot be added easily.
user32 functions - I can add most of them, but they will be stubs. I only add stubs when requested since they don't actually do anything and are just placeholders to take care of program dependencies.
gdi32.ClearBitmapAttributes - redirects to a win32k function that doesn't exist in WildBill's win32k.sys. I will add this function when I get to modifying win32k.sys.

I tried taskmgr from Longhorn build 5259 and it doesn't run at all. No error message or anything. Just "Thread terminated" in IDA.

Link to comment
Share on other sites


5 hours ago, Ximonite said:

I tried taskmgr from Longhorn build 5259 and it doesn't run at all. No error message or anything. Just "Thread terminated" in IDA.

Copy all resources from taskmgr.mui to taskmgr.exe save & run, it works.

 

Prepared for you MULTILANGUAGE ver of taskmgr: PL/ENG.

password: taskmgr

Edited by piotrhn
Link to comment
Share on other sites

Sorry in fact, it works with an extended kernel BWC . But with kernelXE when I tried now it it didn't work.

I have  two partition in which Windows 2000 with (BWC) extended kernel i work with every day. The other is for KernelXE Test

Edited by windows2
Link to comment
Share on other sites

On 11/4/2020 at 11:45 PM, Ximonite said:

UMDF:
Priority: Semi-high
Needs WinUSB

Hi Ximonite , does UMDF match at the kernel base level of Windows 2000 ?

Link to comment
Share on other sites

I installed UMDF with KDW (XP SP2 matched) and it worke博d. But when loading WPDUSB.SYS it caused BSOD I think the reason is a mismatch UMDF with kernel base level. 

Is it treatable?

Link to comment
Share on other sites

On Thu Nov 05 2020 at 12:45 PM, Ximonite said:

exFAT:
Priority: Moderate
ifsutil.dll needs replacement or big modification
shell32.dll needs modification (W.I.P.)

Hi, is it possible to make Windows 2000 boot from exFAT partition?

Link to comment
Share on other sites

17 hours ago, HelpJP said:

I installed UMDF with KDW (XP SP2 matched) and it worke博d. But when loading WPDUSB.SYS it caused BSOD I think the reason is a mismatch UMDF with kernel base level. 

Is it treatable?

Which version of UMDF are you trying. UMDF 1.0 doesn't have this file and it isn't included in Windows 2000.

16 hours ago, ZhuMa said:

Hi, is it possible to make Windows 2000 boot from exFAT partition?

Definitely not. I'm pretty sure it isn't even possible on XP.

Link to comment
Share on other sites

10 hours ago, Ximonite said:

Which version of UMDF are you trying. UMDF 1.0 doesn't have this file and it isn't included in Windows 2000.

I used (BWC) Extended Kernel.

I tried to force install UMDF 2.0 and it didn't work. So i tried to enforce UMDF 1.0. And i noticed in SERRVICES.MSC that UMDF was added, so i installed WMP11 to get MTP services for smartphone. When the driver installer asked me, WPDUSB.SYS, i put it in. He got installed and direct BSOD appeared. So, i restarted the computer, taking out the cable between the phone and the computer, so that the BSOD would not appear again. And i deleted UMDF and its components, i tried to search for help on the internet,  i found someone who had the same experience and had the same mistakes, i have finally known that UMDF is not supported by KERNEL BASE LEVEL for Windows 2000, and i found on this page that in the future you want to add UMDF for Windows 2000.

Is there a real possibility to run UMDF in the future or is it just an experiment?

Edited by HelpJP
Link to comment
Share on other sites

23 hours ago, ZhuMa said:

Hi, is it possible to make Windows 2000 boot from exFAT partition?

Extended Core can support exfat.sys

but, win2000 mount driver does not support exfat.

Link to comment
Share on other sites

On 1/8/2021 at 7:45 PM, HelpJP said:

I installed UMDF with KDW (XP SP2 matched) and it worke博d. But when loading WPDUSB.SYS it caused BSOD I think the reason is a mismatch UMDF with kernel base level. 

Is it treatable?

Don't use KDW  with extended kernel.

They will collide and make be unstable.

  • Like 1
Link to comment
Share on other sites

5 hours ago, blackwingcat said:

Don't use KDW  with extended kernel.

They will collide and make be unstable.

I use it to force UMDF to work, i always do experiments, i don't care if something goes wrong because i will learn from him.

Thank you for the information

Link to comment
Share on other sites

On Sat Jan 09 2021 at 7:23 PM, blackwingcat said:

Extended Core can support exfat.sys

but, win2000 mount driver does not support exfat.

http://github.com/maharmstone/quibble/issues/15

It seems that some solutions can be found. There is a project called "quibble" in GitHub that can make the Windows operating system boot from a non-NTFS file system, but it is not technically mature and has many limitations, and the author has not yet adapted to Windows 2000.

Edited by ZhuMa
Link to comment
Share on other sites

  • 4 weeks later...
On 11/5/2020 at 5:45 AM, Ximonite said:

v0.2.4.2...

Info about future additions:

UMDF:
Priority: Semi-high
Needs WinUSB
Needed functions:
setupapi.SetupDiGetActualSectionToInstallExW
ntoskrnl.RtlVerifyVersionInfo
ntoskrnl.VerSetConditionMask

exFAT:
Priority: Moderate
ifsutil.dll needs replacement or big modification
shell32.dll needs modification (W.I.P.)

NVMe:
Priority: Low
Needed functions (storport):
ntoskrnl.WmiQueryTraceInformation
ntoskrnl.WmiTraceMessage
ntoskrnl.WmiTraceMessageVa

How looks your progress on future releases: 0.2.4.3/4/5 ... :) ;) ; When you plane to publish & how we  can help you with this?

Link to comment
Share on other sites

8 hours ago, piotrhn said:

How looks your progress on future releases: 0.2.4.3/4/5 ... :) ;) ; When you plane to publish & how we  can help you with this?

I am definitely still working on KernelXE. The main thing I'm doing that's taking so long is adding keyed events.

Keyed events are very tied into existing ntoskrnl code and it's gonna take a while to adapt existing stuff to work with them.

Lots of stuff uses keyed events, so when this is done, it will be very good for Windows 2000 users.

Here is a list of ntdll functions that use them:

RtlAcquireSRWLockExclusive
RtlAcquireSRWLockShared
RtlReleaseSRWLockExclusive
RtlReleaseSRWLockShared
RtlRunOnceBeginInitialize
RtlRunOnceComplete
RtlRunOnceExecuteOnce
RtlSleepConditionVariableCS
RtlSleepConditionVariableSRW
RtlWaitOnAddress
RtlWakeAddressAll
RtlWakeAddressSingle
RtlWakeAllConditionVariable
RtlWakeConditionVariable
TpAllocPool
TpAllocTimer
TpAllocWait
TpAllocWork
TpDisassociateCallback
TpPostWork
TpReleaseCleanupGroupMembers
TpReleasePool
TpReleaseTimer
TpReleaseWait
TpReleaseWork
TpSetPoolMinThreads
TpSetTimer
TpSetWait
TpSimpleTryPost
TpWaitForTimer
TpWaitForWait
TpWaitForWork

I'm planning on adding all those functions and the kernel32 functions that rely on them.

January has been very busy for me, but I hope that February is lighter so I get more time to work on KernelXE.

  • Like 1
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...