Jump to content

[RTL8125/E1000E/Intel I225]Network Card Driver Saga, Backporting NetAdapterCx


Dibya

Recommended Posts

For Sometimes, Everyone here trying to back port NDIS 6.0+ in quest of having Modern NIC but NDIS 6 will require MSI/MSI-X Interrupt support.MSI/MSI-X interrupt came with significant changes in NTOSKRNL,HAL, PCI & ACPI Bus drivers

Here is another option , NetAdapterCx , It is opensource , it wraps around NDIS with KMDF and make it much easier to write NIC Driver.

https://github.com/Microsoft/Network-Adapter-Class-Extension

Microsoft WDF Source Code:

https://github.com/microsoft/Windows-Driver-Frameworks

Majorly Missing Pieces of  NDIS API are following for  NetAdapterCx where most of it is wrap around KMDF , Existing NDIS 5.X Function , and some NDIS 6.0 function needs to be re implemented

Missing NDIS API: 

NdisAdvanceNetBufferDataStart
NdisAllocateNetBufferAndNetBufferList
NdisAllocateNetBufferListPool
NdisCloseConfiguration
NdisConvertNdisStatusToNtStatus
NdisConvertNtStatusToNdisStatus
NdisFreeNetBufferList
NdisFreeNetBufferListPool
NdisMDeregisterMiniportDriver
NdisMIndicateReceiveNetBufferLists
NdisMIndicateStatusEx
NdisMOidRequestComplete
NdisMPauseComplete
NdisMRestartComplete
NdisMSendNetBufferListsComplete
NdisMSetMiniportAttributes
NdisOpenConfigurationEx
NdisOpenConfigurationKeyByName
NdisReadConfiguration
NdisReadNetworkAddress
NdisRetreatNetBufferDataStart
NdisWdfAsyncPowerReferenceCompleteNotification
NdisWdfChangeSingleInstance
NdisWdfCloseIrpHandler
NdisWdfCreateIrpHandler
NdisWdfDeregisterCx
NdisWdfDeviceControlIrpHandler
NdisWdfDeviceInternalControlIrpHandler
NdisWdfExecuteMethod
NdisWdfGetAdapterContextFromAdapterHandle
NdisWdfGetGuidToOidMap
NdisWdfMiniportDataPathStart
NdisWdfMiniportDereference
NdisWdfMiniportSetPower
NdisWdfMiniportStarted
NdisWdfMiniportTryReference
NdisWdfNotifyWmiAdapterArrival
NdisWdfPnPAddDevice
NdisWdfPnpPowerEventHandler
NdisWdfQueryAllData
NdisWdfQuerySingleInstance
NdisWdfReadConfiguration
NdisWdfRegisterCx
NdisWdfRegisterMiniportDriver
NdisWriteConfiguration

Missing NETIO: 
GetIfEntry2Ex

Obviously their is a cache, Microsoft didn't share build files like .SLN for WDF [Windows Driver Framework] and  NetAdapterCx, i suspect their some files missing even though 98% is their which needs to  be reverse engineered from Windows 10 binary,,

 

Is anyone here who can help reconstruct build file [.sln or msbuild] for WDF and NetAdapterCx?

 

 

Link to comment
Share on other sites


Here is opensource NetAdapterCx driver based on FreeBSD Driver for Realtek RTL8125

https://github.com/coolstar/if_re-win

Bacporting NetadapterCx will allow us to run above driver on XP/2K3 [May be 2000 with Extended Core] as well as to write Intel E1000E & I225-V driver by using their respective BSD Driver as reference.

Their no other way around driver situation other than writing it, OS/2 community member Arcanoae do write NIC driver for OS/2 , we need to start doing same for NT5 OSes.

Link to comment
Share on other sites

9 minutes ago, Damnation said:

@Dibya

So this would be like an NDIS extender? Similar to the existing ntoskrnl extender?

Kinda Yes , but aim is to write own driver on top of NetAdapterCx like above RTL8125, to rewrite NetadapterCx to mainly use NT5 function and then utilize some NDIS 6 function which are absolutely necessary

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