获取硬盘总容量,柱面数,磁道数,扇区数
下面的代码来自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
获取硬盘总容量,柱面数,磁道数,扇区数相关推荐
- DS系列服务器硬盘扇区,硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)...
硬盘的DOS管理结构 1.磁道,扇区,柱面和磁头数 硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等.每个盘片有两面,都可记录信息.盘片被分成许多扇形的区域,每个 ...
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
近来,仔细研究了发挥U盘的极限速度--磁盘扇区数精确调节! 一文,并向hfsp 进行了请教,感觉对 磁道.扇区.柱面.磁头数.簇.MBR.DBR等磁盘基本知识不是很了解,于是找到下面一篇文章,和朋友们 ...
- 硬盘基本术语(磁道、扇区、柱面、磁头数、簇)
磁盘结构 硬盘的物理结构一般由磁头与盘片.电动机.主控芯片与排线等部件组成:当主电动机带动盘片旋转时,副电动机带动一组(磁头)到相对应的盘片上并确定读取正面还是反面的碟面,磁头悬浮在碟面上画出一个与盘 ...
- 硬盘的扇面、磁道、扇区
CHS:Cylinder.Head.Sector/Track,示意图如下: Cylinder柱面数表示硬盘每面盘面上有几条磁道,编号是从0开始,最大为1023,表示有1024个磁道. Head磁头数表 ...
- 硬盘的扇面、磁道、扇区,磁柱
扇面: Cylinder/ 磁道: Track / sectors 扇区: Sector / head CHS:Cylinder.Head.Sector/Track,示意图如下: Cylinde ...
- 硬盘知识:硬盘结构、盘片、磁道、扇区、柱面、磁头数、寻址模式
硬盘知识:硬盘结构.盘片.磁道.扇区.柱面.磁头数.寻址模式 1. 硬盘是啥? 1.1 硬盘 1.2 硬盘结构 2. 盘片 磁头 磁道 柱面 扇区 圆盘 2.1 内外圈扇区的大小变化: 2.2 例子说 ...
- 硬盘基本知识(磁头、磁道、扇区、柱面) 转
概述 盘片(platter) 磁头(head) 磁道(track) 扇区(sector) 柱面(cylinder) 盘片 片面 和 磁头 硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应 ...
- 硬盘详解---磁道,扇区,柱面和磁头数
最近要做磁盘还原驱动,发现自己对磁盘的物理结构不是很了解,于是乎就 google 学习之... 1.磁头 磁头是硬盘中最昂贵的部件,也是硬盘技术中最重要和最关键的一环.传统的磁头是读写合一的电磁感应式 ...
- 硬盘基本知识(磁头、磁道、扇区、柱面)
1. 硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头.受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内.盘片的编号自下向上从0开始,如最下边的盘 ...
最新文章
- 再谈PowerPoint 2010导出幻灯片为图片
- 撩课-Web大前端每天5道面试题-Day7
- 解决linux ssh客户端SSH连接linux服务器很慢的问题
- 自媒体时代的主流媒体不可替代
- 六大方法来对付网站出现的负面信息
- 软件测试web和app,软件测试如何快速进阶?过来人科普Web与App测试5大区别!
- 给chrome手动安装github上插件
- H3CSE20200603班-SSL V*N
- Kali扫描工具Nmap
- 记录自己装AMD黑苹果安装
- office起动缓慢_如何解决Microsoft Outlook启动缓慢的问题
- oppo X907刷机包 COLOROS 1.0 正式版公布 安卓4.2.2
- android 测网速方案,Android_检测当前网速
- java智能点餐系统研究内容_JAVA课程实践报告 基于web的点餐系统毕业设计
- 浅谈online judge平台 spj [special judge] 使用 | 修改问题
- 我的世界服务器拔刀修复,我的世界拔刀剑怎么修复武器攻略分享
- 编译原理chatpter04 文法的形式和文法的类型
- 求肺结节数据集,是要提取出来,分好类的肺结节数据集,有chang
- 极路由3-HC5861无拆机获取root连接ssh
- 石油远程《机械设计》第二次在线作业