能力值:
( LV2,RANK:10 )
在线值:
|
-
-
2 楼
好像是要上驱动搞?
|
|
-
-
3 楼
你肯定是先CreateFile打开物理磁盘啊,然后再WriteFile啊。XP系统可以正常打开,Win7系统要管理员权限才能打开呢,你以管理员权限运行试试
|
能力值:
( LV2,RANK:10 )
在线值:

|
-
-
4 楼
win7的话应该只允许前16扇区的写入。 你可以用同样的代码往2-15垃圾扇区写一下数据看看是否正常。
另外需要记住一点写扇区必须要512对齐 写入数量是512的倍数
|
能力值:
( LV2,RANK:10 )
在线值:
|
-
-
5 楼
从文件指针指向的位置开始将数据写入到一个文件中, 且支持同步和异步操作,
如果文件打开方式没有指明FILE_FLAG_OVERLAPPED的话,当程序调用成功时,它将实际写入文件的字节数保存到lpNumberOfBytesWriten指明的地址空间中
如果文件要交互使用的话,当函数调用完毕时要记得调整文件指针
参数说明
HANDLE hFile, 需要写入数据的文件指针,这个指针指向的文件必须是GENERIC_WRITE access 访问属性的文件
LPOVERLAPPED lpOverlapped OVERLAPPED结构体指针,如果文件是以FILE_FLAG_OVERLAPPED方式打开的话,那么这个指针就不能为NULL
vc返回值
调用成功,返回非0
调用不成功,返回为0
用例:
DWORDdev_write(LPCVOIDbuf,DWORDNumBytes)//写数据 { DWORDwriteaddr=0; if(handle!=INVALID_HANDLE_VALUE) { WriteFile(handle,buf,NumBytes,&writeaddr,NULL); } returnwriteaddr;}
http://www.sytm.net/jiejuefangan
|
能力值:
( LV9,RANK:610 )
|
-
-
6 楼
4楼正解,5楼不知所云~
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
我试了有关版本的winhex就可以直接写,不是驱动,不知道他怎么做的
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
xp上写扇区没有问题,问题在win7上,正如问题所述,已经是管理员权限了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我试了winhex 可以对扇区进行写操作(win7下也可以),应该是没用驱动
引个链接:http://bbs.csdn.net/topics/360142228
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我试了winhex 可以对扇区进行写操作(win7下也可以),应该是没用驱动
引个链接:http://bbs.csdn.net/topics/360142228
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
win7系统下,使用winhex也不是可以对任何扇区进行写操作的,LZ使用winhex测试的时候估计写的扇区比较靠前,LZ可以使用winhex多尝试几个不同的扇区试试,我测试过最新版的winhex是不行的,我以前跟LZ的想法一样认为winhex没有驱动就能完成,其实winhex是不行的。有关这个问题的讨论,很早就有大牛解释过了
http://hi.baidu.com/mj0011/item/508c92f188ede30fc6dc45cc
http://www.kafan.cn/thread-1073036-1-1.html
目前我自己选择的式通过驱动完成的,网上有很多例子代码.
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我已经用 winhex测试了,写的也不是靠前的扇区,我在磁盘随便找个文件进行覆盖的,
附上winhex 大概是15.8版本的http://pan.baidu.com/s/1dD7sUDr ,lz有兴趣可以测试下(所附绝不是恶意程序)。不太想用驱动,用驱动就不太符合程序的基本要求了,谢谢朋友
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
我貌似是在移动硬盘上覆盖的扇区
|
能力值:
( LV2,RANK:10 )
在线值:
|
-
-
14 楼
4楼正确啊,嘿嘿
|
|
|