我的目的是想查看磁盘的信息,如磁盘信息,磁盘类型和磁盘的号,结果竟被告知是获取句柄错误,应该是权限出问题了。但是我仔细检查代码之后,才发现是CreateFile函数的参数的单词写错了。错误代码如下:
hDevice = CreateFile(lpDevicePath,
FILE_GENERIC_READ | FILE_GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE ,
NULL,
OPEN_EXISTING,
FILE_FLAG_NO_BUFFERING,
hDevice);
if (hDevice==NULL)
{
cout<<"Getting Handle failed!"<<endl;
return 2;
}
第二个参数应为:GENERIC_READ | GENERIC_WRITE,而我的代码却是FILE_GENERIC_READ |FILE_GENERIC_WRITE。
好高兴啊,又发现了一个错误。实践是检验理论的唯一标准,我就应该多实践,找准自己的不足。

本文分享了一次调试经历,作者在尝试使用CreateFile函数获取磁盘信息时遇到获取句柄失败的问题。通过检查发现是由于参数书写错误导致,正确的参数应为GENERIC_READ|GENERIC_WRITE而非FILE_GENERIC_READ|FILE_GENERIC_WRITE。

428

被折叠的 条评论
为什么被折叠?



