awkduck Posted February 3, 2023 Posted February 3, 2023 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?
awkduck Posted February 5, 2023 Author Posted February 5, 2023 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.
SweetLow Posted February 6, 2023 Posted February 6, 2023 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).
awkduck Posted February 6, 2023 Author Posted February 6, 2023 (edited) 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 February 6, 2023 by awkduck
SweetLow Posted February 7, 2023 Posted February 7, 2023 >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.
deomsh Posted February 7, 2023 Posted February 7, 2023 @awkduck NET is searching in the registry, while in real mode (line in AUTOEXEC.BAT). Did you edited the transport key? Maybe other keys too... Search for 'real mode' in the registry (if I remember well).
jumper Posted February 7, 2023 Posted February 7, 2023 17 hours ago, awkduck said: interrupt=0x60 Much too high? It's not an I/O port.
awkduck Posted February 7, 2023 Author Posted February 7, 2023 (edited) 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 February 7, 2023 by awkduck
deomsh Posted February 7, 2023 Posted February 7, 2023 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.
awkduck Posted February 8, 2023 Author Posted February 8, 2023 @deomsh Thanks for sharing the link. Good stuff. I'll keep poking at it. PKTNDIS seem more likely to work then PDEther. I'll probably try working with a real NDIS2 driver, to first make sure I've wrapped my head around this.
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now