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

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

?? btmodem.cxx

?? 這些文件包括藍(lán)牙虛擬串口與打印機程序?qū)嵗?
?? CXX
?? 第 1 頁 / 共 3 頁
字號:
			DWORD dwWrit = 0;
			char *pbuffer = buffer;
			DWORD dwWritFails = 0;

			while (dwRead && WriteFile (hDest, pbuffer, dwRead, &dwWrit, NULL) && (dwWritFails < MAX_WRITE_FAILS)) {
				pbuffer += dwWrit;
				dwRead -= dwWrit;
				if (dwWrit == 0)
					dwWritFails++;
				else
					dwWritFails = 0;

				dwWrit = 0;
			}

#if defined (DUMPCOMM)
			if (dwRead != 0)
				RETAILMSG(1, (L"Bluetooth modem gateway: %s Failed to write everything." CRLF, name));
#endif
		}

#if defined (DUMPCOMM)
		if (ModemState & EV_ERR)
			RETAILMSG(1, (L"Bluetooth gateway: %s thread: EV_ERR" CRLF, name));

		if (ModemState & EV_CTS)
			RETAILMSG(1, (L"Bluetooth gateway: %s thread: EV_CTS" CRLF, name));

		if (ModemState & EV_DSR)
			RETAILMSG(1, (L"Bluetooth gateway: %s thread: EV_DSR" CRLF, name));

		if (ModemState & EV_RLSD)
			RETAILMSG(1, (L"Bluetooth gateway: %s thread: EV_RLSD" CRLF, name));

		if (ModemState & EV_RING)
			RETAILMSG(1, (L"Bluetooth gateway: %s thread: EV_RING" CRLF, name));
#endif

		if (fBluetoothThread && (ModemState & EV_RLSD)) {
			DWORD dwModem = 0;
			GetCommModemStatus (hSource, &dwModem);
			if (! (dwModem & MS_RLSD_ON)) {
				if (HangUpModem (hDest))
					continue;
			}
		}

		if (ModemState & (EV_CTS | EV_DSR)) {
			DWORD dwModem = 0;
			GetCommModemStatus (hSource, &dwModem);

#if defined (DUMPCOMM)
		    RETAILMSG(1, (L"Bluetooth modem gateway: %s modem status: 0x%08x" CRLF, name, dwModem));
#endif

			if (ModemState & EV_CTS)
				EscapeCommFunction (hDest, (dwModem & MS_CTS_ON) ? SETDTR : CLRDTR);

			if (ModemState & EV_DSR)
				EscapeCommFunction (hDest, (dwModem & MS_DSR_ON) ? SETRTS : CLRRTS);
		}
	}
	SetEvent (ghServiceExitEvent);
	RETAILMSG(1, (L"Bluetooth modem gateway: Exiting %s..." CRLF, name));

	return 0;
}

static DWORD WINAPI ComServiceThread (LPVOID lpNull) {
	gfServiceState = SERVICE_STATE_STARTING_UP;

#if ! defined (SDK_BUILD)
	int fHaveStack = FALSE;
	for (int i = 0 ; i < 20 ; ++i) {
		HANDLE hBthApiEvent = OpenEvent (EVENT_ALL_ACCESS, FALSE, BTH_NAMEDEVENT_STACK_INITED);
		if (hBthApiEvent) {
			if (WAIT_OBJECT_0 == WaitForSingleObject (hBthApiEvent, BTH_MODEM_TIMEOUT)) {
				fHaveStack = TRUE;
				CloseHandle (hBthApiEvent);
				break;
			}
			CloseHandle (hBthApiEvent);
		}
		Sleep (1000);
	}

	if (! fHaveStack) {
		gfServiceState = SERVICE_STATE_OFF;

		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: no bluetooth stack detected" CRLF));
		return 0;
	}
#endif

	WCHAR	szModemPortName[_MAX_PATH];
	WCHAR	szBthPortName[_MAX_PATH];

	// Set up pre-configured stuff

	// Modem
	DWORD	dwModemBaud		= BTH_MODEM_BAUD;
	DWORD   dwByteSize		= 8;
	DWORD   dwParity		= NOPARITY;
	DWORD   dwStopBits		= ONESTOPBIT;
	DWORD   dwFlowControl	= BTH_MODEM_HARDWARE;
	int     fUseBaud		= FALSE;
	int     fUseByteSize	= FALSE;
	int     fUseParity		= FALSE;
	int     fUseStopBits	= FALSE;
	int     fUseFlow        = FALSE;

	DCB dcb;
	int fUseDCB = FALSE;

	// Bluetooth
	int	fAuthenticate	= TRUE;
	int	fEncrypt		= TRUE;
	int	channel			= 0xfe;
	int mtu				= BTH_MODEM_MTU;

	// First, read the configuration parameters

	HKEY	hk;

	if (ERROR_SUCCESS != RegOpenKeyEx (HKEY_LOCAL_MACHINE, BTH_MODEM_REGBASE, 0, KEY_READ, &hk)) {
		gfServiceState = SERVICE_STATE_OFF;

		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: no configuration" CRLF));
		return 0;
	}

	DWORD dwSize = sizeof(szModemPortName) - sizeof(WCHAR);
	DWORD dwType = 0;

	szModemPortName[sizeof(szModemPortName)/sizeof(szModemPortName[0])-1] = '\0';

	if ((ERROR_SUCCESS != RegQueryValueEx (hk, L"ModemPortName", NULL, &dwType, (LPBYTE)szModemPortName, &dwSize)) ||
		(dwType != REG_SZ) || (dwSize >= sizeof(szModemPortName))) {
		RegCloseKey (hk);

		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: modem port name not specified or invalid" CRLF));

		gfServiceState = SERVICE_STATE_OFF;
		return 0;
	}

	dwSize = sizeof (dwModemBaud);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"ModemBaud", NULL, &dwType, (LPBYTE)&dwModemBaud, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(dwModemBaud))) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: modem baud rate invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}

		fUseBaud = TRUE;
	}

	dwSize = sizeof (dwByteSize);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"ModemByteSize", NULL, &dwType, (LPBYTE)&dwByteSize, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(dwByteSize)) || (dwByteSize < 4) || (dwByteSize > 8)) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: modem byte size invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}

		fUseByteSize = TRUE;
	}

	dwSize = sizeof (dwParity);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"ModemParity", NULL, &dwType, (LPBYTE)&dwParity, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(dwParity)) || (dwParity > SPACEPARITY)) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: modem parity invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}

		fUseParity = TRUE;
	}

	dwSize = sizeof (dwStopBits);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"ModemStopBits", NULL, &dwType, (LPBYTE)&dwStopBits, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(dwStopBits)) || (dwStopBits > TWOSTOPBITS)) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: modem stop bits invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}

		fUseStopBits = TRUE;
	}

	dwSize = sizeof (dwFlowControl);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"ModemFlowControl", NULL, &dwType, (LPBYTE)&dwFlowControl, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(dwFlowControl)) || (dwFlowControl > BTH_MODEM_NONE)) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: modem flow control invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}

		fUseFlow = TRUE;
	}

	DCB dcb2;
	dwSize = sizeof (dcb2);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"ModemDCB", NULL, &dwType, (LPBYTE)&dcb2, &dwSize)) {
		if ((dwType != REG_BINARY) || (dwSize != sizeof(dcb2)) || (dcb2.DCBlength != sizeof(dcb2))) {
			RegCloseKey (hk);

			gfServiceState = SERVICE_STATE_OFF;

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: modem DCB invalid" CRLF));
			return 0;
		}

		memcpy (&dcb, &dcb2, sizeof(dcb));
		fUseDCB = TRUE;
	}

	dwSize = sizeof(szBthPortName) - sizeof(WCHAR);
	dwType = 0;
	szBthPortName[sizeof(szBthPortName)/sizeof(szBthPortName[0])-1] = '\0';

	if ((ERROR_SUCCESS != RegQueryValueEx (hk, L"BthPortName", NULL, &dwType, (LPBYTE)szBthPortName, &dwSize)) ||
		(dwType != REG_SZ) || (dwSize >= sizeof(szBthPortName))) {
		RegCloseKey (hk);

		gfServiceState = SERVICE_STATE_OFF;

		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: Bluetooth port name not specified or invalid" CRLF));

		return 0;
	}

	dwSize = sizeof (mtu);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"MTU", NULL, &dwType, (LPBYTE)&mtu, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(mtu))) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: MTU invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}
	}

	dwSize = sizeof (channel);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"channel", NULL, &dwType, (LPBYTE)&channel, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(channel)) || (channel < 1) || ((channel > 31) && (channel != 0xfe))) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: channel invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}
	}

	dwSize = sizeof (fAuthenticate);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"Authenticate", NULL, &dwType, (LPBYTE)&fAuthenticate, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(fAuthenticate))) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: authentication flag invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}
	}

	dwSize = sizeof (fEncrypt);
	if (ERROR_SUCCESS == RegQueryValueEx (hk, L"Encrypt", NULL, &dwType, (LPBYTE)&fEncrypt, &dwSize)) {
		if ((dwType != REG_DWORD) || (dwSize != sizeof(fEncrypt))) {
			RegCloseKey (hk);

			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: encryption flag invalid" CRLF));

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}
	}

	RegCloseKey (hk);

	if (((szBthPortName[0] != 'C') && (szBthPortName[0] != 'c')) ||
		((szBthPortName[1] != 'O') && (szBthPortName[1] != 'o')) ||
		((szBthPortName[2] != 'M') && (szBthPortName[2] != 'm')) ||
		((szBthPortName[4] != ':') && (szBthPortName[4] != ':')) ||
		((szBthPortName[5] != '\0') && (szBthPortName[5] != '\0')) ||
		(szBthPortName[3] < '0') || (szBthPortName[3] > '9')) {
		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: encryption flag invalid" CRLF));

		gfServiceState = SERVICE_STATE_OFF;
		return 0;
	}

	int port = szBthPortName[3] - '0';

	// Open and configure the modem port

	HANDLE	hModemComPort = CreateFile(szModemPortName,
                GENERIC_READ | GENERIC_WRITE,
                0,    // comm devices must be opened w/exclusive-access
                NULL, // no security attrs
                OPEN_EXISTING, // comm devices must use OPEN_EXISTING
                FILE_ATTRIBUTE_NORMAL,    // overlapped I/O 
                NULL  // hTemplate must be NULL for comm devices  
				);

    if (hModemComPort == INVALID_HANDLE_VALUE) {
		gfServiceState = SERVICE_STATE_OFF;

		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: could not open modem port (error %d)" CRLF, GetLastError ()));

		return 0;
    }

	if (! fUseDCB) {
		if (! GetCommState (hModemComPort, &dcb)) {
			RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: could setup modem port (error %d)" CRLF, GetLastError ()));

			CloseHandle (hModemComPort);

			gfServiceState = SERVICE_STATE_OFF;
			return 0;
		}
	}

	if (fUseBaud)
		dcb.BaudRate = dwModemBaud;

	if (fUseByteSize)
		dcb.ByteSize = (unsigned char)dwByteSize;

	if (fUseStopBits)
		dcb.StopBits = (unsigned char)dwStopBits;

	if (fUseParity) {
		dcb.fParity = (dwParity != NOPARITY);
		dcb.Parity = (unsigned char)dwParity;
	}

	if (fUseFlow) {
		dcb.fDsrSensitivity = FALSE;
		dcb.fDtrControl     = DTR_CONTROL_ENABLE;

		if (dwFlowControl == BTH_MODEM_HARDWARE) {
			// Enable RTS/CTS Flow Control
		    dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
		    dcb.fOutxCtsFlow = 1;
		    dcb.fOutX = 0;
		    dcb.fInX = 0;
		} else if (dwFlowControl == BTH_MODEM_SOFTWARE) {
			// Enable XON/XOFF Flow Control
			dcb.fRtsControl = RTS_CONTROL_ENABLE;
			dcb.fOutxCtsFlow = 0;
			dcb.fOutX = 1;
			dcb.fInX  = 1;  
		} else {
			dcb.fRtsControl = RTS_CONTROL_ENABLE;
			dcb.fOutxCtsFlow = 0;
			dcb.fOutX = 0;
			dcb.fInX  = 0;
		}
	}

    if (! SetupComm (hModemComPort, 20000, 20000)) {
		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: could setup modem port (error %d)" CRLF, GetLastError ()));

		CloseHandle (hModemComPort);

		gfServiceState = SERVICE_STATE_OFF;
		return 0;
    } 

    // purge any information in the buffer

    if ( ! PurgeComm (hModemComPort, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR )) {
		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: could not purge modem port (error %d)" CRLF, GetLastError ()));

		CloseHandle (hModemComPort);

		gfServiceState = SERVICE_STATE_OFF;
		return 0;
    }

    COMMTIMEOUTS commTimeouts;
    commTimeouts.ReadTotalTimeoutMultiplier = 1;
    commTimeouts.ReadIntervalTimeout = 50;
    commTimeouts.ReadTotalTimeoutConstant = 50;
    commTimeouts.WriteTotalTimeoutMultiplier = 5;
    commTimeouts.WriteTotalTimeoutConstant = 500;

    if (! SetCommTimeouts (hModemComPort, &commTimeouts)) {
		RETAILMSG(1, (L"Bluetooth modem gateway: Initialization failed: could not configure timeouts on modem port (error %d)" CRLF, GetLastError ()));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本午夜精品一区二区三区电影| 日韩成人免费电影| 欧美日韩国产在线观看| 国产精品一二三区| 三级一区在线视频先锋| 国产精品青草综合久久久久99| 欧美精品日日鲁夜夜添| av不卡在线播放| 韩国女主播成人在线观看| 亚洲男人电影天堂| 欧美国产1区2区| 欧美一区二区在线视频| 色婷婷久久综合| aaa欧美大片| 成人夜色视频网站在线观看| 久久国产尿小便嘘嘘| 亚洲成av人片在www色猫咪| 国产精品女同一区二区三区| 精品sm捆绑视频| 日韩欧美精品三级| 欧美一区二区视频免费观看| 色欧美日韩亚洲| 97久久人人超碰| 成人激情校园春色| 国产一区二区三区美女| 午夜精品国产更新| 日韩伦理免费电影| 国产欧美日韩中文久久| 日韩三级伦理片妻子的秘密按摩| 欧美性感一区二区三区| 国产精品正在播放| 精品一区二区精品| 蜜桃视频在线一区| 久久精品国产网站| 久久成人羞羞网站| 国产一区二区女| 国产剧情一区二区三区| 国产一区二区三区日韩 | 亚洲三级在线播放| 欧美激情综合在线| 国产精品美女一区二区| 欧美韩日一区二区三区四区| 久久久高清一区二区三区| 在线不卡的av| 欧美成人三级电影在线| 久久久久久久久蜜桃| 国产欧美一区二区精品性色| 国产喷白浆一区二区三区| 亚洲国产精品ⅴa在线观看| 国产精品每日更新在线播放网址| 欧美激情综合网| 亚洲视频1区2区| 亚洲欧洲一区二区三区| 亚洲欧美另类久久久精品2019| 亚洲女人的天堂| 天天综合网天天综合色| 蜜桃久久精品一区二区| 丁香网亚洲国际| 一本色道久久加勒比精品| 欧美视频精品在线| 欧美r级电影在线观看| 国产精品美女视频| 亚洲猫色日本管| 蜜桃视频在线观看一区| 国产jizzjizz一区二区| voyeur盗摄精品| 欧美日韩小视频| 久久婷婷综合激情| 一区二区三区在线高清| 日韩电影免费一区| 成人永久免费视频| 欧美日韩另类一区| 国产日韩精品一区二区浪潮av | 91官网在线观看| 69精品人人人人| 亚洲国产经典视频| 亚洲午夜激情网站| 国产一区999| 欧美日韩极品在线观看一区| 久久精品人人做人人综合| 亚洲综合色婷婷| 国产在线精品视频| 在线看不卡av| 久久久久久免费| 亚洲成av人片在www色猫咪| 国产精品一品二品| 欧美在线free| 久久精品欧美日韩| 日韩精品一二三区| 99久久精品国产导航| 欧美一卡2卡三卡4卡5免费| 中文字幕中文字幕在线一区 | 成人黄色av电影| 欧美一二三区在线| 亚洲精品日日夜夜| 国产精品一区在线观看乱码| 在线观看免费一区| 久久久久久电影| 日韩精品1区2区3区| 国产精品综合av一区二区国产馆| 色噜噜夜夜夜综合网| 日韩欧美中文字幕公布| 国产精品美女一区二区三区 | 国产精品污www在线观看| 亚洲精品成人在线| 男男gaygay亚洲| 成人av网站在线观看免费| 欧美人伦禁忌dvd放荡欲情| 久久九九影视网| 亚洲成a人片在线观看中文| 丁香网亚洲国际| 久久天天做天天爱综合色| 午夜日韩在线观看| 91官网在线免费观看| 国产精品久久久久久久久久久免费看 | 色婷婷综合久久久久中文| 国产日韩欧美不卡在线| 毛片av中文字幕一区二区| 欧美午夜精品久久久久久孕妇| 国产精品色噜噜| 成人黄色在线看| 国产精品五月天| 成人免费视频网站在线观看| 精品动漫一区二区三区在线观看| 亚洲第一会所有码转帖| 91久久精品国产91性色tv| 综合欧美亚洲日本| 99久久免费视频.com| 国产欧美久久久精品影院| 国产一区二区三区黄视频| 欧美酷刑日本凌虐凌虐| 亚洲一区二区在线免费看| 成人av在线观| 欧美国产精品一区| 韩国在线一区二区| 日韩欧美国产1| 亚洲成人www| 欧美高清www午色夜在线视频| 亚洲图片欧美激情| 国产精品一区二区三区四区| 久久精品男人的天堂| 国产不卡视频在线播放| 久久蜜臀中文字幕| 国产成人综合亚洲网站| 国产日韩亚洲欧美综合| 国内欧美视频一区二区| 精品国产三级电影在线观看| 麻豆freexxxx性91精品| 日韩欧美高清dvd碟片| 国产中文字幕一区| 国产精品水嫩水嫩| 91网页版在线| 午夜日韩在线观看| 精品sm在线观看| 成人av高清在线| 一区二区三区不卡在线观看| 精品视频1区2区3区| 三级不卡在线观看| 26uuu另类欧美| 91麻豆国产精品久久| 亚洲成人av一区| 精品国产sm最大网站免费看| 国产一区二区成人久久免费影院| 中文字幕久久午夜不卡| 色综合久久综合网| 日韩电影在线观看电影| 久久久激情视频| 91香蕉视频污| 亚洲国产裸拍裸体视频在线观看乱了| 9191成人精品久久| 国产999精品久久| 亚洲图片欧美激情| 欧美丰满美乳xxx高潮www| 久久爱www久久做| 国产精品美女久久久久久久| 欧美影院精品一区| 精品中文字幕一区二区小辣椒| 国产精品久久久久久久久快鸭| 欧美理论电影在线| 播五月开心婷婷综合| 午夜精品一区二区三区三上悠亚 | 久久精品一区二区三区av| 色婷婷亚洲一区二区三区| 蜜臀va亚洲va欧美va天堂| 国产精品福利在线播放| 777午夜精品视频在线播放| 国产成人综合网站| 亚洲成人精品一区二区| 欧美激情一区二区| 欧美私人免费视频| 国产成人在线网站| 亚洲免费观看高清在线观看| 日韩视频在线你懂得| 成人精品高清在线| 琪琪久久久久日韩精品| 国产精品久久福利| 精品国产亚洲在线| 337p亚洲精品色噜噜狠狠| 成人免费观看男女羞羞视频| 日本aⅴ精品一区二区三区|