【问题标题】:how do i retrieve hard disk information which is connected to server?Example C /C code?如何检索连接到服务器的硬盘信息?示例 C /C 代码?
【发布时间】:2012-07-04 13:43:43
【问题描述】:

我对 Windows 编程非常陌生。所以你能帮我获取示例程序(C/C++),我可以获取连接到我的服务器的所有硬盘信息。

我使用的是windows 2008 R2 sp1服务器,并且还连接了多个硬盘到服务器。

请帮我获取此信息。

谢谢, Deepesh C.P

【问题讨论】:

  • “所有硬盘信息”是相当模糊的,委婉地说。您的请求越具体,您可能得到的答案就越好。乍一看,“WMI”似乎是一条理所当然的路线,但它是否能提供您需要的信息尚不清楚。

标签: c++ c windows disk


【解决方案1】:

您可以使用 WMI 查询来提取磁盘信息。

SELECT Name,VolumeName from Win32_LogicalDisk WHERE DriveType='3'

搜索 WMI API 使用您可以从 C/C++ 代码执行上述命令。 here 是更多细节和示例代码。

【讨论】:

  • 感谢您的帮助。我使这个查询工作,但使用这个查询我只得到逻辑磁盘详细信息。我的实际要求是获取有关连接到我的服务器的所有硬盘的信息。
  • @user1488334 :使用 Win32_PerfRawData_PerfDisk_PhysicalDisk 类获取物理磁盘信息。您将进入原始性能计数器的所有数据。详情请访问msdn
  • 现在我要上这个课程,但仍然无法从这些参数中验证或获取磁盘的总使用量或总硬盘使用量与当前使用量之间的差异。我想我不完全了解那个参数。请帮我解决这个问题。
  • 不太确定...您可能需要汇总与物理设备 ID 相关联的所有逻辑磁盘的磁盘使用情况(或免费使用情况)。例如。选择 FreeSpace, Size from Win32_LogicalDisk where DeviceID =.
【解决方案2】:

以下 API 一定很有用

DisplayVolumePaths 获取磁盘空闲空间 创建文件

也参考这些链接

http://social.msdn.microsoft.com/Forums/en-CA/vcgeneral/thread/1d4fda3c-885f-46e2-bc32-80c4426510dc

【讨论】:

    【解决方案3】:

    首先我会阅读 Windows API。

    要获取 Windows 系统上的所有逻辑驱动器,请使用

    DWORD WINAPI GetLogicalDrives(void);
    

    DWORD WINAPI GetLogicalDriveStrings(
      __in   DWORD nBufferLength,
      __out  LPTSTR lpBuffer
    );
    

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa364972(v=vs.85).aspx

    【讨论】:

    • 我正在尝试使用 power shell 获取物理磁盘的使用情况。但我无法理解如何使用 Win32_PerfRawData_PerfDisk_PhysicalDisk 进行此操作。请对此提供帮助,这也会对 power shell 有更多的了解。
    猜你喜欢
    • 1970-01-01
    • 2019-07-04
    • 2010-09-29
    • 2011-05-11
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多