2,新增“Apps”; 3,新增“Common”; 4,新增“FileList”; 5,新增“MediaX”; 6,新增“OpenSource”; 7,新增“Samples”; 8,新增“SoftwareBusinessLines”.
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
#ifndef __DiskAccessor_H__
|
|
#define __DiskAccessor_H__
|
|
|
|
#include <stdio.h>
|
|
#include <windows.h>
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
using namespace std;
|
|
|
|
typedef struct tagDiskInfo
|
|
{
|
|
int nDiskID;
|
|
LARGE_INTEGER varDiskCapacity;
|
|
} DiskInfo;
|
|
|
|
class DiskAccessor
|
|
{
|
|
public:
|
|
enum AccessMode
|
|
{
|
|
AM_ReadOnly = 1,
|
|
AM_WriteOnly = 2,
|
|
AM_ReadWrite = 3,
|
|
AM_None = 0,
|
|
};
|
|
|
|
DiskAccessor();
|
|
virtual ~DiskAccessor();
|
|
|
|
bool OpenDisk(__in LARGE_INTEGER& varDiskCapacity , __in int nDiskID, AccessMode eAccessMode = AccessMode::AM_ReadOnly);
|
|
void CloseDisk();
|
|
bool ReadData(__out byte* pReadData, __in int nReadDataLen, __in LARGE_INTEGER varOffset);
|
|
bool WriteData(__in byte* pWriteData, __in int nWriteDataLen, __in LARGE_INTEGER varOffset);
|
|
|
|
static bool EnumDisks(vector<DiskInfo>& vecDiskInfo);
|
|
static bool GetDiskLength(LARGE_INTEGER& varDiskLength, int nDiskID);
|
|
|
|
private:
|
|
AccessMode m_eAccessMode;
|
|
HANDLE m_hDisk;
|
|
bool m_bOpen;
|
|
};
|
|
|
|
#endif
|