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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bol.c

?? 這個(gè)是好記星608的AP源代碼,他的主要是是GUI,還有對(duì)字典的操作
?? C
字號(hào):
// BulkOnlyLyr.cpp: implementation of the BulkOnlyLyr class.
//
//////////////////////////////////////////////////////////////////////

#define __OS_SOURCE_FILE__

#ifndef _WIN32
#include "kernel.h"
#include "SCL.h"
#include "BOL.h"

MS_STATUS USBReadWrite(INT nOperation,BYTE *pBuffer, UNSIGNED uRequestLen, UNSIGNED *puActualLen);

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//static UINT CBWLEN = sizeof(g_stCBW);
#define	CBWLEN			31
#define	CSWLEN			13
#define	SIGNATURELEN	4
#define	DATAXFERLEN	4
#define	DATARESIDUE	4
#define	TARGETLEN		4


static CBW g_stCBW;
static CSW g_stCSW;
static BYTE g_pCSW[CSWLEN];

static ULP_ONRECEIVEDPROC g_pfnULP_OnReceived[16];

static UINT g_uMaxLUN;
static UINT g_uStatusLocal;
extern NU_DRIVER	*pndUSB;

UINT BOL_Init(UINT uMaxLUN, ULP_ONRECEIVEDPROC *pfnULP_OnReceived)
{
//	NU_Printf("Bulk-Only initing...\n\r");

	memset(&g_stCBW,0,sizeof(g_stCBW));
	memset(&g_stCSW,0,sizeof(g_stCSW));
	memset(g_pCSW,0,sizeof(g_pCSW));
	memset(g_pfnULP_OnReceived,0,sizeof(g_pfnULP_OnReceived));

	g_stCSW.dwSignature = CSW_SIGNATURE;

	g_uMaxLUN = 0;
	g_uStatusLocal = DEVICE_STALL;


	//g_pfnULP_OnReceived = pfnULP_OnReceived;
	if (uMaxLUN >= 16)
		return -1;

	g_uMaxLUN = uMaxLUN;
	memcpy(g_pfnULP_OnReceived, pfnULP_OnReceived, sizeof(ULP_ONRECEIVEDPROC) * g_uMaxLUN);
	memcpy(g_pCSW, &g_stCSW, CSWLEN);

	g_uStatusLocal = DEVICE_IDLE;
	return 0;
}

UINT BOL_BulkCtrl(UINT uCtrl, DWORD *dwParam)
{
	switch(uCtrl)
	{
	case STALL:
		{ // Stall bulk endpoint.
			g_uStatusLocal = DEVICE_STALL;
		}break;
	case GETSTATUS:
		{
			*dwParam = g_uStatusLocal;
		}break;
	}
	return 0;
}




DWORD BOL_BulkOut(DWORD uDLen, BYTE *pData)
{
	NU_DRIVER_REQUEST   ndrTemp;

	//初始化USB驅(qū)動(dòng)
	ndrTemp.nu_function = NU_INPUT;
#define READWRITE_OPERATION	ndrTemp.nu_request_info.nu_input
	READWRITE_OPERATION.nu_logical_unit = 0;
	READWRITE_OPERATION.nu_buffer_ptr = pData;
	READWRITE_OPERATION.nu_request_size = uDLen;

	NU_Request_Driver(pndUSB, &ndrTemp);

	return READWRITE_OPERATION.nu_actual_size;

#undef READWRITE_OPERATION

}


DWORD BOL_BulkIn(DWORD uLen, BYTE *pData)
{
	NU_DRIVER_REQUEST   ndrTemp;

	ndrTemp.nu_function = NU_OUTPUT;

#define READWRITE_OPERATION	ndrTemp.nu_request_info.nu_output
	READWRITE_OPERATION.nu_logical_unit = 0;
	READWRITE_OPERATION.nu_buffer_ptr = pData;
	READWRITE_OPERATION.nu_request_size = uLen;

	NU_Request_Driver(pndUSB, &ndrTemp);

	return READWRITE_OPERATION.nu_actual_size;

#undef READWRITE_OPERATION

}

// LLP callback function.
UINT BOL_OnRecvCmd(UINT uLen, BYTE *pData)
{


//	NU_Printf("On Bulk-Only Receiving...\n\r");

	if (CBWLEN > uLen)
	{
		return CSW_WAITFOR_MORE_DATA;
	}
	 memcpy(&g_stCBW, pData, CBWLEN);

	  // 為了避免奇地址問(wèn)題實(shí)用下述代碼替代
/*	g_stCBW.dwSignature = READ_DWORD(p); p += SIGNATURELEN;
	g_stCBW.dwTaget = READ_DWORD(p); p += TARGETLEN;
	g_stCBW.dwDataXferLen = READ_DWORD(p); p += DATAXFERLEN;
	g_stCBW.uFlag = *p; p++;
	g_stCBW.uLUN = *p; p++;
	g_stCBW.uCDBLen = *p;
*/
	// 檢驗(yàn)CBW有效性
	if (CBW_SIGNATURE != g_stCBW.dwSignature)
		return CSW_PHASE_ERROR;
	g_stCSW.dwTaget = g_stCBW.dwTaget;

	if (g_stCBW.uLUN >= g_uMaxLUN)
		return CSW_NEEDTO_STALL_BULK;
	// 在存在多個(gè)邏輯單元的情況下,要根據(jù)g_stCBW.uLUN將命令分發(fā)到指定的邏輯單元上。

	uLen -= 15;
	pData += 15;

	g_stCSW.dwDataResidue = g_stCBW.dwDataXferLen;
	g_stCSW.uStatus = (g_pfnULP_OnReceived[g_stCBW.uLUN])
					? g_pfnULP_OnReceived[g_stCBW.uLUN](uLen, pData, g_stCBW.uFlag & CBW_FLAG_IN ? 1 : 0, g_stCBW.dwDataXferLen, &g_stCSW.dwDataResidue)
					: CSW_FAIL;


	BOL_BulkIn(CSWLEN, (BYTE *)&g_stCSW);
	// 為了避免奇地址問(wèn)題實(shí)用下述代碼替代
/*	p = g_pCSW + SIGNATURELEN;
	WRITE_DWORD(p, g_stCSW.dwTaget); p += TARGETLEN;
	WRITE_DWORD(p, g_stCSW.dwDataResidue); p += DATARESIDUE;
	*p = g_stCSW.uStatus;
	BOL_BulkIn(CSWLEN, g_pCSW);
*/
	return g_stCSW.uStatus;
}

MS_STATUS USBReadWrite(INT nOperation,BYTE *pBuffer, UNSIGNED uRequestLen, UNSIGNED *puActualLen)
{
	STATUS sts;
	NU_DRIVER_REQUEST   ndrTemp;

	//初始化USB驅(qū)動(dòng)
	ndrTemp.nu_function = nOperation;
	if(NU_INPUT == nOperation)
	{
		#define READWRITE_OPERATION	ndrTemp.nu_request_info.nu_input
		READWRITE_OPERATION.nu_logical_unit = 0;
		READWRITE_OPERATION.nu_buffer_ptr = pBuffer;
		READWRITE_OPERATION.nu_request_size = uRequestLen;

		sts = NU_Request_Driver(pndUSB, &ndrTemp);

		*puActualLen = READWRITE_OPERATION.nu_actual_size;

		#undef READWRITE_OPERATION

	}
	else
	{
#define READWRITE_OPERATION	ndrTemp.nu_request_info.nu_output
		READWRITE_OPERATION.nu_logical_unit = 0;
		READWRITE_OPERATION.nu_buffer_ptr = pBuffer;
		READWRITE_OPERATION.nu_request_size = uRequestLen;

		sts = NU_Request_Driver(pndUSB, &ndrTemp);

		*puActualLen = READWRITE_OPERATION.nu_actual_size;

#undef READWRITE_OPERATION
	}

	if(sts != NU_SUCCESS)
		return sts;

	return ndrTemp.nu_status;
}
#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费日本视频一区| 国产一区二区三区四| 精品国产一区二区三区久久久蜜月| 国产夫妻精品视频| 日韩精品久久理论片| 日本一区二区不卡视频| 日韩午夜电影av| 在线观看精品一区| 成人动漫中文字幕| 蜜臀av一区二区在线免费观看| 亚洲视频一区在线| 久久先锋影音av| 88在线观看91蜜桃国自产| av电影天堂一区二区在线观看| 久久99深爱久久99精品| 亚洲国产另类av| 亚洲人成小说网站色在线| 久久精品视频免费| 欧美www视频| 中文字幕亚洲在| 日韩一区二区麻豆国产| 欧美剧情片在线观看| 白白色 亚洲乱淫| 国产乱人伦偷精品视频不卡| 青青草一区二区三区| 亚洲va韩国va欧美va| 一二三四区精品视频| 亚洲欧美色一区| 国产精品麻豆99久久久久久| 国产亚洲精品福利| 久久久天堂av| 久久久精品人体av艺术| 精品va天堂亚洲国产| 日韩视频免费直播| 欧美电影免费观看高清完整版在线 | 国产亚洲一区字幕| 欧美岛国在线观看| 精品国内二区三区| 337p日本欧洲亚洲大胆精品| 精品乱码亚洲一区二区不卡| 欧美本精品男人aⅴ天堂| 日韩一区二区免费在线电影| 91精品中文字幕一区二区三区| 欧美日韩免费不卡视频一区二区三区| 在线一区二区观看| 在线观看av一区二区| 91久久精品一区二区| 在线观看一区不卡| 欧美无乱码久久久免费午夜一区 | 韩国女主播一区| 国产麻豆精品视频| 成人亚洲一区二区一| 成人黄色777网| 色婷婷久久99综合精品jk白丝 | 久久久久久久久久久久久夜| 久久中文娱乐网| 欧美国产丝袜视频| 亚洲人成网站在线| 亚洲成人在线网站| 九一久久久久久| 成人一区二区三区中文字幕| 91免费观看视频| 欧美日韩免费观看一区二区三区| 777a∨成人精品桃花网| 欧美r级电影在线观看| 国产免费成人在线视频| 亚洲天堂福利av| 视频一区视频二区中文字幕| 国产在线不卡一区| 99久久99久久综合| 欧美剧情电影在线观看完整版免费励志电影 | 中文字幕亚洲精品在线观看| 亚洲综合男人的天堂| 久久精品国产亚洲高清剧情介绍| 国产另类ts人妖一区二区| 91麻豆视频网站| 3d动漫精品啪啪一区二区竹菊| 26uuu亚洲| 亚洲久草在线视频| 免费成人你懂的| www.色综合.com| 欧美一区二区三区免费视频 | 欧美美女网站色| 精品国产乱码久久久久久闺蜜| 中文字幕日本不卡| 男人操女人的视频在线观看欧美| 国产精品66部| 欧美军同video69gay| 中文在线一区二区| 日韩1区2区3区| 成人福利在线看| 日韩欧美成人一区| 亚洲一区二区av电影| 国产福利一区二区三区| 欧美丰满少妇xxxxx高潮对白| 国产精品久久久久影院| 免费成人av在线播放| jlzzjlzz欧美大全| 精品国产一区二区三区忘忧草| 亚洲综合成人网| 成人一级视频在线观看| 日韩亚洲欧美在线观看| 亚洲乱码国产乱码精品精小说 | 欧美午夜影院一区| 国产精品视频一二| 久久国产综合精品| 欧美视频完全免费看| 国产精品日韩精品欧美在线| 美国毛片一区二区三区| 欧美视频中文字幕| 亚洲欧洲日韩在线| 国产高清久久久久| 欧美成人官网二区| 日日夜夜一区二区| 欧美最猛性xxxxx直播| 最新日韩av在线| 国产成人aaa| 精品捆绑美女sm三区| 日韩高清一级片| 欧美日韩一区二区三区不卡| 亚洲欧美日韩中文字幕一区二区三区| 国产成人午夜视频| 精品欧美久久久| 另类小说视频一区二区| 欧美疯狂性受xxxxx喷水图片| 亚洲线精品一区二区三区| 91美女精品福利| 亚洲欧洲精品天堂一级| 国产成人精品亚洲日本在线桃色 | 成人久久久精品乱码一区二区三区| 欧美一区二区三区日韩| 日本不卡视频一二三区| 制服视频三区第一页精品| 婷婷久久综合九色综合绿巨人| 欧美色图12p| 视频在线观看一区二区三区| 欧美巨大另类极品videosbest| 图片区小说区区亚洲影院| 欧美精品自拍偷拍| 日韩二区三区四区| 91精品在线免费观看| 青娱乐精品视频| 精品剧情v国产在线观看在线| 国产一区二区调教| 久久只精品国产| 丁香婷婷综合激情五月色| 国产精品久99| 99精品视频在线播放观看| 玉米视频成人免费看| 欧美探花视频资源| 日本不卡一二三| 久久久蜜臀国产一区二区| 懂色一区二区三区免费观看| 国产精品久久久一区麻豆最新章节| a在线欧美一区| 亚洲影视在线播放| 欧美一区欧美二区| 国产成人自拍高清视频在线免费播放| 国产精品私人影院| 欧美亚洲一区二区在线| 日韩高清不卡一区二区三区| 久久久久久久电影| 91在线小视频| 日本亚洲免费观看| 久久久亚洲高清| 欧美日本视频在线| 日本美女一区二区三区| 日韩欧美一级精品久久| 国产精品亚洲一区二区三区在线 | 欧美一级二级三级蜜桃| 国产一区91精品张津瑜| 亚洲女同ⅹxx女同tv| 欧美剧情片在线观看| 国产精品一区免费视频| 亚洲视频免费在线| 91精品国产综合久久婷婷香蕉| 国产一区二区网址| 一区二区三区四区乱视频| 日韩精品专区在线影院观看 | 精品久久久久久久久久久久久久久久久| 国产成人亚洲综合a∨猫咪| 亚洲图片欧美色图| 久久午夜羞羞影院免费观看| 在线亚洲一区二区| 国产激情视频一区二区在线观看 | 99精品视频中文字幕| 蜜桃久久久久久| 中文字幕日本乱码精品影院| 日韩写真欧美这视频| 99riav一区二区三区| 国内精品伊人久久久久av一坑| 夜夜精品视频一区二区| 国产欧美日韩卡一| 欧美一区二区三级| 一本久久a久久精品亚洲| 国产剧情一区在线| 日产国产欧美视频一区精品| 中文字幕一区在线观看| 精品久久久久久久一区二区蜜臀| 欧美亚洲禁片免费|