获取 NDIS 版本?

J. *_*ein 2 c# vb.net ndis

我知道我可以使用 Windows PowerShell

Get-netadapter|select Name, ndisversion

将结果通过管道输出到文本文件,并从那里解析数据,但这有点麻烦。我想知道是否有办法使用更直接的方法来获取相同的信息?即 WMI 或框架类等?我用谷歌搜索过,但空手而归。

Jef*_*pet 5

所有 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}");
}
Run Code Online (Sandbox Code Playgroud)