📄 aspidriver.h
字号:
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#ifndef _WN_ASPI
#include "wnaspi32.h"
#include "scsidefs.h"
#pragma pack(push, before_aspi)
#include "ASPI.h"
#pragma pack(pop, before_aspi)
#define _WN_ASPI
#endif
#include "DeviceList.h"
#include "resource.h" // main symbols
class CASPIDriver : public CObject
{
public:
CASPIDriver (BOOL bPosting=FALSE);
virtual ~CASPIDriver();
static void PostProc(LPVOID DoneSRB);
WORD InstalledAdapters (void);
BOOL Init (HWND hWnd);
void Destroy (void);
void Display (DWORD dwRequestID,LPVOID SRB,CString &str);
DWORD WaitReady (LPVOID SRBptr);
void GetBlockLimits (DWORD *nMin,DWORD *nMax);
DWORD Scan (BYTE adapter_id,BYTE device_id,LPVOID buffer,BYTE size);
DWORD Reset (BYTE adapter_id,BYTE device_id);
DWORD LoadUnload (BYTE adapter_id,BYTE device_id,BYTE lun,BYTE bLoad);
DWORD ReadBlockLimits (BYTE adapter_id,BYTE device_id,BYTE lun);
DWORD Rezero (BYTE adapter_id,BYTE device_id,BYTE lun,BYTE immediate);
DWORD WriteFileMark (BYTE adapter_id,BYTE device_id,BYTE lun,DWORD size,BYTE bSetMark,BYTE bImmediate);
DWORD Read (BYTE adapter_id,BYTE device_id,BYTE lun,LPVOID buffer,DWORD size,DWORD blksize,BYTE bSili,BYTE bFixed);
DWORD Write (BYTE adapter_id,BYTE device_id,BYTE lun,LPVOID buffer,DWORD size,DWORD blksize,BYTE bFixed);
DWORD Space (BYTE adapter_id,BYTE device_id,BYTE lun,BYTE bByFile,DWORD position);
DWORD GetPosition (BYTE adapter_id,BYTE device_id,BYTE lun,DWORD *pos);
DWORD RequestSense (BYTE adapter_id,BYTE device_id,BYTE lun);
DWORD ModeSelect (BYTE adapter_id,BYTE device_id,BYTE lun,LPVOID buffer,DWORD size);
DWORD ModeSense (BYTE adapter_id,BYTE device_id,BYTE lun,BYTE page,BYTE code,LPVOID buff,DWORD size);
BYTE DeviceType (BYTE adapter_id,BYTE device_id,BYTE lun,CString &name);
void HaInquiry (BYTE adapter_id,SRB_HAInquiry *inq);
void GetSenseString (CString &str);
DWORD Copy (BYTE src_adapter_id,BYTE src_id,BYTE src_lun,
BYTE dst_id,BYTE dst_lun,
DWORD count);
DWORD Reserve (BYTE adapter_id,BYTE device_id,BYTE lun,BYTE dest_id);
CDeviceList m_DeviceList;
protected:
void ShutDown (void);
void DisplaySense (SRB_MyExecSCSICmd *p);
DWORD GetError (SRB_MyExecSCSICmd *);
DWORD RunCommand (LPVOID pSRB);
static HANDLE m_hDoneEvent;
DWORD m_nPosition;
HWND m_hParent;
WORD m_nAdapters;
BYTE m_bHostID;
CString m_strHostName;
DWORD m_nBlockLimit_Min;
DWORD m_nBlockLimit_Max;
CString m_strSense;
BOOL m_bUsePosting;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -