#ifndef __DISKFUNCTIONS_H__ #include #include "diskio.h" // from platformbuilder class PhysicalDisk { public: PhysicalDisk(); ~PhysicalDisk(); bool Open(int n); void DumpInfo(); bool ReadBlocks(int nStart, int nBlocks, BYTE* &buffer, int& nBytesRead); bool WriteBlocks(int nStart, int nBlocks, const BYTE* buffer, int& nBytesWritten); int blocksize(); private: CString m_name; DISK_INFO m_info; STORAGE_IDENTIFICATION *m_sid; HANDLE m_hDsk; int m_ioctlStyle; }; static bool DiskInfo(HANDLE hDsk); static bool DiskReadBlocks(HANDLE hDsk, int nStart, int nBlocks, const DISK_INFO& info, BYTE* &buffer, int& nBytesRead); static bool DiskWriteBlocks(HANDLE hDsk, int nStart, int nBlocks, const DISK_INFO& info, const BYTE* buffer, int& nBytesWritten); static HANDLE OpenDisk(int n); static int GetDiskInfo(HANDLE hDsk, DISK_INFO &info); static int GetDiskName(HANDLE hDsk, CString &name); static int GetDiskStorageId(HANDLE hDsk, STORAGE_IDENTIFICATION* &sid); #define __DISKFUNCTIONS_H__ #endif