3

我正在编写一个需要启用 UWF 的程序。不幸的是,我没有使用 WMI 接口的经验,而且 UWF 文档没有 C# 或 .NET 示例。

启用 UWF 时,出现异常:“方法参数无效”。但是,根据文档 - https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-filter - Enable 没有输入参数。通过 null 也不起作用:

var scope = new ManagementScope(@"root\standardcimv2\embedded");
var uwfClass = new ManagementClass(scope.Path.Path, "UWF_Filter", null);
var inputParameters = uwfClass.GetMethodParameters("Enable");
var result = uwfClass.InvokeMethod("Enable", inputParameters, null);
4

1 回答 1

3

好吧,经过一番头疼,我终于知道为什么它不起作用了。ManagementClass 只代表一个类,而不是对象(实例)。为了使它工作,我需要调用实例上的方法:

var instances = uwfClass.GetInstances();

foreach (ManagementObject instance in instances)
{
    var result = instance.InvokeMethod("Enable", null);
    break; //There should only be one instance, but to be sure, exit after first instance
}

如果您不习惯 WMI,这可能是合乎逻辑的,但不是很明显。

于 2018-08-29T14:25:26.490 回答