获取NDIS版本?

时间:2016-11-07 08:07:12

标签: c# vb.net ndis

我知道我可以使用Windows PowerShell

Get-netadapter|select Name, ndisversion

将结果传递给文本文件,然后从那里解析数据,但这有点像hacky。我想知道是否有办法使用更直接的东西获得相同的信息?即WMI或Framework类等?我用Google搜索了,但空手而归。

1 个答案:

答案 0 :(得分:4)

所有NetAdapter powershell cmdlet都是WMI对象上的瘦包装器。所以你确实可以直接使用Microsoft.Management.Infrastructure命名空间。

在这种情况下,您要枚举root\standardcimv2\MSFT_NetAdapter的实例,以查看其NameDriverMajorNdisVersion字段。

这不是关于MI API的完整教程,但这里是这个想法的伪代码草图:

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}");
}