C++获取驱动盘句柄

转载:https://www.cnblogs.com/sherlock-merlin/p/10792116.html     https://univasity.iteye.com/blog/805234

#include<iostream>
#include<Windows.h>

using namespace std;

int main()
{
  HANDLE hFile = INVALID_HANDLE_VALUE;
  hFile = CreateFileA("\\.\H:",
        GENERIC_READ,
        FILE_SHARE_READ,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
  if (hFile == INVALID_HANDLE_VALUE){
    MessageBox(NULL,("USN错误"),("错误"),MB_OK);
       printf("获取驱动盘句柄失败-handle:%x error:%d
",hFile,GetLastError());
  }
      else{
          printf("获取驱动盘句柄成功   handle:%x",hFile);
          MessageBox(NULL,("USN正确"),("正确"),MB_OK);
      }   
  CloseHandle(hFile);
}

注意:调用CreateFileA需要管理员权限,因此需要在编译成功后右击exe文件以管理员身份运行才能得到正确结果。如果直接在vs2013中运行获取句柄一定会失败。

原文地址:https://www.cnblogs.com/Toya/p/11212040.html