C# Win32_PageFileUsage WMI调用为CurrentUsage返回0

C# Win32_PageFileUsage WMI调用为CurrentUsage返回0,c#,.net,wmi,C#,.net,Wmi,我正在查询基于Windows的系统上当前页面文件的使用情况。这意味着要在.NET Framework 2.0 SP1版上运行,并且已经在Windows Vista、Windows 7、Windows Server 2003 R2和Windows Server 2008上进行了测试(并且有效!) 在Windows Server 2003 SP2(原始版本,而不是R2)上,它似乎返回0: using (var query = new ManagementObjectSearcher("SELECT

我正在查询基于Windows的系统上当前页面文件的使用情况。这意味着要在.NET Framework 2.0 SP1版上运行,并且已经在Windows Vista、Windows 7、Windows Server 2003 R2和Windows Server 2008上进行了测试(并且有效!)

在Windows Server 2003 SP2(原始版本,而不是R2)上,它似乎返回0:

using (var query = new ManagementObjectSearcher("SELECT CurrentUsage FROM Win32_PageFileUsage"))
{
    foreach (ManagementBaseObject obj in query.Get())
    {
        uint used = (uint)obj.GetPropertyValue("CurrentUsage");
        return used;
    }
}
这只是从WMI调用返回的第一行返回结果。即使在使用页面文件时,它也会返回0。当返回较大值时,是什么导致结果为0


它可能是特定于所讨论的机器的东西,可能与操作系统版本无关。我也尝试过使用提升权限和不使用提升权限的方法,结果相同。

WMI提供程序可能正在读取计数器使用的相同统计数据存储


请尝试改用PdhOpenQuery/PdhAddCounter/PdhCollectQueryData。

结果表明该值实际上为零。此特定实例中的宿主提供程序将所有分页内存设置为0 MB。因此,通过WMI返回的数据确实是正确的。

感谢您的回答。在本例中,返回的值是正确的,我有点急于向SO发布问题。:-)