www.pudn.com > Sector1.rar > diskInfo.cpp
//diskInfo.cpp
//
////////////////////////////////////////////////
#include "stdafx.h"
#include"diskInfo.h"
/*#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif*/
CDiskInfo::CDiskInfo()
{
hDev=NULL;
}
CDiskInfo::~CDiskInfo()
{
}
BOOL CDiskInfo::ReadSector(BYTE bDrive,DWORD dwStartSector,
WORD wSectors,LPBYTE lpSectBuff)
// 对磁盘扇区数据的读取
{
if (bDrive == 0) return 0;
char devName[] = "\\\\.\\ :";
devName[4] = bDrive;
HANDLE hDev = CreateFile(devName, GENERIC_READ, FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL);
if (hDev == INVALID_HANDLE_VALUE) return 0;
SetFilePointer(hDev, 512 * dwStartSector, 0, FILE_BEGIN);
DWORD dwCB;
BOOL bRet = ReadFile(hDev, lpSectBuff, 512 * wSectors, &dwCB, NULL);
CloseHandle(hDev);
return bRet;
}
BOOL CDiskInfo::WriteSector(BYTE bDrive,DWORD dwStartSector,
WORD wSectors,LPBYTE lpSectBuff)
// 对磁盘扇区数据的写入
{
if (bDrive == 0) return 0;
char devName[] = "\\\\.\\ :";
devName[4] =bDrive;
HANDLE hDev = CreateFile(devName, GENERIC_WRITE,
FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (hDev == INVALID_HANDLE_VALUE) return 0;
SetFilePointer(hDev, 512 * dwStartSector, 0, FILE_BEGIN);
DWORD dwCB;
BOOL bRet = WriteFile(hDev, lpSectBuff, 512 * wSectors, &dwCB, NULL);
CloseHandle(hDev);
return bRet;
}