获取硬盘总容量,柱面数,磁道数,扇区数
来源:互联网 发布:聊天软件编程 编辑:程序博客网 时间:2024/04/28 21:15
下面的代码来自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 = 60801Tracks per cylinder = 255Sectors per track = 63Bytes per sector = 512Disk size = 500105249280 (Bytes) = 476937 (MB)Press any key to continue
- 获取硬盘总容量,柱面数,磁道数,扇区数
- 硬盘详解---磁道,扇区,柱面和磁头数
- 硬盘基本术语(磁道、扇区、柱面、磁头数、簇)
- 磁道,扇区,柱面和磁头数
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- MBR 之 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
- 3.9.1 磁道、扇区、柱面和磁头数
- windows下获取柱面、扇区数,扇区大小
- 原来硬盘每个磁道的扇区数不一样
- 硬盘概念:扇区,磁道,磁头,柱面,簇
- 磁道、扇区和柱面
- js判断闰年函数
- 关于子网掩码的校验(subnet mask)
- QQ登录界面因果图法设计测试用例
- java RSA公私钥与其base64编码之间的转换
- linux常用命令-系统管理篇
- 获取硬盘总容量,柱面数,磁道数,扇区数
- 集合映射
- Java 编程心得体会:程序员应具有的素质
- linux常用命令-系统设置篇
- 杭州最新公交线路一览(91-100)
- java中的移位运算
- 开源的webOS将动谁的奶酪?
- SQL语句获取所有数据库名、表名、字段名、表字段长度
- linux常用命令-备份压缩篇