Jump to content

Updated drivers for Windows XP SP3 and Windows 2003 SP2 (x32/x64) for modern hardware


Recommended Posts

Posted

@Dietmar

  • symbols installed in c:\symbols
  • copy i219.pdb LM v5 to c:\symbols\sys
  • boot.ini with /break option
  • start WinDbg on COM 115200
    kd> .sympath c:\symbols
    Symbol search path is: c:\symbols
    Expanded Symbol search path is: c:\symbols
    
    ************* Symbol Path validation summary **************
    Response                         Time (ms)     Location
    OK                                             c:\symbols
    kd> .reload
    Connected to Windows XP 2600 x86 compatible target at (Mon Feb 23 13:08:12.187 2026 (UTC + 1:00)), ptr64 FALSE
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe - 
    Loading Kernel Symbols
    ...................................
    Loading User Symbols
    
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for halmacpi.dll - 
    
    ************* Symbol Loading Error Summary **************
    Module name            Error
    ntkrpamp               The system cannot find the file specified
    halmacpi               PDB not found : c:\symbols\symbols\dll\halmacpi.pdb
    
    You can troubleshoot most symbol related issues by turning on symbol loading diagnostics (!sym noisy) and repeating the command that caused symbols to be loaded.
    You should also verify that your symbol search path (.sympath) is correct.
  • .sympath /v - this command make error
    kd> !sym noisy
    noisy mode - symbol prompts on
  • Some files pdb mismatched and some probably loaded OK
    kd> .reload /f
    Connected to Windows XP 2600 x86 compatible target at (Mon Feb 23 13:11:28.031 2026 (UTC + 1:00)), ptr64 FALSE
    DBGHELP: c:\symbols\ntkrpamp.pdb - file not found
    DBGHELP: c:\symbols\exe\ntkrpamp.pdb - mismatched pdb
    DBGHELP: c:\symbols\symbols\exe\ntkrpamp.pdb - file not found
    DBGHELP: ntkrpamp.pdb - file not found
    DBGHELP: Couldn't load mismatched pdb for ntkrpamp.exe
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe - 
    DBGHELP: nt - export symbols
    Loading Kernel Symbols
    .
    DBGHELP: c:\symbols\halmacpi.pdb - file not found
    DBGHELP: c:\symbols\dll\halmacpi.pdb - mismatched pdb
    DBGHELP: c:\symbols\symbols\dll\halmacpi.pdb - file not found
    DBGHELP: halmacpi.pdb - file not found
    DBGHELP: Couldn't load mismatched pdb for halmacpi.dll
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for halmacpi.dll - 
    DBGHELP: hal - export symbols
    .
    DBGHELP: c:\symbols\kdcom.pdb - file not found
    
    DBGHELP: kdcom - public symbols  
            c:\symbols\dll\kdcom.pdb
    .
    DBGHELP: c:\symbols\bootvid.pdb - file not found
    
    DBGHELP: BOOTVID - public symbols  
            c:\symbols\dll\bootvid.pdb
    
    ....
    
    ************* Symbol Loading Error Summary **************
    Module name            Error
    ntkrpamp               The system cannot find the file specified
    				The SYMSRV client failed to find a file in the UNC store, or there
    				is an invalid UNC store (an invalid path or the pingme.txt file is
    				not present in the root directory), or the file is present in the
    				symbol server exclusion list.
    
    halmacpi               PDB not found : c:\symbols\symbols\dll\halmacpi.pdb
    				Unable to locate the .pdb file in this location
    
    ACPI                   PDB not found : c:\symbols\symbols\sys\acpi.pdb
    				Unable to locate the .pdb file in this location
    
    pci                    PDB not found : c:\symbols\symbols\sys\pci.pdb
    				Unable to locate the .pdb file in this location
    
    isapnp                 PDB not found : c:\symbols\symbols\sys\isapnp.pdb
    				Unable to locate the .pdb file in this location
    
    sdbus                  PDB not found : c:\symbols\symbols\sys\sdbus.pdb
    				Unable to locate the .pdb file in this location
    
    ntoskrn8               PDB not found : c:\symbols\symbols\sys\ntoskrn8.pdb
    				Unable to locate the .pdb file in this location
    
    sdstor                 PDB not found : c:\symbols\symbols\sys\sdstor.pdb
    				Unable to locate the .pdb file in this location
    
    compbatt               PDB not found : c:\symbols\symbols\sys\compbatt.pdb
    				Unable to locate the .pdb file in this location
    
    BATTC                  PDB not found : c:\symbols\symbols\SYS\battc.pdb
    				Unable to locate the .pdb file in this location
    
    PCIIDEX                PDB not found : c:\symbols\symbols\SYS\pciidex.pdb
    				Unable to locate the .pdb file in this location
    
    intelide               PDB not found : c:\symbols\symbols\sys\intelide.pdb
    				Unable to locate the .pdb file in this location
    
    MountMgr               PDB not found : c:\symbols\symbols\sys\mountmgr.pdb
    				Unable to locate the .pdb file in this location
    
    dmio                   PDB not found : c:\symbols\symbols\sys\dmio.pdb
    				Unable to locate the .pdb file in this location
    
    PartMgr                PDB not found : c:\symbols\symbols\sys\partmgr.pdb
    				Unable to locate the .pdb file in this location
    
    VolSnap                PDB not found : c:\symbols\symbols\sys\volsnap.pdb
    				Unable to locate the .pdb file in this location
    
    atapi                  PDB not found : c:\symbols\symbols\sys\atapi.pdb
    				Unable to locate the .pdb file in this location
    
    iaStorAC               PDB not found : c:\symbols\symbols\sys\iaStorAC.pdb
    				Unable to locate the .pdb file in this location
    
    storport               PDB not found : c:\symbols\symbols\sys\storport.pdb
    				Unable to locate the .pdb file in this location
    
    genahci                PDB not found : c:\symbols\symbols\sys\genahci.pdb
    				Unable to locate the .pdb file in this location
    
    stornvme               PDB not found : c:\symbols\symbols\sys\stornvme.pdb
    				Unable to locate the .pdb file in this location
    
    disk                   PDB not found : c:\symbols\symbols\sys\disk.pdb
    				Unable to locate the .pdb file in this location
    
    CLASSPNP               PDB not found : c:\symbols\symbols\SYS\classpnp.pdb
    				Unable to locate the .pdb file in this location
    
    fltMgr                 PDB not found : c:\symbols\symbols\sys\fltMgr.pdb
    				Unable to locate the .pdb file in this location
    
    sr                     PDB not found : c:\symbols\symbols\sys\sr.pdb
    				Unable to locate the .pdb file in this location
    
    KSecDD                 PDB not found : c:\symbols\symbols\sys\ksecdd.pdb
    				Unable to locate the .pdb file in this location
    
    Ntfs                   PDB not found : c:\symbols\symbols\sys\ntfs.pdb
    				Unable to locate the .pdb file in this location
    
    NDIS                   PDB not found : c:\symbols\symbols\sys\ndis.pdb
    				Unable to locate the .pdb file in this location
    
    Mup                    PDB not found : c:\symbols\symbols\sys\mup.pdb
    				Unable to locate the .pdb file in this location
    
    agp440                 PDB not found : c:\symbols\symbols\sys\agp440.pdb
    				Unable to locate the .pdb file in this location
  • Now tried with i219:
    kd> sxe ld:i219
    kd> sxe ud:i219
    Couldn't resolve error at 'i219'
    kd> g
    DBGHELP: D:\Pobieranie\windbg_x86\x86\ntdll.dll - file not found
    DBGHELP: D:\Pobieranie\windbg_x86\x86\ntdll.dll - file not found
    DBGHELP: ntdll.dll not found in c:\symbols
    DBGHELP: ntdll.dll not found in c:\symbols
    DBGENG:  ntdll.dll - Image mapping disallowed by non-local path.
    DBGHELP: No debug info for ntdll.dll.  Searching for dbg file
    DBGHELP: c:\symbols\ntdll.dbg - file not found
    DBGHELP: c:\symbols\dll\ntdll.dbg - file not found
    DBGHELP: c:\symbols\symbols\dll\ntdll.dbg - path not found
    DBGHELP: .\ntdll.dbg - file not found
    DBGHELP: .\dll\ntdll.dbg - path not found
    DBGHELP: .\symbols\dll\ntdll.dbg - path not found
    DBGHELP: ntdll.dll missing debug info.  Searching for pdb anyway
    DBGHELP: c:\symbols\ntdll.pdb - file not found
    
    DBGENG:  ntdll.dll has mismatched symbols - type ".hh dbgerr003" for details
    DBGHELP: ntdll - public symbols  
            c:\symbols\dll\ntdll.pdb - unmatched
    nt!RtlUnwind+0xdc0:
    80530ea6 cc              int     3
    0: kd> .reload /f i219.sys
    
    
    Press ctrl-c (cdb, kd, ntsd) or ctrl-break (windbg) to abort symbol loads that take too long.
    Run !sym noisy before .reload to track down problems loading symbols.
    
    DBGHELP: c:\symbols\i219.pdb - file not found
    
    DBGHELP: i219 - private symbols & lines 
            c:\symbols\sys\i219.pdb
    0: kd> lm m i219
    start    end        module name
    ba948000 ba950280   i219       (private pdb symbols)  c:\symbols\sys\i219.pdb

    What next? g for GO ?


Posted

@reboot12

 

Copy and paste and give each in one block to KD:

lmv m i219
.reload /f i219.sys
x i219!*Miniport*
x i219!I219*
!drvobj i219 7

 

then

bu i219!I219MiniportInitialize
bu i219!I219IndicateMediaState
bu i219!I219MiniportQueryInformation
bu i219!I219MiniportSetInformation
bu i219!I219MiniportISR
bu i219!I219MiniportHandleInterrupt
bu i219!I219TxSendOne
bu i219!I219TxReclaim
bu i219!I219RxPoll
g

 

send me results

Dietmar

 

 

Posted (edited)

@reboot12

.logopen /t c:\i219_kd.log
.reload /f i219.sys
lmv m i219
bc *

bu i219!I219MiniportInitialize
bu ndis!NdisMMapIoSpace
bu i219!I219IndicateMediaState
bu i219!I219MiniportQueryInformation
bu i219!I219MiniportSetInformation
bu i219!I219DetectPhyAddr
bu i219!I219MdicRead
bu i219!I219MdicWrite
bu i219!I219DisableUlpPhy
bu i219!I219LowPowerExitFixup
bu i219!I219LinkFromStatus
bu i219!I219PollTimerFunc
bu i219!I219MiniportISR
bu i219!I219MiniportHandleInterrupt
bu i219!I219MiniportSendPackets
bu i219!I219TxSendOne
bu i219!I219TxReclaim
bu i219!I219RxPoll

g

kv
r
dd esp L20

dd esp L20
r $t0=poi(esp+4)
gu
dd $t0 L1
r $t1=poi($t0)
dd $t1+8 L1

kv
r
dd esp L20
r $t0=poi(esp+4)
dt i219!_I219_ADAPTER $t0 LinkState LinkIndicated PacketFilter HasMmio HasPhy InterruptRegistered IrqHits IrqSeen
r $t1=((i219!_I219_ADAPTER*)$t0)->Regs
dd $t1+8 L1

kv
r
dd esp L20
dd esp+8 L1
gu
r eax

!irq
dd i219!g_TxSubmits L1
dd i219!g_TxCompletes L1
dd i219!g_TxErrors L1
dd i219!g_RxFrames L1
dd i219!g_RxErrors L1
.logclose

It is very difficult to explain each step for me and not to destroy the commands.

When you have ChatGPT, you can put the answer from Windbg with copy and paste there and just ask for next steps.

ChatGPT does not know all about the Syntax of this Windbg version, so it will be a lot of try and error.

Now I am going to restaurant, will be back at about 19:00

Dietmar

 

Edited by Dietmar
Posted (edited)

Here is a new version of RTL8125 for XP SP3.

I succeed, what even not win10 manages,

to let it run on pure legacy IRQs.

This makes it fast as much as possible, <1ms ping to DHCP router

Dietmar

 

Edited by Dietmar
Posted
7 minutes ago, Dietmar said:

Here is a new version of RTL8125 for XP SP3.

I succeed, what even not win10 manages,

to let it run on pure legacy IRQs.

This makes it fast as much as possible, <1ms ping to DHCP router

Dietmar

https://www.upload.ee/files/19103023/RTL8125forXPSP3Version3.zip.html

I'm curious, why are you no longer releasing source? It would be nice to have that to be able to make a x64 driver.

Posted

@Dietmar

This forum has a very low number of views - on average 5 users per day, so few people know that you made such drivers and there is no one to test them. I suggest making the drivers available somewhere that is more popular, e.g. record a short video on YouTube.

Maybe also create topic on MDL forum - average members per day is about 100 but posts are hidden if you no account.

Posted

@reboot12

I make a new i219v3 for you with new i219.inf and put its i219.pdb also in it.

After my experiance with the RTL8125 driver yesterday I come to the idea,

that maybe your compi needs just more information durring install from the i219.inf .

Uninstall your old i219 in Device Manager.

And then "search for new hardware". And point to this new i219.inf .

If you get a message, that the device cant be found, click right on this i219.inf and click "install".

Then reboot compi,

Then point again in Device Manager to the i219. Do not delete this time the i219 there.

Just "update driver" and show it to this new i219.inf.

I just test this methode on my compi with the same i219-LM as yours,

good luck

Dietmar

https://www.upload.ee/files/19105087/i219LMV3mitneuer_INF.zip.html

Posted (edited)

@Dietmar

Not work, 0 sent / 0 receive :(

I have my own way to change the driver in WinXP and it always works - have been using it for many years:

  • uninstall driver from Device Manager
  • search oemx.inf file for the previous installed driver in WINDOWS\inf directory then delete this file (delete also same name oemx.PNF but not necessary)
    oemx-delete.png
  • in Device Manager click the computer name at the very top and then Scan for hardware changes button
    scan.png
  • now WinXP finds new hardware where you need to indicate the location of the new driver and install it
    found-new-hardware1.png found-new-hardware2.png
Edited by reboot12
Posted

I debug WinXP SP2 so I need install WindowsXP-KB835935-SP2-slp-Symbols.exe instead WindowsXP-KB936929-SP3-x86-symbols-full-ENU.exe

Now WinDbg find all .pdb files except those for custom drivers:
 

************* Symbol Loading Error Summary **************
Module name            Error
ACPI                   PDB not found : c:\symbols\symbols\sys\acpi.pdb
				Unable to locate the .pdb file in this location

sdbus                  PDB not found : c:\symbols\symbols\sys\sdbus.pdb
				Unable to locate the .pdb file in this location

ntoskrn8               PDB not found : c:\symbols\symbols\sys\ntoskrn8.pdb
				Unable to locate the .pdb file in this location

sdstor                 PDB not found : c:\symbols\symbols\sys\sdstor.pdb
				Unable to locate the .pdb file in this location

iaStorAC               PDB not found : c:\symbols\symbols\sys\iaStorAC.pdb
				Unable to locate the .pdb file in this location

storport               PDB not found : c:\symbols\symbols\sys\storport.pdb
				Unable to locate the .pdb file in this location

genahci                PDB not found : c:\symbols\symbols\sys\genahci.pdb
				Unable to locate the .pdb file in this location

stornvme               PDB not found : c:\symbols\symbols\sys\stornvme.pdb
				Unable to locate the .pdb file in this location

Why on this list not i219 driver ???

Posted (edited)

@Dietmar

I added an RTC8125.rc resources file to your project just for the aesthetics, it's nicer with one.

https://buzzheavier.com/ziftf00d8rg9

Also, when I build this with the windows 7 DDK - I got an inconsistent DLL linking error in NdisMInitializeScatterGatherDma and had to use #pragma warning(disable:4273) to get it to compile.

Is that normal?

Edited by Damnation
Posted

@Dietmar

On the topic of NICs, I have an industrial ETX carrier board that has a late revision Realtek 8168 chipset (Rev. 15) that I would like to try and get working in Windows 98 SE. It works just fine in XP with Realtek's XP driver but transporting that same driver over to 98 causes a BSOD in NDIS.VXD, and the 98 driver on Realtek's website just gives a yellow exclamation mark if I install it, so I'd like to try and make a win98 driver following your example.

Can you link me to the hardware documentation you've been using to make this these drivers?

Posted

@Damnation

Hi,

I just look. how Linux, Reactos and FreeBSD build those drivers, look for their Source Code which is online available.

And I use ChatGPT for to find online all the values for needed registers. Always I doublecheck this values.

Then I start to build a sceleton of a driver, that just installs, without any send or get function.

Via this way I can check all the time Bsods, Code 37, 39, 10 with Windbg and solve one by one. I really get much better in using Windbg.

For to interpret all the for me unknown output from Windbg, I also use ChatGPT but this Interpretation was correct only in about 50%.

3 years ago I build my own small KI. And via this knowledge I know very good, how you need to ask a Ki for to get a not stupid answer.

It happens a lot f times, that forums etc. tell wrong things, so I wonder how they ever can make a working driver from this information.

Do you tested a Lan driver (i219 or RTL8125) from me and does it work?

Yes, this warning happens to me also. At a place I make another definition of a function, that I define at another place before.

The checked version compiles just with this warning, for the free version I have to delete this second definition of the function,

as I remember just 15 lines cut

Dietmar

Posted

@reboot12

A lot of times I had the same problem with the Symbols for Windbg.

But here you wrote the solution from yourself.

Windbg is looking for its symbols in

c:\symbols\symbols\sys\

so just be kind to Windbg and copy and paste all your symbols to this place also

Dietmar

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