www.pudn.com > usbboot-v1.2.rar.zip > Usb_Boot_Driver_Device.h, change:2007-09-04,size:3300b


// Jz4740_usbDevice.h 
// 
// Generated by DriverWizard version DriverStudio 3.1.0 (Build 1722) 
// Requires Compuware's DriverWorks classes 
// 
 
#ifndef __Jz4740_usbDevice_h__ 
#define __Jz4740_usbDevice_h__ 
 
#define JZ4740_VR_GET_CPU_INFO		0x00 
#define JZ4740_VR_SET_DATA_ADDRESS	0x01 
#define JZ4740_VR_SET_DATA_LENGTH	0x02 
#define JZ4740_VR_FLUSH_CACHES		0x03 
#define JZ4740_VR_PROG_START1		0x04 
#define JZ4740_VR_PROG_START2		0x05 
#define JZ4740_VR_NOR_OPS			0x06 
#define JZ4740_VR_NAND_OPS			0x07 
#define JZ4740_VR_SDRAM_OPS			0x08 
#define JZ4740_VR_CONFIGRATION		0x09 
 
	// Forward declaration 
class Jz4740_usbDevice; 
 
struct USB_COMPLETION_INFO 
{ 
	PURB m_pUrb; 
	Jz4740_usbDevice* m_pClass; 
}; 
 
class Jz4740_usbDevice : public KPnpDevice 
{ 
	// Constructors 
public: 
	SAFE_DESTRUCTORS; 
	Jz4740_usbDevice(PDEVICE_OBJECT Pdo, ULONG Unit); 
	~Jz4740_usbDevice(); 
 
	// Member Functions 
public: 
	DEVMEMBER_DISPATCHERS 
	MEMBER_COMPLETEIRPWITHCONTEXT(USB_COMPLETION_INFO, ReadComplete) 
	MEMBER_COMPLETEIRPWITHCONTEXT(USB_COMPLETION_INFO, WriteComplete) 
	virtual NTSTATUS OnStartDevice(KIrp I); 
	virtual NTSTATUS OnStopDevice(KIrp I); 
	virtual NTSTATUS OnRemoveDevice(KIrp I); 
	virtual NTSTATUS DefaultPnp(KIrp I); 
	virtual NTSTATUS DefaultPower(KIrp I); 
	virtual NTSTATUS OnDevicePowerUp(KIrp I); 
	virtual NTSTATUS OnDeviceSleep(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_GET_CPU_INFO_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_SET_DATA_ADDRESS_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_SET_DATA_LENGTH_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_FLUSH_CACHES_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_PROG_START1_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_PROG_START2_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_NOR_OPS_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_NAND_OPS_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_CONFIGRATION_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_GET_NUM_Handler(KIrp I); 
	NTSTATUS JZ4740_USB_IOCTL_SDRAM_OPS_Handler(KIrp I); 
 
#ifdef _COMMENT_ONLY 
 
		// The following member functions are actually defined by the 
		// a DEVMEMBER_xxx or MEMBER_xxx macro (such as DEVMEMBER_DISPATCHERS). 
		// The macro __COMMENT_ONLY never gets defined.  These comment-only 
		// definitions simply allow easy navigation to the functions within 
		// the Developer Studio using the class browser. 
 
	NTSTATUS __stdcall ReadComplete(KIrp I, USB_COMPLETION_INFO* pContext); // COMMENT_ONLY 
	NTSTATUS __stdcall WriteComplete(KIrp I, USB_COMPLETION_INFO* pContext); // COMMENT_ONLY 
	virtual NTSTATUS CleanUp(KIrp I);				// COMMENT_ONLY 
	virtual NTSTATUS Create(KIrp I);				// COMMENT_ONLY 
	virtual NTSTATUS Close(KIrp I);					// COMMENT_ONLY 
	virtual NTSTATUS DeviceControl(KIrp I);			// COMMENT_ONLY 
	virtual NTSTATUS SystemControl(KIrp I);			// COMMENT_ONLY 
	virtual NTSTATUS Read(KIrp I);					// COMMENT_ONLY 
	virtual NTSTATUS Write(KIrp I);					// COMMENT_ONLY 
#endif 
 
	// Member Data 
private: 
	static UCHAR		dev_n; 
protected: 
		// Unit number for this device (0-9) 
	ULONG				m_Unit; 
 
	KUsbLowerDevice		m_Lower; 
	KUsbInterface   	m_Interface; 
		// Pipe for USB endpoint 1 OUT (address 0x1) 
	KUsbPipe				m_Endpoint1OUT; 
		// Pipe for USB endpoint 1 IN (address 0x81) 
	KUsbPipe				m_Endpoint1IN; 
}; 
 
 
#endif