#ifndef __DISK_INTERFACE_H__ #define __DISK_INTERFACE_H__ class DiskInterface { public: virtual bool Open(int devid)=0; virtual bool InitRead(ULONGLONG llOffset, DWORD dwLength)=0; virtual bool Read(ULONGLONG llOffset, DWORD dwLength, BYTE *buffer, DWORD &dwRead)=0; virtual bool InitWrite(ULONGLONG llOffset, DWORD dwLength)=0; virtual bool Write(ULONGLONG llOffset, DWORD dwLength, const BYTE *buffer, DWORD &dwWritten)=0; virtual bool GetDiskSize(ULONGLONG &llDiskSize)=0; virtual bool GetDiskParams(DWORD &dwBlockSize, DWORD &dwSectorSize)=0; virtual bool Protect(bool bInsert, const BYTE *password)=0; virtual bool GetUniqueId(BYTE *id, int size)=0; }; #endif