首页
社区
课程
招聘
[求助]win Xp下磁盘读写
发表于: 2012-3-7 14:35 2972

[求助]win Xp下磁盘读写

2012-3-7 14:35
2972
本人在学习FAT32文件格式的时候
遇到一个小麻烦 就是磁盘可以正常打开
但是读取数据的时候就出错了。原因没有找到
还请高人指点一二。
getlasterorr提示:系统找不到指定文件

代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "stdafx.h"
#include "malloc.h"
void nameerorr();  //提示错误的函数
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    // TODO: Place code here.
    char dd[256]="tytytyty:";
    BYTE data [256] = {0};
    DWORD TY=0;
    char* buffer = (char*)malloc (512);
 
    BYTE jmpnop = 0;
char devername[] = "\\\\.\\C:";
HANDLE hDev =CreateFile(devername, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
 
 
     
  if (hDev == INVALID_HANDLE_VALUE )
   
  {
     return 0;
 
 
  }
       
 
  if(ReadFile(hDev,data,254,&TY,0) )//[COLOR="Red"]这里总是错误。return 0;[/COLOR]  {
 
 
 
    jmpnop = data[0];
    wsprintf(dd,"%d",jmpnop);
 
  MessageBox(NULL,TEXT("ok"),TEXT("ok"),0);
  MessageBox(NULL,dd,"TY",0);
  }
 
  else
  {
     nameerorr();
 
      MessageBox(NULL,TEXT("no"),TEXT("no"),0);
 
  }
               
    return 0;
}
 
 
 
 
void nameerorr()
{
 
DWORD dw;
 DeleteFile(TEXT("c:\\ty.EXE"));
 dw = GetLastError();
  TCHAR* lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| //自动分配消息缓冲区
FORMAT_MESSAGE_FROM_SYSTEM, //从系统获取信息
NULL,dw, //获取错误信息标识
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),//使用系统缺省语言
(LPTSTR)&lpMsgBuf, //消息缓冲区
0,
NULL);
MessageBox(NULL,lpMsgBuf,"",MB_ICONERROR);
 
 
}

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费
支持
分享
最新回复 (12)
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己顶下。
。。
2012-3-7 14:57
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
顶顶!!!!!!!!!!!!!!!帮忙哪。。。。。
2012-3-7 15:56
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
????????????????????????????????
2012-3-7 19:01
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请高手来帮帮忙????????
就是一到readfile  我用getlasterorr拦截错误
是显示 “系统找不到指定文件”。
也不知道怎么搞的 请高手指教下   。
2012-3-7 19:53
0
雪    币: 456
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
char devername[] = "\\\\.\\C:";

这个文件名有问题,系统中根本就找不到这个文件
2012-3-8 11:10
0
雪    币: 31
活跃值: (53)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
\\.\c
文件名不能有\符号吧?
2012-3-8 11:27
0
雪    币: 120
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
read data must ailgn with 0x200....u know....
2012-3-8 11:39
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
char devername[] = "\\\\.\\C:";
这段我改改成什么 请赐教。。。。????????
2012-3-8 12:04
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我的目的是打开磁盘 解析 文件系统。
所以拿createfile打开磁盘设备

就是不知道char devername[] = "\\\\.\\C:";

问题到底在哪?
2012-3-8 12:33
0
雪    币: 39
活跃值: (3346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
文件名改成:
"\\\\.\\PhysicalDrive0"
2012-3-8 13:11
0
雪    币: 280
活跃值: (756)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
就是这个。。
2012-3-8 18:24
0
雪    币: 81
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
OK..原来设备读写出的数据必须是512的整倍数 也就是按照扇区来读写数据的。
问题已经解决了 谢谢各位的耐心的回来。
谢谢了
2012-3-10 12:38
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册