www.pudn.com > Diskreadwrite.rar > WriteRead.cpp


// WriteRead.cpp: implementation of the CWriteRead class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "WriteRead.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CWriteRead::CWriteRead() 
{ 
 
} 
 
CWriteRead::~CWriteRead() 
{ 
 
} 
 
BOOL CWriteRead::WriteSectors(BYTE bDrive,DWORD dwStart,WORD wSectors,LPCVOID lpBuff) 
{  
	if(bDrive==0) 
		return 0; 
	char devName[]="\\\\.\\A:"; 
	devName[4]='A'+bDrive-1; 
	HANDLE hDev=CreateFile(devName,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); 
	if(hDev==INVALID_HANDLE_VALUE) 
		return 0; 
	SetFilePointer(hDev,512*dwStart,0,FILE_BEGIN); 
	DWORD dwNum; 
	BOOL bRet=WriteFile(hDev,lpBuff,512*wSectors,&dwNum,NULL); 
	CloseHandle(hDev); 
	return(bRet); 
} 
 
BOOL CWriteRead::ReadSectors(BYTE bDrive, DWORD dwStart, WORD wSectors, LPVOID lpBuff) 
{   
	if(bDrive==0) 
    return 0; 
	char devName[]="\\\\.\\A:"; 
	devName[4]='A'+bDrive-1; 
	HANDLE hDev=CreateFile(devName,GENERIC_READ,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); 
	if(hDev==INVALID_HANDLE_VALUE) 
		return 0; 
	SetFilePointer(hDev,512*dwStart,0,FILE_BEGIN); 
	DWORD dwNum; 
    BOOL bRet=ReadFile(hDev,lpBuff,512*wSectors,&dwNum,NULL); 
    CloseHandle(hDev); 
	return(bRet); 
}