下面的代码来自MSDN

#include <stdio.h>
#include <windows.h>
#include <winioctl.h>BOOL GetDriveGeometry(DISK_GEOMETRY *pdg)
{HANDLE hDevice;               // handle to the drive to be examined BOOL bResult;                 // results flagDWORD junk;                   // discard resultshDevice = CreateFile("\\\\.\\PhysicalDrive0", // drive to open0,       // don't need any access to the driveFILE_SHARE_READ | FILE_SHARE_WRITE,  // share modeNULL,    // default security attributesOPEN_EXISTING,  // disposition0,       // file attributesNULL);   // don't copy any file's attributesif (hDevice == INVALID_HANDLE_VALUE) // we can't open the drive{return (FALSE);}bResult = DeviceIoControl(hDevice,  // device we are queryingIOCTL_DISK_GET_DRIVE_GEOMETRY,  // operation to performNULL, 0,                      // no input buffer, so pass zeropdg, sizeof(*pdg),              // output buffer&junk,                          // discard count of bytes returned(LPOVERLAPPED) NULL);         // synchronous I/OCloseHandle(hDevice);             // we're done with the handlereturn (bResult);
}int main(int argc, char *argv[])
{DISK_GEOMETRY pdg;                 // disk drive geometry structureBOOL bResult;                       // generic results flagULONGLONG DiskSize;                  // size of the drive, in bytesbResult = GetDriveGeometry (&pdg);if (bResult) {printf("Cylinders = %I64d\n", pdg.Cylinders);                         // 柱面printf("Tracks per cylinder = %ld\n", (ULONG) pdg.TracksPerCylinder);   // 磁道/柱面printf("Sectors per track = %ld\n", (ULONG) pdg.SectorsPerTrack);        // 扇区/磁道printf("Bytes per sector = %ld\n", (ULONG) pdg.BytesPerSector);          // Bytes/扇区DiskSize = pdg.Cylinders.QuadPart * (ULONG)pdg.TracksPerCylinder * (ULONG)pdg.SectorsPerTrack * (ULONG)pdg.BytesPerSector;printf("Disk size = %I64d (Bytes) = %I64d (MB)\n", DiskSize, DiskSize / (1024 * 1024));}else {printf ("Attempt to get drive geometry failed. Error %ld.\n", GetLastError ());}return ((int)bResult);
}

运行结果:

Cylinders = 60801
Tracks per cylinder = 255
Sectors per track = 63
Bytes per sector = 512
Disk size = 500105249280 (Bytes) = 476937 (MB)
Press any key to continue

获取硬盘总容量,柱面数,磁道数,扇区数相关推荐

  1. DS系列服务器硬盘扇区,硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)...

    硬盘的DOS管理结构 1.磁道,扇区,柱面和磁头数 硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等.每个盘片有两面,都可记录信息.盘片被分成许多扇形的区域,每个 ...

  2. 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)

    近来,仔细研究了发挥U盘的极限速度--磁盘扇区数精确调节! 一文,并向hfsp 进行了请教,感觉对 磁道.扇区.柱面.磁头数.簇.MBR.DBR等磁盘基本知识不是很了解,于是找到下面一篇文章,和朋友们 ...

  3. 硬盘基本术语(磁道、扇区、柱面、磁头数、簇)

    磁盘结构 硬盘的物理结构一般由磁头与盘片.电动机.主控芯片与排线等部件组成:当主电动机带动盘片旋转时,副电动机带动一组(磁头)到相对应的盘片上并确定读取正面还是反面的碟面,磁头悬浮在碟面上画出一个与盘 ...

  4. 硬盘的扇面、磁道、扇区

    CHS:Cylinder.Head.Sector/Track,示意图如下: Cylinder柱面数表示硬盘每面盘面上有几条磁道,编号是从0开始,最大为1023,表示有1024个磁道. Head磁头数表 ...

  5. 硬盘的扇面、磁道、扇区,磁柱

    扇面: Cylinder/ 磁道: Track   / sectors 扇区: Sector  / head CHS:Cylinder.Head.Sector/Track,示意图如下: Cylinde ...

  6. 硬盘知识:硬盘结构、盘片、磁道、扇区、柱面、磁头数、寻址模式

    硬盘知识:硬盘结构.盘片.磁道.扇区.柱面.磁头数.寻址模式 1. 硬盘是啥? 1.1 硬盘 1.2 硬盘结构 2. 盘片 磁头 磁道 柱面 扇区 圆盘 2.1 内外圈扇区的大小变化: 2.2 例子说 ...

  7. 硬盘基本知识(磁头、磁道、扇区、柱面) 转

    概述 盘片(platter) 磁头(head) 磁道(track) 扇区(sector) 柱面(cylinder) 盘片 片面 和 磁头 硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应 ...

  8. 硬盘详解---磁道,扇区,柱面和磁头数

    最近要做磁盘还原驱动,发现自己对磁盘的物理结构不是很了解,于是乎就 google 学习之... 1.磁头 磁头是硬盘中最昂贵的部件,也是硬盘技术中最重要和最关键的一环.传统的磁头是读写合一的电磁感应式 ...

  9. 硬盘基本知识(磁头、磁道、扇区、柱面)

    1. 硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头.受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内.盘片的编号自下向上从0开始,如最下边的盘 ...

最新文章

  1. 再谈PowerPoint 2010导出幻灯片为图片
  2. 撩课-Web大前端每天5道面试题-Day7
  3. 解决linux ssh客户端SSH连接linux服务器很慢的问题
  4. 自媒体时代的主流媒体不可替代
  5. 六大方法来对付网站出现的负面信息
  6. 软件测试web和app,软件测试如何快速进阶?过来人科普Web与App测试5大区别!
  7. 给chrome手动安装github上插件
  8. H3CSE20200603班-SSL V*N
  9. Kali扫描工具Nmap
  10. 记录自己装AMD黑苹果安装
  11. office起动缓慢_如何解决Microsoft Outlook启动缓慢的问题
  12. oppo X907刷机包 COLOROS 1.0 正式版公布 安卓4.2.2
  13. android 测网速方案,Android_检测当前网速
  14. java智能点餐系统研究内容_JAVA课程实践报告 基于web的点餐系统毕业设计
  15. 浅谈online judge平台 spj [special judge] 使用 | 修改问题
  16. 我的世界服务器拔刀修复,我的世界拔刀剑怎么修复武器攻略分享
  17. 编译原理chatpter04 文法的形式和文法的类型
  18. 求肺结节数据集,是要提取出来,分好类的肺结节数据集,有chang
  19. 极路由3-HC5861无拆机获取root连接ssh
  20. 石油远程《机械设计》第二次在线作业

热门文章

  1. 在命令提示符下输入的命令
  2. 工作10年厌倦写代码_厌倦了数据质量讨论?
  3. netflix的准实验面临的主要挑战
  4. 初探Golang(1)-变量
  5. leetcode 222. 完全二叉树的节点个数(dfs)
  6. 途虎养车三个创始人_3个来自非常规创始人的获奖技术和产品见解
  7. Pytest高级进阶之Fixture
  8. Linux主机硬盘的主要规划
  9. iOS开发UI篇—实现一个私人通讯录小应用(二)
  10. C# 使用数据库SQLite