Jump to content

Packet Driver > NDIS2 > Win9x?


awkduck

Recommended Posts

I know you can use a "real mode" NDIS2 driver with Win9x. And I know you can provide a virtual packet driver, for use in Windows Dos Prompts. But is there a packet driver to NDIS2 shim, so that you can base all your "in Windows" network connectivity off a packet driver?

A discussion on Dosemu2's Github, provided PKTNDIS, but I think that it is only for NDIS(1).

Any Ideas? 

Link to comment
Share on other sites


Alternatively, I thought about "Packet Driver > ODI > Win9x"

I've tried PDEther, a packet driver to ODI tool. But it only supports frame type Ethernet_II. Windows networking "Existing ODI Driver" expects Ethernet_II, *_802.2, *_802.3, and *_SNAP. So it did not work out.

Link to comment
Share on other sites

On 2/4/2023 at 2:34 AM, awkduck said:

I think that it is only for NDIS(1).

No. It is shim Packet Interface -> NDIS2 Interface. But to use shim you need the lower level of shim - packet driver itself

 

On 2/5/2023 at 8:57 AM, awkduck said:

Windows networking "Existing ODI Driver" expects Ethernet_II, *_802.2, *_802.3, and *_SNAP.

ODI is flexible enough and ethernet frame types can be restricted by ODI itself. And it is never be a problem if network protocol does not use all frame types (and IP uses exactly Ethernet_II).

Link to comment
Share on other sites

Hi, SweetLow.

9 hours ago, SweetLow said:

No. It is shim Packet Interface -> NDIS2 Interface. But to use shim you need the lower level of shim - packet driver itself

Yes, that I have. There is a section in "PROTOCOL.INI" where you set the interrupt of the packet driver.

[PKTNDIS_NIF$]
DriverName=PKTNDIS$
interrupt=0x60

Net start fails to completely bind. Here is the complete "PROTOCOL.INI"

[NDISHLP$]
DriverName=NDISHLP$
Bindings=PKTNDIS_NIF$

[PROTMAN$]
DriverName=PROTMAN$
priority=NDISHLP$

[DATA]
version=v4.10.2029
netcards=PKTNDIS_NIF$

[PKTNDIS$]
devdir=C:\WINDOWS\PKTNDIS.DOS
device=PKTNDIS.DOS,@devdir\PKTNDIS.DOS

[PKTNDIS_NIF$]
DriverName=PKTNDIS$
interrupt=0x60

The shim "PKTNDIS" loads, after the packet driver, and displays that it is using interrupt 0x60.

The packet driver is also set to interrupt 0x60.

9 hours ago, SweetLow said:

ODI is flexible enough and ethernet frame types can be restricted by ODI itself. And it is never be a problem if network protocol does not use all frame types (and IP uses exactly Ethernet_II).

Hmm. You could be right. I haven't had very much experience using ODI with Win9x. The only reason I've "assumed" that it needed those other frame types, was because Win98 automatically adds them to "NET.CFG".

Since PDEther does not support them, it will not load at boot time. If you remove them, leaving only Ethernet_II, Windows has no connectivity.

Edited by awkduck
Link to comment
Share on other sites

>Yes, that I have. 

But is it working as pure packet driver? Did you test it without any shims (in pure DOS) and have success (like working ping)?

>I haven't had very much experience using ODI with Win9x.

I'm too, but it is not hard to test. Probably i will try to do this from pure curiosity but not so fast.

Link to comment
Share on other sites

11 hours ago, SweetLow said:

But is it working as pure packet driver?

mTCP programs are establishing connections correctly.

 

9 hours ago, deomsh said:

Did you edited the transport key? Maybe other keys too...

HKLM\Software\Microsoft\Windows\Real Mode Net

netcard "pktndis.dos"

transport "ndishlp.sys"

Good pointer deomsh,

I didn't know about those settings, but above is what is listed.

8 hours ago, jumper said:

Much too high? It's not an I/O port.

Hey jumper. That is actually the standard interrupt vector for packet drivers.

----

I still think that the Windows "ODIHLP.EXE" expects those extra frames, for NDIS3 mapping. Or PDEther isn't feature complete enough.

I tested a real ODI driver, and each frame type is listed as a board that "ODIHLP.EXE" binds to. PDEther does not even list Ethernet_II when "ODIHLP.EXE" is attempting to bind. The result is:

bound to adapter PDETHER
Error: not bound to any boards

EDIT: I guess Ethernet_II doesn't get listed anyway?

I'm pretty sure the NET.CFG for PDEther is set correctly.

Here it is:

Link Support
	Buffers 8 1600
Link Driver PDETHER
	Int 0x60
	frame ETHERNET_II
	Protocol IP 800 Ethernet_II
	Protocol ARP 806 Ethernet_II
	Protocol RARP 8035 Ethernet_II

 

Edited by awkduck
Link to comment
Share on other sites

4 hours ago, awkduck said:
13 hours ago, deomsh said:

Did you edited the transport key? Maybe other keys too...

HKLM\Software\Microsoft\Windows\Real Mode Net

netcard "pktndis.dos"

transport "ndishlp.sys"

Good pointer deomsh,

I didn't know about those settings, but above is what is listed.

Earlier I wrote in:

So in your case you can try to change value of transport to: ndishlp.sys,pktndis.dos
However your setup is different.

Otherwise study old Windows 3.11 SYSTEM.INI's - from Windows 95 onwards those entries are moved to the registry.

Netcard-INF;s containing NDIS2 are good to study too.

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...