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

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

?? set_configuration.c

?? Libusb-win32 is a library that allows userspace application to access USB devices on Windows opera
?? C
字號(hào):
/* LIBUSB-WIN32, Generic Windows USB Library * Copyright (c) 2002-2005 Stephan Meyer <ste_meyer@web.de> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include "libusb_driver.h"NTSTATUS set_configuration(libusb_device_t *dev, int configuration,                            int timeout){  NTSTATUS status = STATUS_SUCCESS;  URB urb, *urb_ptr = NULL;  USB_CONFIGURATION_DESCRIPTOR *configuration_descriptor = NULL;  USB_INTERFACE_DESCRIPTOR *interface_descriptor = NULL;  USBD_INTERFACE_LIST_ENTRY *interfaces = NULL;  int i, j, interface_number, desc_size;  DEBUG_PRINT_NL();  DEBUG_MESSAGE("set_configuration(): configuration %d", configuration);  DEBUG_MESSAGE("set_configuration(): timeout %d", timeout);  if(dev->config.value == configuration)    {      return STATUS_SUCCESS;    }  memset(&urb, 0, sizeof(URB));  if(!configuration)    {      urb.UrbHeader.Function = URB_FUNCTION_SELECT_CONFIGURATION;      urb.UrbHeader.Length = sizeof(struct _URB_SELECT_CONFIGURATION);      status = call_usbd(dev, &urb, IOCTL_INTERNAL_USB_SUBMIT_URB, timeout);            if(!NT_SUCCESS(status) || !USBD_SUCCESS(urb.UrbHeader.Status))        {          DEBUG_ERROR("set_configuration(): setting configuration %d failed: "                      "status: 0x%x, urb-status: 0x%x",                       configuration, status, urb.UrbHeader.Status);          return status;        }      dev->config.handle =  urb.UrbSelectConfiguration.ConfigurationHandle;      dev->config.value = 0;      clear_pipe_info(dev);      return status;    }  configuration_descriptor = get_config_descriptor(dev, configuration,                                                    &desc_size);  if(!configuration_descriptor)    {      DEBUG_ERROR("set_configuration(): getting configuration descriptor "                  "failed");      return STATUS_INVALID_PARAMETER;    }  interfaces =     ExAllocatePool(NonPagedPool,(configuration_descriptor->bNumInterfaces + 1)                   * sizeof(USBD_INTERFACE_LIST_ENTRY));  if(!interfaces)    {      DEBUG_ERROR("set_configuration(): memory allocation failed");      ExFreePool(configuration_descriptor);      return STATUS_NO_MEMORY;    }  memset(interfaces, 0, (configuration_descriptor->bNumInterfaces + 1)          * sizeof(USBD_INTERFACE_LIST_ENTRY));  interface_number = 0;  for(i = 0; i < configuration_descriptor->bNumInterfaces; i++)    {      for(j = interface_number; j < LIBUSB_MAX_NUMBER_OF_INTERFACES; j++)        {          interface_descriptor =            find_interface_desc(configuration_descriptor, desc_size, j, 0);          if(interface_descriptor)             {              interface_number = ++j;              break;            }        }      if(!interface_descriptor)        {          DEBUG_ERROR("set_configuration(): unable to find interface "                      "descriptor at index %d", i);          ExFreePool(interfaces);          ExFreePool(configuration_descriptor);          return STATUS_INVALID_PARAMETER;        }      else        {          DEBUG_MESSAGE("set_configuration(): found interface %d",                        interface_descriptor->bInterfaceNumber);          interfaces[i].InterfaceDescriptor = interface_descriptor;        }    }  urb_ptr = USBD_CreateConfigurationRequestEx(configuration_descriptor,                                              interfaces);  if(!urb_ptr)    {      DEBUG_ERROR("set_configuration(): memory allocation failed");      ExFreePool(interfaces);      ExFreePool(configuration_descriptor);      return STATUS_NO_MEMORY;    }  for(i = 0; i < configuration_descriptor->bNumInterfaces; i++)    {      for(j = 0; j < (int)interfaces[i].Interface->NumberOfPipes; j++)        {          interfaces[i].Interface->Pipes[j].MaximumTransferSize             = LIBUSB_MAX_READ_WRITE;        }    }  status = call_usbd(dev, urb_ptr, IOCTL_INTERNAL_USB_SUBMIT_URB, timeout);  if(!NT_SUCCESS(status) || !USBD_SUCCESS(urb_ptr->UrbHeader.Status))    {      DEBUG_ERROR("set_configuration(): setting configuration %d failed: "                  "status: 0x%x, urb-status: 0x%x",                   configuration, status, urb_ptr->UrbHeader.Status);      ExFreePool(interfaces);      ExFreePool(configuration_descriptor);      ExFreePool(urb_ptr);      return status;    }  dev->config.handle = urb_ptr->UrbSelectConfiguration.ConfigurationHandle;  dev->config.value = configuration;  clear_pipe_info(dev);  for(i = 0; i < configuration_descriptor->bNumInterfaces; i++)    {      update_pipe_info(dev, interfaces[i].Interface);    }  ExFreePool(interfaces);  ExFreePool(urb_ptr);  ExFreePool(configuration_descriptor);  return status;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品专区| 国产精品白丝av| 欧美美女bb生活片| 亚洲一级二级在线| 欧美日韩黄视频| 天天亚洲美女在线视频| 欧美高清性hdvideosex| 日韩av中文字幕一区二区| 欧美一级片在线观看| 国产麻豆精品在线| 日本一区二区电影| 在线亚洲免费视频| 人人狠狠综合久久亚洲| 久久久91精品国产一区二区精品| 成人免费视频视频| 亚洲一区二三区| 欧美成人精品3d动漫h| 国产成人自拍网| 一区二区三区四区不卡在线 | 日本最新不卡在线| 精品成人一区二区| 99久久免费视频.com| 亚洲成人免费av| 久久午夜电影网| 日本乱人伦aⅴ精品| 免费在线观看不卡| 国产精品免费网站在线观看| 日本高清视频一区二区| 麻豆国产欧美一区二区三区| 国产精品丝袜一区| 777色狠狠一区二区三区| 国产不卡视频在线观看| 亚洲一区影音先锋| 日本一区二区三区免费乱视频| 99精品在线免费| 久色婷婷小香蕉久久| 中文字幕日韩精品一区 | 成人免费视频播放| 午夜电影一区二区三区| 日本一区二区三区免费乱视频| 欧美视频在线一区二区三区| 国产精品一区二区在线观看不卡| 亚洲午夜私人影院| 国产精品久久久久久户外露出| 欧美日韩国产三级| 99免费精品在线观看| 色婷婷精品久久二区二区蜜臀av | 精品国产精品网麻豆系列| 色先锋aa成人| 国产69精品久久99不卡| 美女视频黄a大片欧美| 亚洲色图制服诱惑 | 欧美性生交片4| 成人动漫精品一区二区| 国内精品伊人久久久久av影院 | 性做久久久久久久免费看| 国产精品久久久久一区二区三区共 | 青青草97国产精品免费观看| 1024成人网| 国产欧美一区二区三区沐欲| 日韩限制级电影在线观看| 日本精品一区二区三区四区的功能| 国内精品国产三级国产a久久| 日韩精品欧美成人高清一区二区| 亚洲欧洲制服丝袜| 国产精品国产三级国产普通话蜜臀 | 日本一二三四高清不卡| 日韩精品影音先锋| 欧美一级二级三级乱码| 欧美精品三级日韩久久| 欧美性受xxxx黑人xyx| 91女厕偷拍女厕偷拍高清| 国产精品亚洲第一区在线暖暖韩国 | 欧美视频你懂的| 在线亚洲一区观看| 欧美制服丝袜第一页| 欧美在线一二三四区| 色系网站成人免费| 欧洲精品在线观看| 欧美性生活一区| 欧美午夜一区二区三区 | 国产高清一区日本| 国产高清亚洲一区| 成人av集中营| 99精品在线免费| 在线这里只有精品| 欧美丰满嫩嫩电影| 日韩一区二区电影| 精品成人免费观看| 久久看人人爽人人| 精品美女被调教视频大全网站| 日韩欧美一二三四区| www国产成人| 欧美国产精品专区| 中文字幕欧美一| 亚洲精品伦理在线| 午夜a成v人精品| 久久精品国产免费看久久精品| 精品一区二区免费在线观看| 国产激情偷乱视频一区二区三区| 粉嫩绯色av一区二区在线观看| 成a人片亚洲日本久久| 在线亚洲精品福利网址导航| 911精品国产一区二区在线| 日韩免费性生活视频播放| 国产日韩欧美一区二区三区综合| 亚洲欧洲三级电影| 日韩国产欧美在线观看| 国产精品亚洲第一区在线暖暖韩国 | 国产精品久久久久aaaa| 亚洲国产综合91精品麻豆| 日本伊人色综合网| 国产成人在线网站| 色999日韩国产欧美一区二区| 欧美日韩www| 久久久久久影视| 亚洲乱码中文字幕| 欧美亚洲动漫制服丝袜| 日韩欧美在线不卡| 中文字幕一区二区三区av| 天堂蜜桃91精品| 成人高清在线视频| 7777精品久久久大香线蕉 | 国产成人自拍网| 欧美视频一二三区| 日本一区二区三区免费乱视频| 亚洲图片自拍偷拍| 国产sm精品调教视频网站| 在线免费观看成人短视频| 精品国产伦理网| 亚洲综合一区二区三区| 国产精品一二三区在线| 欧美精品第1页| 国产精品免费免费| 精品在线观看视频| 欧美日韩在线播放一区| 中文在线资源观看网站视频免费不卡 | 欧亚洲嫩模精品一区三区| 久久女同性恋中文字幕| 午夜欧美大尺度福利影院在线看| 国产成人av电影在线播放| 在线不卡一区二区| 一区二区国产盗摄色噜噜| 国产v日产∨综合v精品视频| 欧美精选一区二区| 亚洲日韩欧美一区二区在线| 国产精品911| 欧美成人性福生活免费看| 亚洲777理论| 在线视频观看一区| 亚洲视频网在线直播| 国产成人在线电影| 久久综合九色综合97婷婷女人| 天堂久久一区二区三区| 欧美亚洲尤物久久| 亚洲精品乱码久久久久久久久| 国产成人鲁色资源国产91色综| 精品美女被调教视频大全网站| 日日夜夜免费精品| 欧美日韩不卡一区| 三级一区在线视频先锋| 欧美日韩精品一区二区三区四区| 亚洲精品视频自拍| 91香蕉国产在线观看软件| 中文字幕一区二区三| 波多野结衣中文一区| 中文久久乱码一区二区| 成人丝袜视频网| 国产精品视频观看| 99国产精品视频免费观看| 国产精品免费视频观看| 97久久久精品综合88久久| 中文字幕中文在线不卡住| 成人一道本在线| 亚洲欧洲成人自拍| 91香蕉视频污在线| 亚洲高清视频中文字幕| 欧美丰满嫩嫩电影| 麻豆91免费观看| 久久久亚洲午夜电影| 国产成人免费网站| 一区视频在线播放| 欧美视频在线不卡| 麻豆精品一区二区三区| 精品久久久久一区| 成人综合婷婷国产精品久久| 成人欧美一区二区三区白人| 91一区二区在线观看| 一区二区欧美视频| 日韩一区二区电影在线| 国产乱子伦视频一区二区三区| 国产亚洲一区二区在线观看| av中文一区二区三区| 亚洲高清中文字幕| 精品欧美乱码久久久久久1区2区| 国产精品白丝jk黑袜喷水| 亚洲免费大片在线观看| 91麻豆精品91久久久久同性| 国产美女在线精品| 亚洲人成影院在线观看|