All the NetAdapter powershell cmdlets are thin wrappers over WMI objects. So you can indeed use the Microsoft.Management.Infrastructure
namespace directly.
In this case, you'd enumerate instances of root\standardcimv2\MSFT_NetAdapter
to look at their Name
and DriverMajorNdisVersion
fields.
This isn't a complete tutorial on the MI APIs, but here's a pseudocode sketch of the idea:
var session = CimSession.Create(. . .);
foreach (var instance in session.EnumerateInstances(@"root\standardcimv2", "MSFT_NetAdapter")) {
var name = instance.CimInstanceProperties["Name"].Value as string;
var major = instance.CimInstanceProperties["DriverMajorNdisVersion"].Value as byte;
WriteLine($"{name}: {major}.{minor}");
}