Subject: Re: SoC: NDIS
To: Alan Ritter <>
From: Frank van der Linden <>
List: tech-kern
Date: 08/01/2005 21:33:51
>I think I may have finally ran into a problem with this.  So far I haven't
>had to make any modifications to the PE code (subr_pe.c), and I've been
>able to call into the binary Windows driver and it's been calling
>NdisXXX() functions just fine.  Right now I'm trying to get through the
>MiniportInitalize() function (inside the Windows binary).  It calls a
>bunch of the Ndis functions to set up the device, then it blows up after
>the following machine instruction:
>jmp ds:0xc0a5d548
>This is what happens when I try to step past it:
>8: x/i $pc 0xc0a5d410 : jmp ds:0xc0a5d548
>(gdb) si
>0x00057fd4 in ?? ()
>8: x/i $pc 0x57fd4: Cannot access memory at address 0x57fd4
>Disabling display 8 to avoid infinite recursion.
>As you can see the program counter is getting set to an invalid memory
>address.  I'm thinking this might be a problem with how the segment
>registers are set up.
Actually, the segment registers look normal for NetBSD purposes (ignore 
the upper bits of what gdb says they are).

I'm not quite sure what gdb disassembles as "jmp ds:XXXXXX". It might 
just be a plain pointer jump, with the pointer being at 0xc0a5d548. What 
is the value at address 0xc0a5d548? What are the bytes in the jmp 

- Frank