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