⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aspidriver.h

📁 一个SCSI的Tape设备读写等操作的软件.
💻 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 + -