//========================================================================
// Class Name	: NIC_DRIVER_USB
// Purpose		: 
// Autor		: Richard Chuang
// Email		: 
// Description	: 
// Reference    : 
// Copyright    : Copyright (c) 2000-2007 Davicom Inc.  All rights reserved.
// -----------------------------------------------------------------------
// Version		: 5.0.0.0
// Update       : 2007-10-23
// Modified		: Richard Chung
// Description	: 
// -----------------------------------------------------------------------
// How to use: 
// 
#if !defined(_DAVICOM_USB_DRIVER_H_)
#define _DAVICOM_USB_DRIVER_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "stdafx.h"
#include "driver.h"
#include "device.h"
#include <usb100.h>
#include <usbdi.h>
#include <usbtypes.h>

class NIC_DRIVER_USB : public NIC_DRIVER_OBJECT
{
public:
	NIC_DRIVER_USB(
		NDIS_HANDLE 			MiniportHandle, 
		NDIS_HANDLE 			WrapperConfigHandle,
		USB_HANDLE 				hDevice, 
		LPCUSB_FUNCS			lpUsbFuncs, 
		LPCUSB_DEVICE			lpUsbDevice,
		LPCUSB_INTERFACE 		lpInterface);

	~NIC_DRIVER_USB(void);

	virtual void MiniportInitialize(
		OUT PNDIS_STATUS OpenErrorStatus,
		OUT PUINT SelectedMediaIndex, 
		IN PNDIS_MEDIUM MediaArray, 
		IN UINT MediaArraySize);

	virtual	void DriverOnUsbNotify(U32);
	
public:

protected:
	USB_HANDLE 			m_hUsbHandle;
	LPCUSB_DEVICE		m_lpUsbDevice;
	LPCUSB_FUNCS		m_lpUsbFuncs;
	LPCUSB_INTERFACE 	m_lpUsbInterface;

};


#endif // !defined(_DAVICOM_USB_DRIVER_H_)
