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

📄 scsi2.h

📁 一个UDF系统的SCSI的CDROM刻录软件.
💻 H
字号:
// SCSI2.h: interface for the SCSI2 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SCSI2_H__1DEE4066_AFFF_4070_A647_1819791050E7__INCLUDED_)
#define AFX_SCSI2_H__1DEE4066_AFFF_4070_A647_1819791050E7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "WNASPI32.H"
#include "SCSIDEFS.H"
#include "scsireg.h"
#include "ecma_167.h"
#include "osta_udf.h"

#define block_size		2048

typedef struct{
	BYTE	m_HA;
	BYTE	m_ID;
	BYTE	m_LUN;
	CString m_name;
}DRIVEINFO;

class SCSI2  
{
public:
	SCSI2();
	virtual ~SCSI2();
	bool ASPIStart ();
	void ASPIStop ();
	void SCSISelectDevice(BYTE, BYTE, BYTE);
	bool ASPIReset();
	int SCSIBusScan (DRIVEINFO*,BYTE type=0xff,bool silent=true);
	bool WritePacket(long);
	bool WritePacket(unsigned char*,long);
	bool WritePacket(unsigned char*,long,long,bool packet=true);
	bool FormatDisc(const char*);
	bool WriteFiles(CString);
	CString ListFiles();
	bool SaveFileAs(int ID,CString path);
	bool CloseSession();
	bool ReserveTrack(int size);

	bool	SCSIRead(unsigned char*,long,long,bool header=false);
	bool	SCSISetSpeed(int,int);
	CString SCSIInquiry (bool multiline=true);
	CString SCSICDROMCapacity();
	CString SCSICDRScan();
	CString SCSICapabilities();
	CString TOC();
	CString ATIP();
	CString PMA();
	CString WriteParameters();
	CString ReadTrackInfo(int,track_info*result=NULL);
	CString ReadDiskInfo(disk_info* result=NULL);
	bool	SetWriteParameters(int,int,int,int);
	void	LoadUnload(bool);
	int		TestUnitReady ();
	CString checkError(BYTE);
	CString checkSense();
	static int toInt64(unsigned char input[8]);
	static int toInt32(unsigned char input[4]);		
	static int toInt16(unsigned char input[2]);
	void	setLBA(long);
	bool	m_silence;
	long	getLBA(){return m_lba;};
protected:
	BYTE	m_HA;
	BYTE	m_ID;
	BYTE	m_LUN;
	long	m_lba;
	scsi_sense	m_sense;

	CStringList* chopFileNames(CString s);
	tag		fillTag(int,BYTE*,int size,int);
	
	HINSTANCE		hinstWNASPI32;
	DWORD  (*pfnGetASPI32SupportInfo)( void );
	DWORD  (*pfnSendASPI32Command)( LPSRB );
	BOOL   (*pfnGetASPI32Buffer)( PASPI32BUFF );
	BOOL   (*pfnFreeASPI32Buffer)( PASPI32BUFF );
	BOOL   (*pfnTranslateASPI32Address)( PDWORD, PDWORD );
	void* hEventSRB;
};

#endif // !defined(AFX_SCSI2_H__1DEE4066_AFFF_4070_A647_1819791050E7__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -