亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? seeddecusb.h

?? C5509例程
?? H
字號:
/**********************************************************************/
/* this file is the function for test the seeddec5416 driver and devic*/
/*	author lifeng Duan												  */
/*	Lt.d	SEED													  */
/**********************************************************************/

#ifndef _SEEDDECUSB_H_
#define _SEEDDECUSB_H_

typedef PVOID USBD_PIPE_HANDLE;
typedef PVOID USBD_CONFIGURATION_HANDLE;
typedef PVOID USBD_INTERFACE_HANDLE;

/*定義通道的類型*/
typedef enum _USBD_PIPE_TYPE {
    /*控制類型*/
	UsbdPipeTypeControl,
	/*等時傳送類型*/
    UsbdPipeTypeIsochronous,
	/*批量傳送類型*/
    UsbdPipeTypeBulk,
	/*中斷傳送類型*/
    UsbdPipeTypeInterrupt
} USBD_PIPE_TYPE;

/*定義管道的描述表節構*/
typedef struct _USBD_PIPE_INFORMATION {
	// Maximum packet size for this pipe
	//節點數據包的最大長度
    USHORT MaximumPacketSize;
	// 8 bit USB endpoint address (includes direction)
	//USB節點的地址(包括方向)
	UCHAR EndpointAddress;
	// Polling interval in ms if interrupt pipe,taken from endpoint descriptor 
    //中斷檢測間隔; 
    UCHAR Interval; 
	// PipeType identifies type of transfer valid for this pipe
	//有效節點的類型
	USBD_PIPE_TYPE PipeType;
	  
               
    USBD_PIPE_HANDLE PipeHandle;
    // INPUT
    // These fields are filled in by the client driver
    // Maximum size for a single request in bytes.
    ULONG MaximumTransferSize; 
    //通路標識                           
    ULONG PipeFlags;                                   
} USBD_PIPE_INFORMATION, *PUSBD_PIPE_INFORMATION;

/*USB接口的定義節構*/
typedef struct _USBD_INTERFACE_INFORMATION {
    //節構的長度,包括所有節點的信息長度
	USHORT Length; 
    // INPUT
    // Interface number and Alternate setting this
    // structure is associated with
    UCHAR InterfaceNumber;
    UCHAR AlternateSetting;
    // OUTPUT讀接收描述表得到
    // These fields are filled in by USBD
    UCHAR Class;
    UCHAR SubClass;
    UCHAR Protocol;
    UCHAR Reserved;
    
    USBD_INTERFACE_HANDLE InterfaceHandle;
    ULONG NumberOfPipes; 
	//Endpoint status
    USBD_PIPE_INFORMATION Pipes[16];		// The length must be equal or more than the endpoints configued 
} USBD_INTERFACE_INFORMATION, *PUSBD_INTERFACE_INFORMATION;

/*設備描述符節構*/
typedef struct __usb_Dev_Descriptor__ {
    UCHAR  bLength;
    UCHAR  bDescriptorType;
    USHORT bcdUSB;
    UCHAR  bDeviceClass;
    UCHAR  bDeviceSubClass;
    UCHAR  bDeviceProtocol;
    UCHAR  bMaxPacketSize0;
    USHORT idVendor;
    USHORT idProduct;
    USHORT bcdDevice;
    UCHAR  iManufacturer;
    UCHAR  iProduct;
    UCHAR  iSerialNumber;
    UCHAR  bNumConfigurations;
} Usb_Device_Descriptor, *pUsb_Device_Descriptor;

/*設備限定描述表結構*/
typedef struct __usb_Dev_Quali_Descriptor__ {
    UCHAR  bLength;
    UCHAR  bDescriptorType;
    USHORT bcdUSB;
    UCHAR  bDeviceClass;
    UCHAR  bDeviceSubClass;
    UCHAR  bDeviceProtocol;
    UCHAR  bMaxPacketSize0;
    UCHAR  bNumConfigurations;
	UCHAR  bReserved;
} Usb_Device_QualiDescriptor, *pUsb_Device_QualiDescriptor;

/*配置描述表*/
typedef struct __usb_Config_Descriptor__ {
    UCHAR bLength;
    UCHAR bDescriptorType;
    USHORT wTotalLength;
    UCHAR bNumInterfaces;
    UCHAR bConfigurationValue;
    UCHAR iConfiguration;
    UCHAR bmAttributes;
    UCHAR MaxPower;
} Usb_Configuration_Descriptor, *pUsb_Configuration_Descriptor;

/*字符串描述表*/
typedef struct __usb_String_Descriptor__ { //TPM added the usb_String_Descriptor
    UCHAR bLength;
    UCHAR bDescriptorType;
    char bString[100];
} Usb_String_Descriptor, *pUsb_String_Descriptor;

typedef struct _USB_ENDPOINT_DESCRIPTOR 
{
    UCHAR	bLength;
    UCHAR	bDescriptorType;
    UCHAR	bEndpointAddress;
    UCHAR	bmAttributes;
    USHORT	wMaxPacketSize;			// 2個字節長度
    UCHAR	bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;

typedef struct _USB_INTERFACE_DESCRIPTOR 
{
    UCHAR	bLength;
    UCHAR	bDescriptorType;
    UCHAR	bInterfaceNumber;
    UCHAR	bAlternateSetting;
    UCHAR	bNumEndpoints;
    UCHAR	bInterfaceClass;
    UCHAR	bInterfaceSubClass;
    UCHAR	bInterfaceProtocol;
    UCHAR	iInterface;
} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;


#define GET_STRING_DESCRIPTOR_LENGTH(pv) \
    ((pUsb_String_Descriptor)pv)->bLength

#define GET_CONFIG_DESCRIPTOR_LENGTH(pv) \
    ((pUsb_Configuration_Descriptor)pv)->wTotalLength

BOOL DoIoctl(
  HANDLE hDevice,              // handle to device of interest
  DWORD dwIoControlCode,       // control code of operation to perform
  LPVOID lpInBuffer,           // pointer to buffer to supply input data
  DWORD nInBufferSize,         // size, in bytes, of input buffer
  LPVOID lpOutBuffer,          // pointer to buffer to receive output data
  DWORD nOutBufferSize,        // size, in bytes, of output buffer
  LPDWORD lpBytesReturned,     // pointer to variable to receive byte count
  LPOVERLAPPED lpOverlapped,   // pointer to structure for asynchronous operation
  CString& hOutputBox
);

/************************************************************/
/*	專門為5509定義配置描述表								*/
/************************************************************/
typedef struct USB_DataStructDef
{
	USHORT                    Bytes;        // Total number of bytes in the buf 
	USHORT                    *pBuffer;     // pointer to the start of buffer   
	struct USB_DataStructDef  *pNextBuffer; // pointer to the next structure    
	
}USB_DataStruct;

typedef struct Bulk_In2_link
{				// Endpoint 2 in descriptor
	USHORT 	Bytes;
	USB_ENDPOINT_DESCRIPTOR *EndIn2Ptr;
	USB_DataStructDef *Ptr;		
} BulkIn2Link, *PBulkIn2Link;

typedef struct Bulk_Out2_link 
{			// Endpoint 2 out descriptor
		USHORT 	Bytes;
		USB_ENDPOINT_DESCRIPTOR *EndOut2Ptr;;
		Bulk_In2_link	*BulkInPtr;	
} BulkOut2Link, *PBulkOut2Link;

typedef struct usb_interface_link 
{		// Interface descriptor
		USHORT 	Bytes;
		USB_INTERFACE_DESCRIPTOR *InterPtr;
		Bulk_Out2_link	*BulkOutPtr;
} UsbInterfaceLink, *PUsbInterfaceLink;

typedef struct usb_configuration_link 
{	// Device descriptor
		USHORT 	Bytes;
		Usb_Configuration_Descriptor *ConfigPtr;
		usb_interface_link	*UsbIntPtr;	
} UsbConfigurationLink, *PUsbConfigurationLink;

/*-------------------------------------------------------------------------------*/
/**********************************************************************/
/* OpenDriver()		                                                  */
/*                                                                    */
/* Purpose:													          */ 
/*      Opens the device driver using symbolic name provided          */
/*															          */
/* Input:  none                                                       */
/*															          */
/* Return Value:                                                      */
/*      Boolean that indicates if the driver was                      */
/*      successfully opened or not.									  */
/**********************************************************************/
BOOLEAN	OpenDriver(int Usbnum);
/**********************************************************************/
/* CloseDriver()													  */
/* Purpose:															  */ 
/*      Close the device driver using symbolic						  */
/* Input:															  */
/*			none													  */
/* Return Value:													  */
/*			none													  */
/**********************************************************************/
void CloseDriver(int Usbnum);
/**********************************************************************/
/*	get the device descriptor										  */
/*	purpose:														  */
/*			get the device descriptor for the CY7c68001			      */
/*	Input:															  */
/*			none													  */
/* Return Value:												      */
/*      Boolean that indicates if the driver was					  */
/*      successfully opened or not.									  */
/**********************************************************************/
PVOID Sx2GetDeviceDesc(int Usbnum);
/**********************************************************************/
/*	get the string descriptor										  */
/*	purpose:														  */
/*			get the string descriptor for the CY7c68001			      */
/*	Input:															  */
/*			none													  */
/* Return Value:												      */
/*      the point for string descriptor								  */
/**********************************************************************/
PVOID Sx2GetStringDesc(int Usbnum,int stringindex,int languageID);
/**********************************************************************/
/*	get the configuration descriptor    							  */
/*	purpose:														  */
/*			get the configuration descriptor for the CY7c68001	      */
/*	Input:															  */
/*			none													  */
/* Return Value:												      */
/*      the point for string descriptor								  */
/**********************************************************************/
PVOID Sx2GetconfigDesc(int Usbnum);
/**********************************************************************/
/*	get the USB's interface 		    							  */
/*	purpose:														  */
/*				get the interface desc of the CY7c68001  		      */
/*	Input:															  */
/*			the interface's struct  								  */
/*																	  */
/* Return Value:												      */
/*      the point for string descriptor								  */
/**********************************************************************/
BOOLEAN Sx2GetPipeInfo(int Usbnum,PVOID pInterface);
/**********************************************************************/
/*	send the vendor request			    							  */
/*	purpose:														  */
/*				send the vendor request to the CY7c68001		      */
/*	Input:															  */
/*			myRest struct											  */
/* Return Value:												      */
/*      the point for string descriptor								  */
/**********************************************************************/
BOOLEAN Sx2SendVendorReq(int Usbnum,
						 PVOID myRequest,
						 char *buffer,
						 int bufferSize,
						 int *recnBytes);
/**********************************************************************/
/*	bulk date translate  			    							  */
/*	purpose:														  */
/*				stranslate the data between PC and the CY7c68001      */
/*	Input:															  */
/*			the point of myRest struct								  */
/*																	  */
/* Return Value:												      */
/*      the point for string descriptor								  */
/**********************************************************************/
BOOLEAN	Sx2BulkdataTrans(int Usbnum,
						 PVOID bulkControl,
						 char *buffer,
						 int bufferSize,
						 int *recnBytes);


/**********************************************************************/
/*	send the get configuration request			    				  */
/*	purpose:														  */
/*				send the get configuration request to the CY7c68001	  */
/*	Input:															  */
/*			the point of myRest struct								  */
/*																	  */
/* Return Value:												      */
/*      the point for string descriptor								  */
/**********************************************************************/
BOOLEAN Sx2SendGetConfigReq(int Usbnum,
							PVOID myRequest,
							char *buffer,
							int bufferSize,
							int *recnBytes);

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一区视频| 国内精品久久久久影院色| 国产片一区二区| 久久久亚洲精华液精华液精华液| 欧美一区二区免费视频| 欧美一区国产二区| 日韩免费一区二区三区在线播放| 欧美久久久久久久久中文字幕| 欧美日韩日本视频| 91精品国产综合久久国产大片| 日韩一区二区中文字幕| xnxx国产精品| 国产精品麻豆99久久久久久| 亚洲免费在线电影| 视频在线观看一区| 久久99精品久久只有精品| 国产成人亚洲精品青草天美 | 久久久久一区二区三区四区| 国产欧美日韩在线视频| 亚洲男女一区二区三区| 婷婷国产v国产偷v亚洲高清| 韩国精品主播一区二区在线观看| 国产成人午夜精品5599 | 视频一区二区三区入口| 麻豆中文一区二区| 成+人+亚洲+综合天堂| 欧美体内she精视频| 欧美一级xxx| 亚洲欧洲日产国产综合网| 亚洲综合免费观看高清完整版| 日韩精品久久理论片| 国产麻豆成人精品| 欧美日韩成人综合在线一区二区| 精品理论电影在线| 一区二区激情小说| 国产麻豆91精品| 欧美日韩一区二区在线视频| 精品对白一区国产伦| 亚洲欧美在线视频| 极品尤物av久久免费看| 91免费观看视频在线| 欧美电影免费提供在线观看| 最新欧美精品一区二区三区| 激情深爱一区二区| 欧美日高清视频| 亚洲愉拍自拍另类高清精品| 美国三级日本三级久久99 | 5858s免费视频成人| 国产精品毛片无遮挡高清| 蜜桃av一区二区在线观看 | 精品国产sm最大网站| 亚洲一区二区三区在线看| 高清久久久久久| 精品国内二区三区| 视频在线在亚洲| 欧美日韩中字一区| 亚洲欧美另类久久久精品2019| 国产乱码一区二区三区| 91精品欧美福利在线观看| 一区二区三区在线视频观看58 | 亚洲一区二区三区爽爽爽爽爽| 成人黄色a**站在线观看| 国产欧美一区二区在线| 91在线视频免费91| 色婷婷激情久久| 国产精品乡下勾搭老头1| 制服丝袜中文字幕一区| 中文字幕亚洲不卡| 成人免费三级在线| 国产三级精品视频| 成人性生交大片免费看中文网站| 久久美女艺术照精彩视频福利播放| 日本欧美韩国一区三区| 欧美一区二区精美| 蜜臀av一区二区在线免费观看| 欧美年轻男男videosbes| 亚洲综合激情网| 欧美日韩电影一区| 亚洲成人7777| 欧美色图12p| 亚洲午夜久久久久久久久电影网 | 欧美日韩免费高清一区色橹橹| 亚洲三级理论片| 色久综合一二码| 亚洲乱码国产乱码精品精98午夜| 99久久er热在这里只有精品66| 中文字幕av一区二区三区高| 成人app在线观看| 最新不卡av在线| 欧美影视一区在线| 日日骚欧美日韩| 欧美成人激情免费网| 黄一区二区三区| 中文字幕精品一区二区三区精品| 欧美性猛交一区二区三区精品| 亚洲成年人影院| 精品久久久久久久一区二区蜜臀| 国产高清成人在线| 亚洲欧美一区二区三区极速播放| 在线视频一区二区免费| 奇米综合一区二区三区精品视频 | 粉嫩一区二区三区在线看| 国产精品国产三级国产普通话三级| 99综合电影在线视频| 天堂va蜜桃一区二区三区漫画版| 精品日韩欧美一区二区| www.成人网.com| 美女免费视频一区二区| 欧美国产激情二区三区| 欧美精品一级二级| 国产真实乱对白精彩久久| 成人欧美一区二区三区小说| 4438亚洲最大| 成人综合婷婷国产精品久久蜜臀| 亚洲午夜精品一区二区三区他趣| 精品乱人伦小说| 欧美日韩精品欧美日韩精品一| 国产一区在线视频| 亚洲韩国精品一区| 国产调教视频一区| 欧美精品在线观看一区二区| 99在线精品视频| 国产自产2019最新不卡| 一区二区三区四区av| 国产校园另类小说区| 欧美一二三在线| 欧美最新大片在线看| 国产不卡在线播放| 蜜臀av国产精品久久久久| 亚洲永久免费视频| 国产精品国产三级国产普通话蜜臀 | 国产精品一区二区在线播放 | 欧美一级片免费看| 91亚洲国产成人精品一区二三| 国产一区二区三区久久久 | 中文字幕乱码久久午夜不卡 | 亚洲男人天堂av网| 久久久91精品国产一区二区三区| 制服丝袜亚洲播放| 欧美日韩一区在线| 欧美偷拍一区二区| 91久久精品一区二区| 91蜜桃在线免费视频| 91在线云播放| 99久久精品99国产精品 | 亚洲影视在线观看| 最近中文字幕一区二区三区| 国产精品剧情在线亚洲| 国产亲近乱来精品视频| 国产欧美日韩麻豆91| 欧美国产视频在线| 国产精品免费看片| 国产精品久久久久久久岛一牛影视| 国产午夜亚洲精品午夜鲁丝片| 精品国产一区久久| 精品福利在线导航| 精品久久久久久久一区二区蜜臀| 欧美一级高清片| 欧美一区二区三区四区高清| 日韩免费高清电影| 日韩一本二本av| 精品不卡在线视频| 久久精品夜色噜噜亚洲a∨| 国产清纯在线一区二区www| 国产精品久久久久久久久晋中| 中文字幕一区二区三区四区不卡| 亚洲男女毛片无遮挡| 图片区日韩欧美亚洲| 麻豆成人综合网| 国产精品羞羞答答xxdd| av激情成人网| 欧美久久久久中文字幕| 亚洲精品一区二区精华| 中文字幕在线免费不卡| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲五码中文字幕| 寂寞少妇一区二区三区| 99精品视频中文字幕| 在线国产电影不卡| 日韩欧美国产系列| 国产精品视频在线看| 一区二区三区在线观看动漫| 免费在线观看精品| 不卡大黄网站免费看| 91精品国产手机| 国产精品久久777777| 亚洲va韩国va欧美va| 国产综合色在线| 一本大道久久a久久综合婷婷 | 国产一区二区福利视频| 99久久er热在这里只有精品66| 在线综合+亚洲+欧美中文字幕| 中文字幕不卡的av| 日本不卡视频在线| 91麻豆自制传媒国产之光| 久久综合色婷婷| 亚洲伊人伊色伊影伊综合网| 国产寡妇亲子伦一区二区| 欧美日韩高清一区二区| 亚洲三级在线看|