Windows下createfile函数用GENERIC_READ访问模式打不开磁盘

这两天做毕设,快气死了!想读写磁盘扇区,我就百度了,都是这样写的:

        

    HANDLE hDevice = CreateFile(TEXT("\\\\.\\PhysicalDrive1",    // drive,一般physicaldrive0是主磁盘,我不干,整死了咋整,虚拟机又卡
                        GENERIC_REAF,                // no access to the drive
                       FILE_SHARE_READ ,// share mode,
                      NULL,             // default security attributes
                      OPEN_EXISTING,   // disposition
                      0,                // file attributes
                      NULL);            // do not copy file attributes

    if (hDevice == INVALID_HANDLE_VALUE) // cannot open the drive
    {        MessageBox("error");
        return (FALSE);
    }.......................
     CloseHandle(hDevice);

别人都用createfile函数打开设备,获得磁盘返回的句柄之后,将句柄作为deviceIOcontrol函数的参数传递给磁盘扇区吧,我就不行,死活不行,win7下也不行。只要我用GENERIC_READ 或者是 GENERIC_WRITE,只会弹出error。各种百度都没找到,但是别人家的分区软件确实在我的电脑上运行。

最后我终于看到,把GENERIC_READ换成FILE_READ_ATTRIBUTES之后终于可以了,我的句柄获得了,哈哈哈!开心!

原文地址:https://www.cnblogs.com/piaoxuewaiwai/p/8944368.html

时间: 2024-11-08 21:43:36

Windows下createfile函数用GENERIC_READ访问模式打不开磁盘的相关文章

windows 下实现函数打桩:拦截API方式

windows 下实现函数打桩:拦截API方式 最近因为工作需要,开始研究函数打桩的方法.由于不想对工程做过多的修改,于是放弃了使用Google gmock的想法.但是也足足困扰另外我一天一宿.经过奋战,终于有所收获.闲话少说,开始看看有什么方法. 一.基础准备 1. 函数调用的原理:通过函数名(函数的入口地址)对函数进行访问,假设我们能够改变函数首地址指向的内存的话,使其跳转到另一个函数去执行的话,那么就可以实现函数打桩了. 2. 方法:对函数首地址出写入一条汇编语言 jmp xxx (其中x

windows下多进程加协程并发模式

好久没更新博客了.正好最近要整理一下最近这段时间做过的项目以及学习python的一些心得.如标题所示,今天就来说说windows下多进程加协程并发模式.其实网上还是蛮多在linux下的多进程加协程并发模式,本身linux对python的支持更好吧.但是由于本人的开发环境是windows的,而且网上关于这方面的资料还是少了一点,不过经过一番折腾,也算是弄出来了.废话不多说,先贴代码吧: # coding=utf-8 # windows下多进程加协程并发模式 # 打入gevent的monkey补丁

windows下system函数的使用

system函数 是可以调用一些DOS命令,比如system("cls");//清屏,等于在DOS上使用cls命令写可执行文件路径,可以运行它···· 下面列出常用的DOS命令,都可以用system函数调用: ASSOC 显示或修改文件扩展名关联.AT 计划在计算机上运行的命令和程序.ATTRIB 显示或更改文件属性.BREAK 设置或清除扩展式 CTRL+C 检查.CACLS 显示或修改文件的访问控制列表(ACLs).CALL 从另一个批处理程序调用这一个.CD 显示当前目录的名称或

windows下通过VNC图形化访问Ubuntu桌面环境

要在windows下图形化访问Ubuntu或其它Linux系统桌面环境有很多方法,我比较喜欢的是使用VNC服务,需要在Ubuntu下安装vncserver和在windows下安装客户端访问工具. 1. windows下客户端访问工具 对于VNC,客户端访问工具也有不少,比如RealVNC.VNCViewer等,我比较喜欢的是VNCViewer,比较小巧轻量级,使用也十分简单,如下图所示: 后面的:1是分配的桌面号,可以给不同的客户端分配不同的桌面号访问,如果是默认端口这样输入就可以了,如果设置了

windows下php以Fast-CGI、ISAPI模式运行相关环境配置

iis6环境下 msi安装版直接下一步下一步下一步,然后新建一个扩展即可. 压缩包版 isapi模式配置 php5.3.0以后不支持isapi了,因此要使用这种模式需要选择5.3.0以前的TS(thread safe)版本. 1.添加应用程序.php后缀可执行文件路径为php目录下php5isapi.dll(5.X版本为这个文件)文件. 2.允许Web服务扩展中的php扩展:新建一个扩展(一般就叫php)路径选择php安装目录下的isapi库文件(php5.x版本为php5isapi.dll).

【CUDA】Windows 下常用函数头文件

CUDA 函数 头文件 __global__ __device__ #include <cuda_runtime.h> threadIdx #include <device_launch_parameters.h>   #include <sm_20_intrinsics.h> __shfl() #include <sm_30_intrinsics.h> tex1Dfetch() #include <texture_fetch_functions.h&

Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时间查阅了大量资料,并做了一番实验后,终于把这些困惑全都搞得清清楚楚了. 说实话,之所以花了这么多时间,很大程度上是由于网上的资料几乎全都是支离破碎.以讹传讹的.既然我已经搞懂了,就花时间整理出来,即方便自己看,也便于大家阅读.相信通过这篇文章,可以解答很多在Windows下搭建PHP开发环境的朋友的

转:Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

原文来自于:http://www.ituring.com.cn/article/128439 Windows下的PHP开发环境搭建——PHP线程安全与非线程安全.Apache版本选择,及详解五种运行模式. 今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时间查阅了大量资料,并做了一番实验后,终于把这些困惑全都搞得清清楚楚了. 说实话,之所以花了这么

C++和C在linux下 和在windows下有什么区别?

一.函数库的区别 linux下的C函数库和windows下的函数库系统调用的机制不一样,Glibc包含了主要的C库.这个库提供了基本例程,用于分配内存.搜索目录.打开关闭文件.读写文件.字串处理.模式匹配.数学计算等等. 所说的机制不一样不单是指中断号的问题,中断号也是通过input参数和output把函数地址和输出地址定位在寄存器的,那些函数在windows和linux下的实现应该是不一样的,就拿文件系统来说,ext3和fat32的怎么可能一样.还有mm内存管理,都是不一样的.中断还是属于硬件