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; 
}