Jump to content

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


Recommended Posts


Posted (edited)

@Dietmar

Realtek driver 2018 work but only if reboot PC. disable then enable in device manager not help - need restart after install.

https://pastebin.com/bdWaG7Qq

NOPowersaving version - still not work.

I think this is not power problem. I think that the problem is the bad connection speed - always 1 Gbps and should be 100 Mbps because my old router works only in 100 Mbps

In WinDbg I see Link 100 Mbps:

I219IndicateMediaState
vs7_3_6gR_irq: LinkState -> DOWN 100Mb HD
I219LinkFromStatus
I219IndicateMediaState
vs7_3_6gR_irq: LinkState -> UP 100Mb FD

but in Windows connection status is still 1.0 Gbps

On Dell Wyse Realtek card is GBE but works at 100 Mbps

Edited by reboot12
Posted

@reboot12

We continue with this NoPowersaving version.

I agree, that this is a problem with link speed,

so lets look

Dietmar

.logopen /t c:\i219_nextsteps.log
.reload /f
lm m i219
lm m ndis
bc *

bp NDIS!NdisMSetAttributesEx "r $t0=poi(@esp+8); .printf \"CTX=%p\n\", $t0; gc"

bu i219!I219OidSetInfo ".printf \"OIDS OID=%08x Len=%u Buf=%p\n\", poi(@esp+8), poi(@esp+0x10), poi(@esp+0x0c); .if (poi(@esp+8)==0x0001010e) { .printf \"PF=%08x\n\", poi(poi(@esp+0x0c)); } ; gc"
bu i219!I219OidQueryInfo ".printf \"OIDQ OID=%08x Len=%u\n\", poi(@esp+8), poi(@esp+0x10); gc"

bm i219!*Send*Packets*
bm i219!*Return*Packet*
bm i219!*Isr*
bm i219!*HandleInterrupt*
bu i219!I219PollTimerFunc ".echo I219PollTimerFunc; gc"

bm NDIS!NdisMIndicateReceive*
bm NDIS!NdisMIndicateReceivePacket*
bm NDIS!ndisMIndicateStatus*
bm NDIS!ndisMIndicateStatusComplete*

bu i219!I219IndicateMediaState "r $t1=poi($t0+@@c++(&((i219!_I219_ADAPTER*)0)->Regs)); .printf \"MEDIA=%u CTRL=%08x STATUS=%08x IMS=%08x RCTL=%08x TCTL=%08x\n\", poi(@esp+8), poi($t1+0), poi($t1+8), poi($t1+0xd0), poi($t1+0x100), poi($t1+0x400); gc"
bu i219!I219LinkFromStatus "r $t1=poi($t0+@@c++(&((i219!_I219_ADAPTER*)0)->Regs)); .printf \"LINK CTRL=%08x STATUS=%08x\n\", poi($t1+0), poi($t1+8); gc"

g

 

Posted

@reboot12

The lan chip i219-LM

.logopen /t c:\i219_dhcp_next.log
.reload /f i219.sys
bc *

bu i219!I219MiniportInitialize ".echo I219MiniportInitialize; gc"
bu i219!I219IndicateMediaState ".echo I219IndicateMediaState; gc"

bu i219!I219MiniportSetInformation ".printf \"SET OID=%08x LEN=%u BUF=%p\n\", poi(@esp+8), poi(@esp+0x10), poi(@esp+0x0c); .if (poi(@esp+8)==0x0001010e) { .printf \"PF=%08x\n\", poi(poi(@esp+0x0c)); } ; gc"
bu i219!I219MiniportQueryInformation ".printf \"QRY OID=%08x LEN=%u\n\", poi(@esp+8), poi(@esp+0x10); gc"

bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u ARR=%p\n\", poi(@esp+0x0c), poi(@esp+8); gc"
bu ndis!NdisMSendComplete ".echo NdisMSendComplete; gc"

bu ndis!NdisMEthIndicateReceive ".printf \"RX H=%u LA=%u PKT=%u\n\", poi(@esp+0x10), poi(@esp+0x18), poi(@esp+0x1c); gc"
bu ndis!NdisMEthIndicateReceiveComplete ".echo RXC; gc"

bu i219!I219MiniportISR ".echo ISR; gc"
bu i219!I219MiniportHandleInterrupt ".echo HINT; gc"
bu i219!I219RxPoll ".echo RxPoll; gc"

bu ndis!NdisMIndicateStatus ".printf \"STAT GS=%08x SZ=%u\n\", poi(@esp+8), poi(@esp+0x10); gc"
bu ndis!NdisMIndicateStatusComplete ".echo STATC; gc"

g

is alive, so for sure it is not a power saving problem.

Here is next

Dietmar

Posted

@reboot12

Here ist next

Dietmar

.logopen /t c:\i219_dhcp_trace3.log
.reload /f i219.sys
bc *
bp nt!DebugService2 "gc"

bu i219!I219MiniportInitialize ".echo INIT; gc"
bu i219!I219IndicateMediaState ".echo MEDIA; gc"

bu i219!I219DoCtrlKickLate ".echo CTRLKICK; gc"
bu i219!I219TxRxStart ".echo TXRXSTART; gc"

bu i219!I219MiniportQueryInformation ".printf \"QRY OID=%08x LEN=%u\n\", poi(@esp+8), poi(@esp+0x10); gc"

bu i219!I219MiniportSetInformation ".printf \"SET OID=%08x LEN=%u BUF=%p\n\", poi(@esp+8), poi(@esp+0x10), poi(@esp+0x0c); r $t0=poi(@esp+4); .printf \"PFcur=%08x LAcur=%08x\n\", poi($t0+4), poi($t0+8); .if (poi(@esp+8)==0x0001010e) { .printf \"PFnew=%08x\n\", poi(poi(@esp+0x0c)); } .if (poi(@esp+8)==0x0001010f) { .printf \"LAnew=%u\n\", poi(poi(@esp+0x0c)); } gc"

bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u ARR=%p\n\", poi(@esp+0x0c), poi(@esp+8); gc"
bu i219!I219TxSendOne ".echo TXONE; gc"
bu i219!I219TxReclaim ".echo TXRECLAIM; gc"
bu i219!I219RxPoll ".echo RXPOLL; gc"

bu i219!I219MiniportISR ".echo ISR; gc"
bu i219!I219MiniportHandleInterrupt ".echo HINT; gc"

g

 

Posted

@reboot12

And here is already next

Dietmar

.logopen /t c:\i219_bind_or_rx.log
.reload /f i219.sys
bc *

bu i219!I219MiniportQueryInformation ".printf \"QRY OID=%08x LEN=%u\n\", poi(@esp+8), poi(@esp+0x10); gc"
bu i219!I219MiniportSetInformation ".printf \"SET OID=%08x LEN=%u\n\", poi(@esp+8), poi(@esp+0x10); .if (poi(@esp+8)==0x0001010e) { .printf \"PF=%08x\n\", poi(poi(@esp+0x0c)); } ; gc"
bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(@esp+0x0c); gc"
bu ndis!NdisMEthIndicateReceive ".echo RX; gc"
g

 

Posted

@reboot12

Here it is much more comfortable for me,

because I can use ChatGPT for to check all Windbg orders for syntax order. In Webchat I cant handle it like this here.

And in the same time I always try to build a new i219.sys which is impossible with a lot of open windows.

Later, when everything works, we can delete those entries here all

Dietmar

Posted
2 minutes ago, Dietmar said:

Later, when everything works, we can delete those entries here all

OK, maybe you right.

To test your command I always do it before - is this needed?
 

!sym noisy
.reload /f 

sxe ld:i219
sxe ud:i219
g
.reload /f i219.sys
lm m i219

your new commands

 

Posted

@reboot12

Yes, because the driver may be unloaded and then you have no symbols for it, because the i219.pdb was then also unloaded.

This was all the time a problem for me,

so I solved it via this way

Dietmar

Posted

@Dietmar

I copy and paste each line into WinDbg and hit enter - it's very tiring. Can it be somehow speed up or automated? Honestly, I don't want to enter so many lines of data into WinDbg every time :( Before each use of new commands, I turn off the computer with i219 and close WinDbg, now I run WinDbg and then boot PC with i219 in debug mode :crazy:

Posted

@Dietmar

But way I need make reload before your command

.reload /f i219.sys
lm m i219

and you next command is one more time same command:

.reload /f i219.sys

I think is this is not nedded twice.

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