使用 RegQueryValueEx 和 HKEY_PERFORMANCE_COUNTER 获取“磁盘字节/秒%”

发布于 2024-10-28 08:38:51 字数 542 浏览 8 评论 0原文

我已经查找了示例和文档,但我仍然无法弄清楚...

如何使用 RegQueryValueEx不是 PdhXxx 函数)来查询某些内容就像磁盘字节/秒

我尝试了以下操作:

DWORD type;
static union { TCHAR Data[32 * 1024]; PERF_DATA_BLOCK Perf; } perf;//Stack buffer
DWORD cbData = sizeof(perf);
LSTATUS s = RegQueryValueEx(HKEY_PERFORMANCE_DATA,
    _T("PhysicalDisk"), NULL, &type, (LPBYTE)&perf, &cbData);
PPERF_OBJECT_TYPE pObjType =
    (PPERF_OBJECT_TYPE)((BYTE*)&perf + perf.Perf.HeaderLength);

但它只返回一个没有数据的标头。 :(

I've looked for examples and documentation, but I still can't figure this out...

How do you use RegQueryValueEx (not the PdhXxx functions) to query for something like Disk Bytes/sec?

I've tried the following:

DWORD type;
static union { TCHAR Data[32 * 1024]; PERF_DATA_BLOCK Perf; } perf;//Stack buffer
DWORD cbData = sizeof(perf);
LSTATUS s = RegQueryValueEx(HKEY_PERFORMANCE_DATA,
    _T("PhysicalDisk"), NULL, &type, (LPBYTE)&perf, &cbData);
PPERF_OBJECT_TYPE pObjType =
    (PPERF_OBJECT_TYPE)((BYTE*)&perf + perf.Perf.HeaderLength);

but it just returns a header with no data. :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南街九尾狐 2024-11-04 08:38:52

您不能像这样通过名称查询数据。相反,您需要通过索引进行查询。 MSDN 可以帮助您编写一些代码找出要查询的适当索引。不幸的是,您需要在运行时确定哪个索引。

例如,以下内容应该检索处理器的性能数据。

LSTATUS s = RegQueryValueEx(HKEY_PERFORMANCE_DATA, _T("238"), NULL,
    &type, (LPBYTE)&perf, &cbData);

You can't query for the data by name like that. Instead, you need to query by index. MSDN can help you with some code to find out the appropriate index to query. Unfortunately, you need to make the determination of which index at run-time.

For example, the following SHOULD retrieve the performance data for the processor.

LSTATUS s = RegQueryValueEx(HKEY_PERFORMANCE_DATA, _T("238"), NULL,
    &type, (LPBYTE)&perf, &cbData);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文