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

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

?? ozerocdoff.c

?? udev是一種工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
		        fprintf(outlog, "Found attached driver: %s\n", buffer);		}	        ret = usb_detach_kernel_driver_np(usb_hd, 0);		if (ret != 0) {		        if(!quiet) fprintf(errlog, "ERROR: unsuccessful kernel driver detaching\n");			(void)usb_close(usb_hd);			exit(5);		}	} else {	        /* hopefully no default kernel driver yet running, send only a warning */	        if(!quiet) fprintf(errlog, "WARNING: No kernel driver attached found\n");	}	ret = usb_claim_interface(usb_hd, 0);	if (ret != 0) {		if(!quiet) fprintf(errlog, "ERROR: could not claim interface\n");		(void)usb_close(usb_hd);		exit(6);	}	  	/* findout the Message and Response Endpoint */	        int MessageEndpoint=search_message_endp(usb_dev);	int ResponseEndpoint=search_response_endp(usb_dev);	if (MessageEndpoint == 0) {		if(!quiet) fprintf(errlog, "ERROR: could not detremine Endpoint addresses\n");		(void)usb_close(usb_hd);		exit(6);	}	if (debug) {	        fprintf(outlog,"MessageEndpoint:  0x%x\n", MessageEndpoint);		fprintf(outlog,"ResponseEndpoint:  0x%x \n", ResponseEndpoint);	}	/* preparation to send rezero string */       	(void)usb_clear_halt(usb_hd, MessageEndpoint); //ResponseEndpoint        ret = usb_set_altinterface(usb_hd, 0);	if (ret != 0) {	        if (warno) {		        if(!quiet) fprintf(errlog, "WARNING: unsuccessful set alternative interface\n");		} else {		        if(!quiet) fprintf(errlog, "ERROR: unsuccessful set alternative interface\n");			(void)usb_release_interface(usb_hd, 0);			(void)usb_close(usb_hd);		        exit(7);		}	}	/* usb mass storage setting time (needed by some WWAN modems) */	sleep(1);	if (!test) {	        /* send rezero string */	        ret = usb_bulk_write(usb_hd, MessageEndpoint, (char *)MessageContent, sizeof(MessageContent), 1000);	        if (ret < 0) {	                if (warno) {			        if(!quiet) fprintf(errlog, "WARNING: unsuccessful write rezero string\n");			} else {			        if(!quiet) fprintf(errlog, "ERROR: unsuccessful write rezero string\n");				(void)usb_release_interface(usb_hd, 0);				(void)usb_close(usb_hd);				exit(8);			}		} else {		        if (debug) fprintf(outlog, "Have successfully send ZERO-CD disabling command\n");		}		/* needed by some WWAN modems) */		if (ResponseEndpoint != 0) {		        ret = usb_bulk_read(usb_hd, ResponseEndpoint, buffer, BUFFER_SIZE, 1000);			if (ret < 0 ) {			        if(!quiet) fprintf(errlog, "WARNING: unsuccessful read response message\n");			}		}	}	/* close device */	ret = usb_close(usb_hd);	if (ret < 0) {	        if (warno) {		        if(!quiet) fprintf(errlog, "WARNING: closeing failed\n");		} else {		        if(!quiet) fprintf(errlog, "ERROR: closeing failed\n");			(void)usb_release_interface(usb_hd, 0);			exit(9);		}	}		/* search again to check result. Note that still the search is needed by some WWAN modems! */	for (count = 5; (count>0) && (usb_dev != NULL); count--) {       	        sleep(1);		(void)usb_find_devices();		usb_dev = search_devices(TARGET_VENDOR, TargetProduct, "");	}	if (usb_dev != NULL) {	        if (warno) {		        if(!quiet) fprintf(errlog, "WARNING: Zero-CD device still found\n");		} else {		        if(!quiet) fprintf(errlog, "ERROR: Zero-CD device still found\n");			(void)usb_release_interface(usb_hd, 0);			exit(10);		}	} else {	        if (debug) fprintf(outlog, "Checked successfully ZERO-CD disabled\n");		else if(!quiet) fprintf(outlog, "Successfully ZERO-CD disabled\n");	}	/* relese device */	(void)usb_release_interface(usb_hd, 0);	return 0;}/** * release_usb_device * need for the signal handler to ensure proper usb port close and release * * input param : just a dumy paramter * return      : nothting */void release_usb_device(int param) {	(void)usb_release_interface(usb_hd, 0);	(void)usb_close(usb_hd);}/** * strrcut * string help function, which cuts the string and returns the  * right boundary last 'n' characters from the given string 's' or * an empty string, if the given string length is shorter than 'n' * * input s  : const string * input n  : number of charaacters, which should be left on the  *            right side of the given string * return   : the result (shorten) strinf or empty string */const char *strrcut(const char *s, int n) {        if (strlen(s)>=n) {	        return &(s[strlen(s)-n]);	} else {	        return "";	}}/** * strrcmp * string help function, which is used to compare just the right * part of the given two strings. All other part is just cut away or * not be used for the comparision * * input s1 : const 1st string * input s2 : const 2nd string * return   : the strcmp return value of the shorted given strings */int strrcmp(const char *s1, const char *s2) {      if (strlen(s1)<=strlen(s2)) {	      return strcmp(s1,strrcut(s2,strlen(s1)));      } else {	      return strcmp(strrcut(s1,strlen(s2)),s2);      }}/** search_devices * search function of the vendor and device id. Optional the name can  * be used to compare the right part of found string of the usblib. * * input vendor  : USB vendor id * input product : USB product id * input name    : optional right part of the searched filename or just an empty string * return        : the found usb device structure, which matches the search */struct usb_device* search_devices(int vendor, int product, const char * name) {        struct usb_bus *bus;    	for (bus = usb_get_busses(); bus; bus = bus->next) {		struct usb_device *dev;		for (dev = bus->devices; dev; dev = dev->next) {		        if (dev->descriptor.idVendor == vendor && dev->descriptor.idProduct == product) {			        /* check number of Endpoints, class, subclass and protocol */			        if (debug) {				        fprintf(outlog, "Endpoints: %d  (2)\n", dev->config[0].interface[0].altsetting[0].bNumEndpoints);					fprintf(outlog, "Class:     0x%x  (0x08)\n", dev->config[0].interface[0].altsetting[0].bInterfaceClass);					fprintf(outlog, "SubClass:  0x%x  (0x06)\n", dev->config[0].interface[0].altsetting[0].bInterfaceSubClass);					fprintf(outlog, "Protocol:  0x%x  (0x50)\n", dev->config[0].interface[0].altsetting[0].bInterfaceProtocol);				}				if (   (dev->config[0].interface[0].altsetting[0].bNumEndpoints == 2)				    && (dev->config[0].interface[0].altsetting[0].bInterfaceClass == 0x08)				    && (dev->config[0].interface[0].altsetting[0].bInterfaceSubClass == 0x06)				    && (dev->config[0].interface[0].altsetting[0].bInterfaceProtocol == 0x50) ) {				        if (debug) {					        fprintf(outlog, "Found file name: '%s'\n", dev->filename);						fprintf(outlog, "Required last chars of file name: '%s'\n", name);					}					if (strrcmp(name, dev->filename) == 0) {					        if (debug) fprintf(outlog, "UMS interface found\n");						return dev;					} else {					        if (debug) fprintf(outlog, "UMS interface found, but its wrong\n");					}				}			}		}	}	return NULL;}/** * search_message_endp * looks inside the USB descriptor stuff for the needed endpoint address.  * It searches explicit for an bulk output interface and returns the address * or even zero * * input dev : usb device structure * return    : endpoint address of 0, if it is no bulk output endpoint */int search_message_endp(struct usb_device *dev) {        if (  ((dev->config[0].interface[0].altsetting[0].endpoint[0].bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK)	    &&((dev->config[0].interface[0].altsetting[0].endpoint[0].bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)) {	        return dev->config[0].interface[0].altsetting[0].endpoint[0].bEndpointAddress; 	} else 	        if (  ((dev->config[0].interface[0].altsetting[0].endpoint[1].bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK)	            &&((dev->config[0].interface[0].altsetting[0].endpoint[1].bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)) {	                return dev->config[0].interface[0].altsetting[0].endpoint[1].bEndpointAddress;	}	return 0;}/** * search_response_endp * looks inside the USB descriptor stuff for the needed endpoint address.  * It searches explicit for an bulk input interface and returns the address * or even zero * * input dev : usb device structure * return    : endpoint address of 0, if it is no bulk input endpoint */int search_response_endp(struct usb_device *dev) {        if (  ((dev->config[0].interface[0].altsetting[0].endpoint[0].bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK)	    &&((dev->config[0].interface[0].altsetting[0].endpoint[0].bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN)) {	        return dev->config[0].interface[0].altsetting[0].endpoint[0].bEndpointAddress; 	} else 	        if (  ((dev->config[0].interface[0].altsetting[0].endpoint[1].bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK)	            &&((dev->config[0].interface[0].altsetting[0].endpoint[1].bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN)) {	                return dev->config[0].interface[0].altsetting[0].endpoint[1].bEndpointAddress;	}	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女主播在线观看| 欧美嫩在线观看| 欧美国产97人人爽人人喊| 成人妖精视频yjsp地址| 自拍偷自拍亚洲精品播放| 一本高清dvd不卡在线观看 | 91同城在线观看| 亚洲另类在线制服丝袜| 在线一区二区三区四区五区| 亚洲欧美日本在线| 欧美视频在线播放| 久久国产剧场电影| 亚洲天堂精品在线观看| 欧美日韩另类一区| 精品无人码麻豆乱码1区2区| 中文字幕乱码久久午夜不卡| 欧美亚洲动漫精品| 狠狠色丁香久久婷婷综| 亚洲私人影院在线观看| 777午夜精品视频在线播放| 国产电影一区在线| 亚洲精品乱码久久久久久| 日韩亚洲国产中文字幕欧美| 成人综合婷婷国产精品久久| 亚洲制服欧美中文字幕中文字幕| 日韩欧美成人激情| 91农村精品一区二区在线| 日韩电影在线一区二区| 欧美国产一区视频在线观看| 欧美性大战久久| 国产精品小仙女| 婷婷中文字幕一区三区| 中文字幕电影一区| 日韩精品一区二区三区中文精品 | 亚洲精品国产无天堂网2021| 日韩一卡二卡三卡国产欧美| av色综合久久天堂av综合| 视频一区二区不卡| 亚洲视频一区二区免费在线观看| 精品日韩成人av| 欧美日韩一区二区在线观看视频| 粉嫩嫩av羞羞动漫久久久| 香蕉成人伊视频在线观看| 亚洲色图一区二区| 亚洲影视在线观看| 国产精品亲子乱子伦xxxx裸| 欧美一区二区精品| 欧美日韩亚洲综合一区二区三区| jiyouzz国产精品久久| 精品在线免费视频| 日日噜噜夜夜狠狠视频欧美人 | 91麻豆福利精品推荐| 国产美女一区二区三区| 人人精品人人爱| 亚洲蜜臀av乱码久久精品| 国产日韩影视精品| 久久夜色精品国产噜噜av| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲国产精品黑人久久久| 欧美日韩免费电影| 日本道免费精品一区二区三区| 国产成人激情av| 国产综合一区二区| 久久97超碰国产精品超碰| 天天影视网天天综合色在线播放| 亚洲精品第一国产综合野| 亚洲欧美在线视频观看| 国产欧美一区二区三区网站| 日韩欧美一区电影| 欧美成人在线直播| 日韩欧美一区中文| 欧美一区二区三区的| 欧美日本不卡视频| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲免费av观看| 亚洲精品亚洲人成人网在线播放| 日韩毛片视频在线看| 自拍偷拍亚洲综合| 亚洲精品videosex极品| 一区二区在线观看视频 | 3d动漫精品啪啪一区二区竹菊 | 美女视频一区二区三区| 毛片av中文字幕一区二区| 久久福利资源站| 免费观看日韩av| 国产一二精品视频| 成人一级视频在线观看| 91在线观看视频| 欧美日韩精品高清| 精品欧美久久久| 国产精品美女久久久久久久久| **网站欧美大片在线观看| 一区二区三区在线看| 午夜精品123| 国模一区二区三区白浆| 成人黄色小视频在线观看| 色综合久久综合| 欧美日韩不卡一区| 精品久久久久一区| 国产精品女同一区二区三区| 1024精品合集| 日本亚洲电影天堂| 国产精华液一区二区三区| 97精品久久久午夜一区二区三区 | 精品国产123| 中文成人av在线| 亚洲成人一区在线| 国产一区二区三区黄视频| 91色porny| 欧美一级专区免费大片| 亚洲国产精品99久久久久久久久 | 自拍av一区二区三区| 亚洲成人午夜电影| 国产福利一区二区三区| 91成人免费网站| 久久夜色精品一区| 亚洲成人在线观看视频| 国产凹凸在线观看一区二区| 欧美视频在线不卡| 欧美国产日产图区| 日韩二区三区在线观看| 成人深夜在线观看| 91麻豆精品国产91久久久更新时间 | 这里只有精品免费| 自拍偷拍欧美激情| 国产做a爰片久久毛片| 欧美日韩一区二区在线观看视频| 国产亚洲短视频| 日本在线不卡一区| 99vv1com这只有精品| 精品国产乱码久久| 日韩av中文字幕一区二区| 91免费观看视频在线| 久久久国产精品麻豆| 午夜成人免费电影| 91免费版pro下载短视频| 国产亚洲一区二区在线观看| 三级不卡在线观看| 在线视频一区二区免费| 国产欧美精品区一区二区三区| 日本不卡高清视频| 欧美日韩国产精品成人| 亚洲综合一区二区三区| 成人av网站免费| 国产欧美一二三区| 国产一区二区三区免费观看| 日韩午夜精品电影| 日韩中文字幕1| 欧美日韩成人激情| 一区二区三区色| 日本久久精品电影| 亚洲欧美成aⅴ人在线观看| kk眼镜猥琐国模调教系列一区二区 | 日韩一区二区中文字幕| 亚洲国产另类av| 91国模大尺度私拍在线视频| 亚洲天堂网中文字| 成人黄色av电影| 中文av一区二区| 成人免费视频视频在线观看免费| 久久综合九色综合欧美亚洲| 免费观看91视频大全| 欧美一区二区三区四区高清| 婷婷开心激情综合| 制服丝袜日韩国产| 理论片日本一区| 久久亚洲综合av| 国内精品久久久久影院色| 精品99999| 国产成人av电影| 中文字幕中文字幕在线一区| 91香蕉视频在线| 亚洲精品国产a| 欧美日本免费一区二区三区| 日韩高清一区在线| 欧美成人a视频| 国产69精品久久99不卡| 国产清纯白嫩初高生在线观看91| 风间由美一区二区三区在线观看| 中文字幕一区二区三区四区不卡 | www国产成人| 成人福利视频在线| 一区二区三区四区中文字幕| 欧美日韩五月天| 国产在线视视频有精品| 中文字幕免费一区| 欧美亚洲动漫另类| 精品亚洲成a人| 欧美激情一区在线| 色av成人天堂桃色av| 蜜臀久久99精品久久久久宅男| 欧美精品一区二区三区高清aⅴ| 国产精品亚洲第一| 亚洲激情图片小说视频| 欧美成人a在线| gogo大胆日本视频一区| 日韩高清在线电影| 中文av一区特黄| 欧美一区二区三区四区在线观看| 国产大片一区二区|