问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vb 下面函数如何修改获取整个硬盘容量.在线等,急用!

发布网友 发布时间:2022-05-29 21:07

我来回答

1个回答

热心网友 时间:2024-04-01 18:04

#include <windows.h>
#include <winioctl.h>

BOOL
GetDriveGeometry(DISK_GEOMETRY *pdg)
{
HANDLE hDevice; // handle to the drive to be examined
BOOL bResult; // results flag
DWORD junk; // discard results

hDevice = CreateFile("\\\\.\\PhysicalDrive0", // drive to open
0, // don't need any access to the drive
FILE_SHARE_READ | FILE_SHARE_WRITE, // share mode
NULL, // default security attributes
OPEN_EXISTING, // disposition
0, // file attributes
NULL); // don't copy any file's attributes

if (hDevice == INVALID_HANDLE_VALUE) // we can't open the drive
{
return (FALSE);
}

bResult = DeviceIoControl(hDevice, // device we are querying
IOCTL_DISK_GET_DRIVE_GEOMETRY, // operation to perform
NULL, 0, // no input buffer, so pass zero
pdg, sizeof(*pdg), // output buffer
&junk, // discard count of bytes returned
(LPOVERLAPPED) NULL); // synchronous I/O

CloseHandle(hDevice); // we're done with the handle

return (bResult);
}

int
main(int argc, char *argv[])
{
DISK_GEOMETRY pdg; // disk drive geometry structure
BOOL bResult; // generic results flag
ULONGLONG DiskSize; // size of the drive, in bytes

bResult = 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);

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);
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 C++如何用windowsAPI读取分区表 vb或c语言 如何屏蔽一个鼠标 VC如何弹出U盘 delphi 引用头文件无法识别这两个单元winioctl, nt_status VC6.0控制台工程为什么#include&lt;windows.h&gt;后仍然提示CREATE_USN_JOU... MFC变成调用两块控制卡,头文件定义冲突,如何解决? 中山市大鲸网络科技有限公司怎么样? ...做dsp5509a的USB数据传输,但是一直出错在winnt.h和winioctl.h... 青岛大鲸网络科技有限公司怎么样? 嘉兴学习日语怎么样?高考也可以用日语的吧? winioctl.h 是什么库函数 求问c++头文件winioctl.h和windows.h分别是意思什么? 天天折扣-天天特价九块九包邮专享版怎么样 用私人移动影院看“片”会是怎样一种体验 16款丰田霸道27怎么样 丰田27霸道暖风里手热外手不热是怎么回事? 霸道27后桥半轴折了能走吗 霸道27和4000车身材质一样吗 手机照相系统中的测光:点、矩阵、中央曝光、哪个照相效果最好?_百度知 ... 求动漫美女桌面,要求与我发的图片差不多 华天正real6410开发板wince系统重启函数是什么 VC6.0 许多扩展类的问题~DRIVE_LAYOUT_INFORMATION_EX找不到 VC++编译错误为Cannot open include file: &#39;stdafx.h&#39;: No such file... VC6.0里DISK_GEOMETRY怎么未定义 武昌鱼一般在哪里能找到? C++编译后 cl.exe错误 我发现这里问题 谁可以帮我做解答 鸡油在制作红焖武昌鱼的过程中有什么作用? 怎样在vc++中获得硬盘的序列号 即又和既又得区别是什么? 既又既又造句50字以上 既…又…既…又照句? 墨西哥城市分布特点及其原因,急 “既……又……,既……也……”的区别是什么? 水暖高手在哪里? 在线等求助水暖高手 请问水暖高手,我们家是分户式供暖,由于未缴纳取暖费现在停止供暖了,我 ... 请水暖高手指教 急求水暖高手。。宾馆淋浴忽冷忽热怎么解决? 家里最后一组暖气不热,求水暖高手解答 ...然后后期又得往里加水,每天如此,跪求水暖高手指点