Files
CodeRepository/Apps/App_FastDiskAccessor/DiskAccessor.h
chenzhen 222dda1e43 1,新增“App_ThermalImageSystem”;
2,新增“Apps”;
3,新增“Common”;
4,新增“FileList”;
5,新增“MediaX”;
6,新增“OpenSource”;
7,新增“Samples”;
8,新增“SoftwareBusinessLines”.
2026-02-14 23:03:23 +08:00

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