Kernel 如何获取有关计算机和设备的信息?

Kernel 如何获取有关计算机和设备的信息?,kernel,libraries,Kernel,Libraries,我一直在寻找获取系统信息的方法,例如总内存、处理器数量、硬盘可用空间等。。问内核的信息,我如何设法做到这一点,从C++,而不使用。系统调用或StultIONFIX结构,通过Kaln.dLLS也许?我发现了很多信息,但使用系统调用,我需要获取系统信息,但不使用创建的库,更像是创建我自己的库,向内核询问这些信息。我知道你说没有系统信息结构,但我想这正是你想要的 从MSDN开始: GetSystemInfo的文档特别指出它在Kernel32.dll中-我想责任到此为止。@Waltermier Murd

我一直在寻找获取系统信息的方法,例如总内存、处理器数量、硬盘可用空间等。。问内核的信息,我如何设法做到这一点,从C++,而不使用。系统调用或StultIONFIX结构,通过Kaln.dLLS也许?我发现了很多信息,但使用系统调用,我需要获取系统信息,但不使用创建的库,更像是创建我自己的库,向内核询问这些信息。

我知道你说没有系统信息结构,但我想这正是你想要的

从MSDN开始:


GetSystemInfo的文档特别指出它在Kernel32.dll中-我想责任到此为止。

@Waltermier Murdnelch如果您发布这些类型的评论,请告诉OP,如果社区决定,他们的问题可以自动转移到那里,并且他们不应该重新发布。通常,社区会看到这涉及到编程,用户会投票决定是否关闭,所以在XYZ.SE评论中几乎没有任何好处。干杯@slhck:ack,将来会这样做
    #include <windows.h>
    #include <stdio.h>
    #pragma comment(lib, "user32.lib")

    void main()
    {
       SYSTEM_INFO siSysInfo;

       // Copy the hardware information to the SYSTEM_INFO structure. 

       GetSystemInfo(&siSysInfo); 

       // Display the contents of the SYSTEM_INFO structure. 

       printf("Hardware information: \n");  
       printf("  OEM ID: %u\n", siSysInfo.dwOemId);
       printf("  Number of processors: %u\n", 
          siSysInfo.dwNumberOfProcessors); 
       printf("  Page size: %u\n", siSysInfo.dwPageSize); 
       printf("  Processor type: %u\n", siSysInfo.dwProcessorType); 
       printf("  Minimum application address: %lx\n", 
          siSysInfo.lpMinimumApplicationAddress); 
       printf("  Maximum application address: %lx\n", 
          siSysInfo.lpMaximumApplicationAddress); 
       printf("  Active processor mask: %u\n", 
          siSysInfo.dwActiveProcessorMask); 
    }