Microsoft Windows 2000/NT 5.0 [Build 2195] (February 2000 - July 2010)


Software Compatibilty List (EOL, current)

This list is "up-to" so I post here last software versions after which Windows 2000 support is ceased. So here it is:
This list is "up-to" so I post here software which has Windows 2000 support. Here it is:

Microsoft post-EOL security updates

Windows 2000 Updates mirror by Tomasz Wilczynski (tomasz86)

Microsoft post-EOL security CD updates


BlackWingCat's Windows Legacy Update
Example: how to get latest actual "classic" root certificates update -

  1. Goto "Manual Update"
  2. Choose OS Type: Windows 2000
  3. Search Keyword: roots
  4. Choose link and download it

Making Windows 2000 up-to-date MINI FAQ

Problem 1: Installing QEMU in Windows 2000 host.

Starting with QEMU version 0.10.x and later is compatible with Windows XP or later due to IPv.6 API. Let's discover what is different. I recommend using Dependency Walker for Win32 utility by Steve P. Miller. It found only three different functions from WS2_32.DLL - Windows Sockets v.2 API:

All of them are suitable for IPv.6 only, and since Windows 2000 does NOT support it by default, we can remove them without any problems by simple patch:
Replace these text occurrences from qemu.exe PE import table:
freeaddrinfo, getaddrinfo, getnameinfo
to (any WS2_32.DLL function that will fit in 12 letters, lowercased as is):
Pad them with zero's if needed (freeaddrinfo).

Tested with following versions of QEMU for Win32:

QEMU 0.10.5
QEMU 1.0
QEMU 1.1.1
QEMU 1.2.1

Problem 2: Installing Microsoft Virtual PC 2007 32bit in Windows 2000 host.

The Virtual PC 2007 installer does not allow VPC 2007 to be installed on Windows 2000. Just like Windows Defender, the fix is simple. You simply have to remove the limitation from the installer. Read the following to fix this issue:
Download Microsoft Virtual PC 2007 SP1 (32-bit)
You will also need Microsoft Orca v3.1 (search internet for orca.exe + orca.dat tool or inside of Microsoft's Installer SDK):

Once you have VPC 2007 and Orca downloaded start the VPC 2007 install. Do not click on any buttons or do anything. Just leave the install sitting there. Now go to your "C:\Documents and Settings\USERNAME\Local Settings\Temp" You should see a file there named "Virtual_PC_2007_Install.msi". This is the file you want. Copy this file to your "My Documents" folder. Open "Virtual_PC_2007_Install.msi" with Orca. On the left-hand side of the screen go to "CustomAction" On the right-hand side of the screen choose "CA_CheckIfWeCanInstall" and press the delete key. Go to File and then Save. Not Save As.

Problem 3: Installing Sun/Innotek VirtualBox in Windows 2000 host.
Solution: Patching Guide

Orca can be used to remove "NOT VersionNT=500" from the "LaunchCondition" entry in the VirtualBox's MSI installer. This will allow VirtualBox to install and work properly on a Windows 2000 host. Here is the testing protocol:

Problem 4: Intel® AHCI/RAID ICH6,ICH7,ICH8,ICH9,PCH storage controllers

Intel® Matrix Storage Manager 7.0 supports ICH6/7/8 in AHCI/RAID mode.

- Intel® 82801FBM I/O Controller Hub (ICH6M)
- Intel® 82801FR I/O Controller Hub (ICH6R)
- Intel® 82801GH I/O controller Hub (ICH7DH)
- Intel® 82801GR I/O Controller Hub (ICH7R)
- Intel® 82801GBM I/O Controller Hub (ICH7M)
- Intel® 82801GHM I/O Controller Hub (ICH7MR)
- Intel® 631xESB/632xESB I/O Controller Hub (ESB2)
- Intel® 82801HR/HH/HO I/O Controller Hub (ICH8R)
- Intel® 82801HBM I/O Controller Hub (ICH8M)
- Intel® 82801HEM I/O Controller Hub (ICH8M-E)

Intel® Matrix Storage Manager 7.6 supports ICH6/7/8/9 in AHCI/RAID mode.

- Intel® 82801GH I/O Controller Hub (ICH7DH)
- Intel® 82801GR I/O Controller Hub (ICH7R)
- Intel® 82801GBM I/O Controller Hub (ICH7M)
- Intel® 82801GHM I/O Controller Hub (ICH7MR)
- Intel® 631xESB/632xESB I/O Controller Hub (631xESB/632xESB)
- Intel® 82801HR/HH/HO I/O Controller Hub (ICH8R)
- Intel® 82801HBM I/O Controller Hub (ICH8M)
- Intel® 82801HEM I/O Controller Hub (ICH8ME)
- Intel® 82801IR/IO I/O Controller Hub (ICH9R)

Intel® ICH8,ICH9,PCH in AHCI mode not listed above are also supported if BIOS is AHCI-capable. You have to patch some driver inf's to achieve this.

How to check this support: if IMSM (any version) support any of ICH9-based chipsets, it MUST support ICH9 AHCI or any other ICH9-based chip. For example, latest IMSM 8.9 supports ICH7/8/9/10,PCH chipsets.

How to make ICH8,ICH9,PCH AHCI patch:

Change iaahci.inf:

  1. Add this line in section [ControlFlags]:
  2. Add these lines in sections [INTEL_HDC], [INTEL_HDC.ntamd64]:
    ; ICH8
    %PCI\VEN_8086&DEV_2824&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_2824&CC_0106
    ; ICH9
    %PCI\VEN_8086&DEV_2923&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_2923&CC_0106
    ; PCH
    %PCI\VEN_8086&DEV_3B23&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_3B23&CC_0106
  3. Add this line in section [Strings]:
    PCI\VEN_8086&DEV_2824&CC_0106.DeviceDesc	= "Intel(R) ICH8 SATA AHCI Controller"
    PCI\VEN_8086&DEV_2923&CC_0106.DeviceDesc	= "Intel(R) ICH9 SATA AHCI Controller"
    PCI\VEN_8086&DEV_3B23&CC_0106.DeviceDesc	= "Intel(R) PCH SATA AHCI Controller"

Change TxtSetup.OEM:

  1. Change this line in section [Defaults] to:
    scsi = iaAHCI_ICH8
  2. Add this line in section [scsi]:
    iaAHCI_ICH8 = "Intel(R) SATA AHCI Controller (Desktop ICH8)"
    iaAHCI_ICH9 = "Intel(R) SATA AHCI Controller (Desktop ICH8)"
    iaAHCI_PCH = "Intel(R) SATA AHCI Controller (Desktop PCH)"
  3. Add these lines after [scsi] section:
    driver = disk1, iaStor.sys, iaStor
    inf    = disk1, iaAHCI.inf
    catalog = disk1,
    driver = disk1, iaStor.sys, iaStor
    inf    = disk1, iaAHCI.inf
    catalog = disk1,
    driver = disk1, iaStor.sys, iaStor
    inf    = disk1, iaAHCI.inf
    catalog = disk1,
  4. Add these lines after [Config.iaStor] section:
    id = "PCI\VEN_8086&DEV_2824&CC_0106","iaStor"
    id = "PCI\VEN_8086&DEV_2923&CC_0106","iaStor"
    id = "PCI\VEN_8086&DEV_3B23&CC_0106","iaStor"

Intel® Matrix Storage Manager downloads:

  1. Multilanguage package iata70_cd.exe
  2. English only package iata70_enu.exe
  3. Release notes release notes.htm
  4. ReadMe readme.txt
  5. 32-bit Floppy Configuration Utility
  6. Configuration Utility ReadMe f6readme.txt
  7. Patched IMSM V7.0.0.1020, driver only:

Intel® Matrix Storage Manager downloads (UNOFFICIAL from

  1. Driver only package imsm_7011001(
  2. Release notes relnotes 7.0.htm

Dunno why support for Windows 2000 Professional and Windows 2000 Datacenter Server is not declared. However, I see no difference between these editions of W2K, only different sofware packaging (client/server) and pricing, licensing.

I have a *success* installing Windows 2000 Professional in AHCI Mode with Intel® Desktop Board DQ963FX ICH8-Based mobo.
Here is a Intel® Matrix Storage Manager log-file from Windows 2000 Professional:

System Information

Kit Installed:
Kit Install History:
Shell Version:

OS Name: Microsoft Windows 2000 Professional
OS Version: 5.0.2195 Service Pack 4 Build 2195
System Manufacturer: Intel Corporation
System Model: DQ963FX
Processor: Intel® PentiumR D CPU 3.00GHz
BIOS Version/Date: Intel Corp. MQ96510J.86A.1738.2008.0617.0002, 06/17/2008

Serial ATA Information

Intel Serial ATA Controller: Unknown Controller
Number of Serial ATA ports: 4
Driver Version:
Serial ATA Plug-In Version:
Language Resource Version of the Serial ATA Plug-In: File not found
ISDI Library Version:
Hard Drive 0
Status: Normal
Device Port: 0
Device Port Location: Internal
Current Serial ATA Transfer Mode: Generation 2
Model: ST3320620AS
Firmware: 3.AAD
Native Command Queuing Support: Yes
Size: 298 GB

Installation process:

  1. In normal AHCI/RAID-compatible BIOS there are maximum of four working modes of ICH SATA controller:
    1. SATA AHCI and/or SATA RAID - if your BIOS doesn't have such options, your motherboard is not AHCI/RAID compatible so no storage driver needed and you have no chance (and no need) to install IMSM.
    2. SATA Native and/or IDE Legacy - these modes are supported in Windows 2000 by default atapi.sys driver.
  2. Set HDD controller working mode in BIOS to SATA Native or IDE Legacy mode.
  3. Install Windows 2000 (XP, 2003). No nLite or driver integration is needed.
  4. Install Intel® INF Update.
  5. Extract IMSM exe-file and get access to individual files i.e. iaahci.inf.
  6. Patch iaahci.inf.
  7. In Device Manager manually change driver for SATA HDD controller from ICH8/IDE to ICH8/AHCI by picking iaahci.inf.
  8. Reboot and change HDD controller mode in BIOS to SATA AHCI.
  9. Now system boots and it is in AHCI Mode!
  10. If you have problems after rebooting, just set back HDD controller working mode in BIOS to SATA Native or IDE Legacy mode and after reboot press F8 and use Last known good hardware configuration - Windows 2000 (XP, 2003) will return to HDD compatibility mode.
  11. OPTIONAL STEP: Reinstall full (but with patched inf's) IMSM over existing driver for Matrix Storage Manager GUI Interface.

Starting with Matrix Storage Manager there is NO support for Windows 2000. So it is impossible to use ICH9 and later with Windows 2000 in AHCI/RAID mode with recent Matrix Storage Manager. The problem is that iaStor.sys driver from Matrix Storage Manager and later uses some APIs that are absent in Windows 2000. Third party blackwingcat's blog provides patched Intel Matrix Storage Manager 7.6 iaStor.sys driver for Windows 2000.

iaStor.sys APIs list (IMSM Package :

HAL.DLL: KeAcquireInStackQueuedSpinLock
HAL.DLL: KeReleaseInStackQueuedSpinLock
NTOSKRNL.EXE: InterlockedPopEntrySList
NTOSKRNL.EXE: InterlockedPushEntrySList
NTOSKRNL.EXE: IoCsqInitialize
NTOSKRNL.EXE: IoCsqRemoveNextIrp
NTOSKRNL.EXE: _aulldvrm

Problem 5: Intel® Graphics drivers and Intel® Embedded Graphics drivers (IEGD)

Intel® Windows XP (32-bit) Graphics drivers (below version 14.41) are compatible with Windows 2000 but some of them are buggy:

Production Version   Package   Graphics      HDMI Audio   Date                Name         55272  September 16, 2008         56819  October 24, 2008         57948  November 13, 2008         59346  December 18, 2008         60830  January 19, 2009
in OpenGL support libraries:
has missing import KERNEL32.GetModuleHandleExA. I get these libraries from earlier Intel® driver (, for example). And it was ok for me.

Newer Intel® Windows XP (32-bit) Graphics drivers (version 14.41 and above) does not have such issue, but has another one in main driver library:

has missing import NTOSKRNL._vsnwprintf. No other issues exist. It is possible to patch this file i.e. replace it in IMPORTS table with analog, which exists in Windows 2000 NTOSKRNL.EXE, f.e. _vsnprintf, and using jmps [EB xx] instruction make sure that it was skipped in code since _vsnwprintf not equals _vsnwprintf.

Custom resolutions support for Intel® Graphics:

Starting with productional version 14.34 (Windows 2000/XP/2003) and 15.9 (Windows Vista/7/8) it is possible to add custom screen resolutions in control panel applet, here: Graphics: Custom Resolutions & Modes.

But in some drivers this option is hidden, to restore it:

Intel® Windows XP (32-bit) Embedded Graphics drivers (IEGD) are compatible with Windows 2000:

Version:IEGD version 7.0.x (830G - G965) and below
Issues: no issues, latest with official support for Windows 2000 OS.

but IEGD 8.0.x and newer are buggy:

Version:IEGD version 8.0.x (830G - G965)
Issues: missing functions - iegd3d??.dll - WIN32K.SYS: EngBugCheckEx.

Version:IEGD version 9.x.x (830G - G4x)
Issues: missing functions - iegd3d??.dll - WIN32K.SYS: EngBugCheckEx,
                            iegdmini.sys - NTOSKRNL.EXE: _aulldvrm.
Version:IEGD version 10.x.x (830G - G4x)
Issues: missing functions - iegd3d??.dll, iegddis.dll - WIN32K.SYS: EngBugCheckEx,
                            iegdmini.sys - NTOSKRNL.EXE: _aulldvrm,
                            iegdmini.sys - VIDEOPRT.SYS:  too many of them, can't fix easily.

In most cases IEGD Graphics driver does not provide OpenGL support through ICD driver DLL, only DirectX.

Recommended replacements:

NTOSKRNL.EXE: _aulldvrm -->> NTOSKRNL.EXE: _aullrem (pad missing letter with zero)
WIN32K.SYS: EngBugCheckEx -->> WIN32K.SYS: EngDebugBreak

Don't forget to recalculate checksum of modified files. You can use editbin tool from Microsoft's Visual Studio or Platform SDK:


I succesfully test these Intel® chipset families with Windows 2000:

Intel® 740G
Intel® 810G/815G
Intel® 845G/855GM/865G
Intel® 910G/915G
Intel® 945G/946GZ
Intel® G965/Q965/Q963
Intel® G35/G33/G31
Intel® G45/G43/G41
Intel® Core i3/i5/i7 integrated

Problem 6: AMD/ATI Radeon Graphics drivers

Latest OFFICIAL driver (as AMD/ATI shows here) for Windows 2000 is Catalyst™ 6.2 (February 2006).
Drivers line from Catalyst™ 6.2 to Catalyst™ 7.4 (April 2007) is Windows 2000 compatible without any patches. They has support for ATI Radeon™ X1??? series cards.
Both of them does NOT support ATI Radeon™ HD 2xxx/3xxx/4xxx series cards.

But if you have such card (HD 2xxx and later), how to make it work in Windows 2000?
You can make some simple changes in driver's inf file to make it Windows 2000 compatible.
Note that after such "conversion" driver WHQL digital signature will be broken, it is NORMAL.
Copy XP's inf file to different file, for example:

CX_55811.inf from Catalyst™ 7.12 (in other versions numeric value 55811 may vary)
Note that from this time we will change content of C2_55811.inf
  1. OPTIONAL: Change:
    ; ATI Display Information file : ATIIXPAG.INF
    ; Installation INF for the ATI display driver.
    ; Copyright(C) 1998-2004 ATI Technologies Inc.
    ; Windows XP
    ; Base INF Last Updated 2005/11/01
    ; ATI Display Information file : ATII2KAG.INF
    ; Installation INF for the ATI display driver.
    ; Copyright(C) 1998-2004 ATI Technologies Inc.
    ; Windows 2000
    ; Base INF Last Updated 2005/11/01
  2. Change:
  3. Change
    CopyFiles=ati2mtag.Miniport, ati2mtag.Display, ati2mtag.OpenGL, Uninstall.CopyFiles, ati2mtag.OGL;, DVCR.CopyCodec
    CopyFiles=ati2mtag.Miniport, ati2mtag.Display, ati2mtag.OpenGL, Uninstall.CopyFiles;,DVCR.CopyCodec
  4. Remove any occurrence of:
    ATIR200="Chaplin (R200)"
    HKR,, Adaptive De-interlacing
    HKR,, AntiAlias
    HKR,, ASTT_NA, %REG_SZ%, 1
    HKR,, DALCurrentObjectData
    HKR,, DALDefaultCEDTVModeBCD
    HKR,, DALDefaultCvModeBCD
    HKR,, DALR6 CRT2_MaxModeInfo
    HKR,, DALR6 DFP_MaxModeInfo
    HKR,, DALR6 DFPx_MaxModeInfo
    HKR,, DDC2Disabled
    HKR,, DefaultMode
    HKR,, Disable5299
    HKR,, DisableBlockWrite
    HKR,, DisableDMACopy, %REG_DWORD%, 0
    HKR,, DisableDualView, %REG_DWORD%, 0
    HKR,, DisableDualviewWithHotKey
    HKR,, DisableDualviewWithHotKey, %REG_DWORD%, 1
    HKR,, DisableEnumAllChilds
    HKR,, DisableFakeOSDualViewNotify, %REG_DWORD%, 1
    HKR,, DisableFullAdapterInit
    HKR,, DisableHierarchicalZ
    HKR,, DisableIDCT
    HKR,, DisableLCD
    HKR,, DisableMFunction
    HKR,, DisableOSModePruning
    HKR,, DisablePM4TSInterrupt
    HKR,, DisableTabletPCRotation, %REG_DWORD%, 1
    HKR,, DisableTurnOnAllDisplaysAtResume
    HKR,, DXVA_WMV, %REG_SZ%, 1
    HKR,, EnableWaitUntilIdxTriList2
    HKR,, ExtEvent_RestoreLargeDesktopOnResume, %REG_DWORD%, 0
    HKR,, LVB
    HKR,, OvlTheaterModeType_DEF, %REG_DWORD%,  0
    HKR,, SubmitOnDraw
    HKR,, TabletPCRotateClockwise
    HKR,, TestEnv
    HKR,, TimingSelection
    HKR,, VgaCompatible
    HKR,, VPE Adaptive De-interlacing
    and add these lines to [ati2mtag_RemoveDeviceSettings] section:
    HKR,, AgpSize
    HKR,, DALDTMCRTBCD1024x1536x0x60
    HKR,, DALDTMCRTBCD1152x1728x0x60
    HKR,, DALDTMCRTBCD1280x2048x0x60
    HKR,, DALDTMCRTBCD1280x480x0x60
    HKR,, DALDTMCRTBCD1400x2100x0x60
    HKR,, DALDTMCRTBCD1600x2400x0x60
    HKR,, DALDTMCRTBCD1600x600x0x60
    HKR,, DALDTMCRTBCD2048x768x0x60
    HKR,, DALDTMCRTBCD2304x864x0x60
    HKR,, DALDTMCRTBCD2560x1024x0x60
    HKR,, DALDTMCRTBCD2800x1050x0x60
    HKR,, DALDTMCRTBCD3200x1200x0x60
    HKR,, DALDTMCRTBCD640x960x0x60
    HKR,, DALDTMCRTBCD800x1200x0x60
    HKR,, DALLargeDesktopModesBCD
    HKR,, DALLargeDesktopModesBCD1
    HKR,, DALLargeDesktopModesBCD2
    HKR,, DALLargeDesktopModesBCD3
    HKR,, DALViewLock1024x1536x0x0
    HKR,, DALViewLock1152x1728x0x0
    HKR,, DALViewLock1280x2048x0x0
    HKR,, DALViewLock1280x480x0x0
    HKR,, DALViewLock1400x2100x0x0
    HKR,, DALViewLock1600x2400x0x0
    HKR,, DALViewLock1600x600x0x0
    HKR,, DALViewLock2048x768x0x0
    HKR,, DALViewLock2304x864x0x0
    HKR,, DALViewLock2560x1024x0x0
    HKR,, DALViewLock2800x1050x0x0
    HKR,, DALViewLock3200x1200x0x0
    HKR,, DALViewLock640x960x0x0
    HKR,, DALViewLock800x1200x0x0
    HKR,, DisableDrawPath
    HKR,, GartCacheableMemorySize
    HKR,, GartUSWCMemorySize
    HKR,, MemInitLatencyTimer
  5. OPTIONAL: To any [ati2mtag_?] section (where ? is chip family, for example, RV535) add line:
    and add corresponding section [ati2mtag.DelReg]:
  6. Remove [SourceDisksNames.ia64] section.

Windows 2000 Catalyst™ testing protocol:

*) *** STOP: 0x00000050 (0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000)

If you wish to add nonstandard video modes to ANY of your AMD/ATI Card you can import this registry file:

; defaults 640x480 800x600 1024x768 1280x720 1280x1024 1600x1200 1680x1050 1920x1080 1920x1200 2048x1536
; missed 7680x4800 8192x4608
; WWW can be: 001, 002, ...
; X can be random GUID code
; YYYY can be: 0000, 0001, 0002, ...
; Z can be: 0, 1, 2, ...
; [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ati2mtag\DeviceZ]
; [HKEY_LOCAL_MACHINE\SYSTEM\ControlSetWWW\Services\ati2mtag\DeviceZ]






For example, this line:

adds 720x576 DVD PAL mode with 8, 16, 24 and 32-bit color depth.

Third party blackwingcat's blog provides recent patched Radeon Graphics driver for Windows 2000.

Lenovo provides updated driver (based on Catalyst 7.7, 8.593.100.7-090929a, 2009/11/26) for Windows 2000 (and XP 32-bit): Video driver (ATI Radeon 200M, X300, X600, FireGL V3200) for Windows 2000/XP (1yd175ww.exe). It also supports these chip families:

R(V)1xx, R(V)2xx, R(V)3xx, R(V)4xx and below

Problem 7: Intel® Multi-Core, Hyperthreading processors

Unlike Windows NT 3/4, Windows 2000 fully supports any SMP-based system with ACPI BIOS. This includes all recent Intel® processors starting from Pentium 4® family.

Windows version (32 bit)

Maximum Physical
Processor Limit

Maximum Logical
Processor Limit

Windows 2000 Professional

2 *


Windows 2000 Standard Server

4 *


Windows 2000 Advanced Server

8 *


Windows 2000 Datacenter Server

32 *


Windows XP Home Edition



Windows XP Professional



Windows Server 2003, Standard Edition



Windows Server 2003, Enterprise Edition



Windows Server 2003, Datacenter Edition



* When your CPU has Hyperthreding technology i.e. has logical (not physical) processors, Windows 2000 threats them differently: each logical core threated as physical. So if you have Dual-Core Processor with HT (most of Intel® Extreme Edition CPUs), only two of four logical cores are accessible in Windows 2000 Professional OS (without patching, of course, which leads to license violation).

Core 2 family note: When you are installing Windows 2000, system may hang during installation process. So I recommend for stability reasons:

  1. In textmode "blue-phase" of setup process press F5 and select Advanced Configuration and Power Interface (ACPI) PC from menu of Hardware Abstraction Layer's:
    ACPI Multiprocessor PC
    ACPI Uniprocessor PC
    Advanced Configuration and Power Interface (ACPI) PC
    Compaq SystemPro Multiprocessor or 100% Compatible PC
    MPS Uniprocessor PC
    MPS Multiprocessor PC
    Standard PC
    Standard PC with C-Step i486
  2. Disable Core Multiplexing or similar options in BIOS.

After successful installation - enable BIOS options and upgrade HAL to ACPI Multiprocessor PC.

Another CPU issues:

Problem 8: Hidden control panel items (covers also Windows XP/2003)

Windows 2000 has two hidden control panel items:

Copy them to *.cpl

copy console.dll console.cpl
copy hotplug.dll hotplug.cpl
and see two new control panel items. Also when you run
rundll32.exe netplwiz.dll,UsersRunDll
Users and Passwords control panel applet starts.

Problem 9: I want to see HICOLOR icons in system tray

Solution: Patch explorer.exe
Patch code #1:

.004094E3: 55                           push        ebp                        
.004094E4: 56                           push        esi                        
.004094E5: 57                           push        edi                        
.004094E6: 6A2C                         push        00000002C ;','             
.004094E8: 6A40                         push        000000040 ;'@'             
.004094EA: C744241801000000             mov         d,[esp][18],000000001 (change to mov d,[esp][18],000000011)
.004094F2: FF1568114000                 call        LocalAlloc ;KERNEL32       
.004094F8: 8BF0                         mov         esi,eax                    
.004094FA: 33DB                         xor         ebx,ebx                    
.004094FC: 3BF3                         cmp         esi,ebx                    
.004094FE: 0F8460590000                 je         .00040EE64 -- 1             
.00409504: FF35C8B24100                 push        d,[0041B2C8]               
.0040950A: 8B7C241C                     mov         edi,[esp][1C]              
.0040950E: 682F010000                   push        00000012F
.00409513: 57                           push        edi                        
.00409514: E81A010000                   call       .000409633 -- 2             
.00409519: 8BE8                         mov         ebp,eax                    
.0040951B: 56                           push        esi                        
.0040951C: 3BEB                         cmp         ebp,ebx                    
.0040951E: 0F843A590000                 je         .00040EE5E -- 3             
.00409524: 53                           push        ebx                        
.00409525: 57                           push        edi                        
.00409526: FF15B4134000                 call        SetWindowLongW ;USER32     

Patch code #2:
.00415A00: 7509                         jne        .000415A0B -- 1             
.00415A02: 81C900000010                 or          ecx,010000000              
.00415A08: 89480C                       mov         [eax][0C],ecx              
.00415A0B: 56                          1push        esi                        
.00415A0C: FF7508                       push        d,[ebp][08]                
.00415A0F: E800F5FEFF                   call       .000404F14 -- 2             
.00415A14: EBD8                         jmps       .0004159EE -- 3             
.00415A16: 33C0                         xor         eax,eax                    
.00415A18: E9C1F0FEFF                   jmp        .000404ADE -- 4             
.00415A1D: 833D28B3410000               cmp         d,[0041B328],0             
.00415A24: 6A01                         push        000000001 (change to push 00000011)
.00415A26: 5B                           pop         ebx                        
.00415A27: 7411                         je         .000415A3A -- 5             
.00415A29: FF7704                       push        d,[edi][04]                
.00415A2C: E8E40BFFFF                   call       .000406615 -- 6             
.00415A31: 85C0                         test        eax,eax                    
.00415A33: 7405                         je         .000415A3A -- 5             
.00415A35: BB01200000                   mov         ebx,000002001 (change to mov ebx,000002011)
.00415A3A: 6A01                        5push        1                          
.00415A3C: 6A00                         push        0                          
.00415A3E: 53                           push        ebx                        
.00415A3F: FF7508                       push        d,[ebp][08]                
.00415A42: 56                           push        esi                        
Problem 10: I want to install Windows 2000 onto hard drive larger than 137 Gb

Solution: Modify installation CD media
According to this article KB305098: 48-Bit LBA Support for ATAPI Disk Drives in Windows 2000, Windows 2000 Service Pack 3 (SP3 and later) supports 48-Bit LBA addressing.

However, when you are performing clean installation of Windows 2000 from CD (or from HDD, floppies) with unmodified distributive any data above 137 Gb will be unaccessible. Only after changing REG_DWORD registry parameter EnableBigLba 137 Gb+ support will be enabled.

Initial registry hive resides in \I386\ file on installation CD. You can open it via regedt32.exe using Load hive... option and enter REG_DWORD registry parameter EnableBigLba there:



After this modification, you can build new installation CD, which will be 48-Bit LBA aware. If you don't wish to burn CD, you can start installation from HDD or floppies.

Problem 11: Matrox G200e, G200eW, G200eH, G200eR Integrated Graphics drivers

Solution: Matrox G200e integrated graphics line started in 2005-2006 mostly for server motherboards and it is derived from original Matrox MGA G200 graphics adapter made in 1998-1999 but G200e is not 100%-compatible with it and uses separate-made drivers!!!

Matrox Corp. itself does not provide any support for these graphics chips, but server motherboard makers (Dell, IBM, HP, SuperMicro, Tyan) provide it.

There are many types of G200e integrated graphics chips, here are the drivers:

1. Matrox G200e [Pilot] (ServerEngines) iBMC (SEP1) PCI\VEN_102B&DEV_0522, search internet for: - 32-bit Windows Server 2003
tvevdo01sr14.exe - 64-bit Windows Server 2003/2008
tvevdo10sr13.exe - 32-bit Windows Server 2003/2008
tvevdo10sr14.exe - 64-bit Windows Server 2003/2008 - 32-bit Windows Server 2003 - 32/64-bit Windows Server 2003/2008

2. Matrox G200eW (Nuvoton/Winbond) PCI\VEN_102B&DEV_0523, search internet for: - 32/64-bit Windows Server 2003/2008 - 32/64-bit Windows Server 2003/2008
MATROX_G200EW-VIDEO-CONTROLL_A02_R231494.exe - 64-bit Windows Server 2003/2008/2008R2

3. Matrox G200eV (Maxim) PCI\VEN_102B&DEV_0530, search internet for:

matrox_video_dd_1.01.003_winsvr_32-64.exe - 32/64-bit Windows Server 2003/2008
matrox_video_dd_1.01.004_winsvr_32-64.exe - 32/64-bit Windows Server 2003/2008

4. Matrox G200eH PCI\VEN_102B&DEV_0533, search internet for:

cp018072.exe - 64-bit Windows Server 2012

5. Matrox G200eR (Renesas) PCI\VEN_102B&DEV_0534, search internet for:

HP (i.e. Hewlett Packard) has released Windows 2000 compatible WHQL driver for this mostly server-oriented integrated videoadapter which doesn't have OpenGL and Direct3D accleration - only DirectDraw. It has 32 Mb VRAM only, G200eW (Nuvoton/Winbond) has 16 Mb VRAM. I use version marked as Matrox Video Driver for HP ProLiant 100-series Servers. In some cases it marked as Windows 2003 (32-bit) only driver. It is not true, this driver is Windows 2000 compatible. Link is here, its version is, released in 2008:

Type:	Driver - Graphics
Version: (10 Apr 2008)
Operating System(s):	Microsoft Windows Server 2003
File name: (739 KB)
These drivers support 1600x1200 in full SVGA mode, regardless of installed service pack.
Direct link (HP's FTP)

If you wish to add nonstandard video modes to ANY of your Matrox Card you can import this registry file:

; WWW can be: 001, 002, ...
; X can be random GUID code
; YYYY can be: 0000, 0001, 0002, ...
; Z can be: 0, 1, 2, ...
; Gxxx can be G200e, G200eW, mga64, G400, ...
; [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Gxxx\DeviceZ]
; [HKEY_LOCAL_MACHINE\SYSTEM\ControlSetWWW\Services\Gxxx\DeviceZ]
"MGA.SingleResolutions"=hex:80,02,E0,01, \ ; 640 x 480
D0,02,E0,01, \ ; 720 x 480
D0,02,40,02, \ ; 720 x 576
00,03,40,02, \ ; 768 x 576
20,03,58,02, \ ; 800 x 600
50,03,E0,01, \ ; 848 x 480
58,03,E0,01, \ ; 856 x 480
00,04,00,03, \ ; 1024 x 768
00,04,00,05, \ ; 1024 x 1280
00,04,00,06, \ ; 1024 x 1536
80,04,60,03, \ ; 1152 x 864
B0,04,40,06, \ ; 1200 x 1600
00,05,D0,02, \ ; 1280 x 720
00,05,20,03, \ ; 1280 x 800
00,05,00,04, \ ; 1280 x 1024
50,05,FE,02, \ ; 1360 x 766
40,06,00,04, \ ; 1600 x 1024
40,06,B0,04, \ ; 1600 x 1200
40,06,00,05, \ ; 1600 x 1280
00,07,40,05, \ ; 1792 x 1344
08,07,A0,05, \ ; 1800 x 1440
40,07,70,05, \ ; 1856 x 1392
80,07,0A,04, \ ; 1920 x 1034
80,07,38,04, \ ; 1920 x 1080
80,07,B0,04, \ ; 1920 x 1200
80,07,A0,05, \ ; 1920 x 1440
00,08,00,06, \ ; 2048 x 1536
40,01,C8,00, \ ; 320 x 200
40,01,F0,00, \ ; 320 x 240
00,02,80,01, \ ; 512 x 384
80,02,90,01 ; 640 x 400
Problem 12: NVidia Graphics drivers

Solution: Latest OFFICIAL driver (as NVidia shows here) for Windows 2000 is ForceWare Release 90 WHQL 94.24 (May 17, 2007) English.

Supported videocards:

GeForce 6100 nForce 400 , GeForce 6100 nForce 405 , GeForce 6100 nForce 420 , GeForce 6100 , GeForce 6150 LE , GeForce 6150 , GeForce 6200 , GeForce 6200 LE , GeForce 6200 with TurboCache , GeForce 6200SE with TurboCache , GeForce 6500 , GeForce 6600 , GeForce 6600 LE , GeForce 6600 VE , GeForce 6600 GT , GeForce 6610 XL , GeForce 6700 XL , GeForce 6800 , GeForce 6800 LE , GeForce 6800 XE , GeForce 6800 XT , GeForce 6800 GS , GeForce 6800 GT , GeForce 6800 Ultra , GeForce 6800 Ultra , GeForce 7100 GS , GeForce 7200 GS , GeForce 7300 LE , GeForce 7300 SE , GeForce 7300 GS , GeForce 7300 GT , GeForce 7500 LE , GeForce 7600 GS , GeForce 7600 GT , GeForce 7800 GS , GeForce 7800 GT , GeForce 7800 GTX , GeForce 7800 GTX 512 , GeForce 7900 GS , GeForce 7900 GTO , GeForce 7900 GT , GeForce 7900 GTX , GeForce 7950 GX2

However, latest driver that has certification for Windows 2000 is ForceWare Release 197 WHQL 197.45 (April 13, 2010) English.

Supported videocards:

GeForce 300 series:
GT 330, GT 320, GT 340

GeForce 200 series:
GTX 275, GT 220, 210, GTS 250, GTX 285, GT 230, GTS 240, G210, GTX 280, 205, GTX 295, GTX 260, GT 240

GeForce 100 series:
GT 130, GT 140, G 100, GT 120

GeForce 9 series:
9500 GT, 9600 GT, 9400, 9300 GE, 9200, 9400 GT, 9800 GX2, 9300 GS, 9800 GT, 9600 GS, 9100, 9300, 9600 GSO, 9500 GS, 9800 GTX/GTX+

GeForce 8 series:
8800 GT, 8800 GTS, 8600 GT, 8200 / nForce 730a, 8800 GTS 512, 8600 GS, 8400 SE, 8600 GTS, 8800 Ultra, 8400, 8800 GS, 8500 GT, 8300, 8100 / nForce 720a, 8800 GTX, 8400 GS, 8200, 8300 GS

GeForce 7 series:
7900 GT/GTO, 7900 GTX, 7050 / NVIDIA nForce 630i, 7600 GS, 7100 / NVIDIA nForce 620i, 7950 GX2, 7300 LE, 7950 GT, 7300 SE / 7200 GS, 7100 / NVIDIA nForce 630i, 7800 GTX, 7800 SLI, 7650 GS, 7300 GT, 7150 / NVIDIA nForce 630i, 7025 / NVIDIA nForce 630a, 7800 GS, 7900 GS, 7050 / NVIDIA nForce 610i, 7600 GT, 7050 PV / NVIDIA nForce 630a, 7300 GS, 7100 GS, 7600 LE

GeForce 6 series:
6800 GT, 6600 GT, 6600 LE, 6800 LE, 6250, 6800 XE, 6800 GS/XT, 6200 TurboCache, 6700 XL, 6600 VE, 6200 LE, 6150, 6800, 6200SE TurboCache, 6800 Ultra, 6610 XL, 6800 XT, 6100, 6100 nForce 405, 6800 GS, 6600, 6100 nForce 420, 6200, 6150 LE, 6200 A-LE, 6150SE nForce 430, 6500, 6100 nForce 400

ION series:

These drivers (and earlier ones) are Windows 2000 compatible:

GeForce Release 197 WHQL	197.45	April 13, 2010
GeForce/ION Release 197 WHQL	197.13	March 25, 2010
GeForce/ION Release 196 WHQL	196.21	January 19, 2010
GeForce/ION Release 195 WHQL	195.62	November 26, 2009
GeForce/ION Release 191 WHQL	191.07	October 5, 2009
GeForce/ION Release 190 WHQL	190.62	August 21, 2009
GeForce/ION Release 190 WHQL	190.38	July 21, 2009
GeForce/ION Release 186 WHQL	186.18	June 18, 2009
GeForce/ION Release 185 WHQL	185.85	May 7, 2009
GeForce Release 182 WHQL	182.50	April 2, 2009
GeForce Release 182 WHQL	182.08	March 3, 2009
GeForce Release 182 WHQL	182.06	February 18, 2009
GeForce Release 181 WHQL	181.22	January 22, 2009
GeForce Release 181 WHQL	181.20	January 8, 2009


GeForce Release 197 BETA	197.57	May 3, 2010
GeForce/ION Release 197 BETA	197.13	March 17, 2010
GeForce/ION Release 196 BETA	196.34	January 27, 2010
GeForce/ION Release 195 BETA	195.81	December 15, 2009
GeForce/ION Release 195 BETA	195.39	October 30, 2009
GeForce/ION Release 191 BETA	191.03	September 25, 2009
GeForce/ION Release 186 BETA	186.08	June 3, 2009
eForce Release 185 BETA	185.81	April 30, 2009
GeForce Release 182 BETA	182.46	March 23, 2009
GeForce Release 182 BETA	182.05	February 10, 2009
GeForce Release 181 BETA	181.22	January 16, 2009
GeForce Release 180 BETA	180.84	December 9, 2008
eForce Release 177 BETA	177.92	August 26, 2008
GeForce Release 175 BETA	175.16	May 6, 2008
GeForce Release 174 BETA	174.74	March 27, 2008
ForceWare Release 169 BETA	169.44	March 6, 2008

Problem 13: I'm experiencing different compatibility problems with Universal Serial Bus (USB) devices and/or controllers

General USB support: "Out-of-box" Windows 2000 with Service Pack 4 support a lot of USB 1.x and 2.0 devices/controllers.

However in some cases (f.e. when you are installing Windows 2000 on more recent Core2Duo or Core i3/5/7-based systems) different compatibility problems appears. For example, this one:
Motherboard: Intel® Desktop Board DQ67OW

Blue screen while Windows 2000 is starting up:
STOP c000026c unable to load device driver
system32/drivers/usbhub20.sys device driver could not be loaded.
error status was 0x000034

or same error message in GUI (when Windows 2000 are running):
system32/drivers/usbhub20.sys device driver could not be loaded.
error status was 0x000034

Microsoft confirmed some of these problems, see articles:

To access them use this link:, where 890202 is desired hotfix.

Here is a version table (source is here MSFN: USB functional patches for Win2000 after SP4 and R1):


USB Ethernet (802.3) RNDIS network devices and Windows 2000

Remote NDIS (RNDIS) is a bus-independent class specification for Ethernet (802.3) network devices on dynamic Plug and Play (PnP) buses such as USB, 1394, Bluetooth, and InfiniBand. Remote NDIS defines a bus-independent message protocol between a host computer and a Remote NDIS device over abstract control and data channels. Remote NDIS is precise enough to allow vendor-independent class driver support for Remote NDIS devices on the host computer.

Overview: Starting from 2002, Microsoft company released unversal driver MICROSOFT REMOTE NDIS USB KIT for USB 802.3 devices (such as ZTE ZXDSL 831 AII, D-Link DSL2320B etc.), it also contains in Microsoft Activesync 4.x package. This kit included with XP SP2 (and later). For Windows 98*/ME*/2000 separately downloaded package is available.

* For Win9x find and use rndisusb1-1.exe.

  1. Insert our "unsupported" USB RNDIS 802.3 network device in Windows 2000 computer USB-port.
  2. Get its VID/PID, for Yota 3G/4G it is one of these:
    VID_1076&PID_7708 ? "Yota One" Remote NDIS based Internet Sharing Device
    VID_1076&PID_8000 "Gemtek LTE Router" (WLTFGR REV_0100)
    VID_1076&PID_8002 GCT Semiconductor, Inc. [3G]
    VID 1076&PID 8003 RNDIS Device "Yota One" (LU150/LU156)
    VID_0525&PID_a4a2 ? "Yota One"
    VID_0525&PID_a4a5 ? "Yota One"
    VID_15a9&PID_002a ? "Gemtek"
    VID_15A9&PID_002D Gemtek WLTUBA-107 [Yota 4G LTE]
    VID_15A9&PID_0030 Gemtek Wi-Fi Modem Yota 4G LTE
    VID_15A9&PID_003A (Gemtek 4G)
    VID_216f&PID_0043 "Yota Swift" (WLTUBA-107) (CDC-Ethernet)
    VID_216f&PID_0044 "Yota Swift" (WLTUBA-107)
  3. Download MICROSOFT REMOTE NDIS USB KIT - version dated 2005 year, supports Win2000 - RNDIS-USB-Kit_05.exe, link is dead, Google helps.
  4. Needed driver - only 3! files - rndismpy.sys, usb8023y.sys and installation template RNDIS_Template.inf
  5. Using text editor modify in RNDIS_Template.inf from VID_vvvv&PID_pppp to (f.e.) VID_15A9&PID_003A.

USB Composite devices and Windows 2000


  1. Place file with text below (f.e. usbccgp.inf) in \WINNT\INF directory
    ExcludeFromSelect = *
    DefaultDestDir=11               ; LDID_SYS
    CommonClassParent.CopyFiles = 10, system32\drivers
    AddService = usbccgp, 0x00000002, CommonClassParent.AddService
    DisplayName    = %GenericParent.SvcDesc%
    ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
    StartType      = 3                  ; SERVICE_DEMAND_START
    ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
    ServiceBinary  = %12%\usbccgp.sys
    LoadOrderGroup = Base
    GenericParent.SvcDesc="Microsoft USB Generic Parent Driver"
    USB\COMPOSITE.DeviceDesc="USB Composite Device"
  2. Place \WINDOWS\SYSTEM32\DRIVERS\usbccgp.sys file from Windows XP in \WINNT\SYSTEM32\DRIVERS directory

Problem 14: I'm experiencing different compatibility problems with UDF-formatted CD/DVD discs

"Out-of-box" Windows 2000 with Service Pack 4 supports these UDF versions: 1.02, 1.50.

Different compatibility problems appears. For example, this one:

Solution: Use addition third party UDF-enabled software -

Problem 15: In some cases different stability, slowdown problems exists when you are enable HPET timer in BIOS while running Windows 2000

"Out-of-box" Windows 2000 with Service Pack 4 does not support HPET timer properly. It is recommended to disable it.

Direct3D, DirectDraw, DirectShow, DirectX, Microsoft, MS-DOS, Visual C++, Win32, Win32s, Windows, Windows XP, Windows 2003 Server and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

Home page

E-Mail: bearwindows_at_fastmail_dot_com | Last update: December 1st 2014