获取物理磁盘物理索引号

int GetPhysicalDriveIndex(char cLable)
{
    char szDriverName[64] = "\\\\.\\C:\0";  
    szDriverName[4] = cLable;
    int PhysicalDriveNum = -1;
    HANDLE hDev = CreateFile(szDriverName,
        0,
        FILE_SHARE_READ|FILE_SHARE_WRITE,
        NULL,
        OPEN_EXISTING,
        0,
        NULL);
    if (hDev == INVALID_HANDLE_VALUE)
    {
        return PhysicalDriveNum;
    }

    STORAGE_DEVICE_NUMBER sdn;
    DWORD dwBytesRetuned=0;

    long res = DeviceIoControl(hDev,
        IOCTL_STORAGE_GET_DEVICE_NUMBER,
        NULL,
        0,
        &sdn,sizeof(sdn),
        &dwBytesRetuned,
        NULL);
    if(res)
    {
        PhysicalDriveNum = (int)sdn.DeviceNumber;
    }
    CloseHandle(hDev);

    return PhysicalDriveNum;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值