ttwking
驱动牛犊
驱动牛犊
  • 注册日期2002-12-20
  • 最后登录2003-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1633回复:4

在 W2K下如何实现对主引导区的读出和写入??

楼主#
更多 发布于:2002-12-20 09:05
在 W2K下如何实现对主引导区的读出和写入??
沙发#
发布于:2002-12-20 10:49
看MSDN的createfile帮助,里面有!
可以通过createfile(\"\\\\\\\\.\\\\PHYSICALDRIVEx\",....)里面的X就是你的硬盘号,一般的都是0
readfile和writefile来做
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-20 22:16
看MSDN的createfile帮助,里面有!
可以通过createfile(\"\\\\\\\\.\\\\PHYSICALDRIVEx\",....)里面的X就是你的硬盘号,一般的都是0
readfile和writefile来做


挑战者大虾:

具体的参数怎么设置?

BOOL ReadFile(
  HANDLE hFile,              
  LPVOID lpBuffer,            
  DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
  LPOVERLAPPED lpOverlapped   );

偶认为只能通过iocontrol才可能???


 :(

能否指点一下,谢谢!!!
[color=red]大头鬼! :P[/color]
地板#
发布于:2002-12-23 10:01
第一个参数我就不用说了!
第二个参数就是的缓冲区的地址,
第三个参数是读的大小,以512来算,因为扇区都是512为一扇
第四个参数是返回参数,返回读出的字节数
第五个参数设置为NULL
地下室#
发布于:2002-12-23 10:12
// TODO: Add your control notification handler code here
HANDLE hDiskDev = NULL;
hDiskDev = CreateFile(\"\\\\\\\\.\\\\PHYSICALDRIVE0\",
SYNCHRONIZE|GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_ARCHIVE,
NULL);
if(hDiskDev != INVALID_HANDLE_VALUE)
{
UCHAR ucBuffer[2*512] = {0};
ULONG ulRetByte = 0;
ReadFile(hDiskDev,ucBuffer,sizeof(ucBuffer),&ulRetByte,NULL);
CloseHandle(hDiskDev);
hDiskDev = NULL;
}
hDiskDev = CreateFile(\"\\\\\\\\.\\\\C:\",
SYNCHRONIZE|GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_ARCHIVE,
NULL);
if(hDiskDev != INVALID_HANDLE_VALUE)
{
UCHAR ucBuffer[2*512] = {0};
ULONG ulRetByte = 0;
ReadFile(hDiskDev,ucBuffer,sizeof(ucBuffer),&ulRetByte,NULL);
CloseHandle(hDiskDev);
}
d代码如上!已在2K的高级服务器版测试通过
游客

返回顶部