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

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

?? usbio.cpp

?? reference about wireless design which is helpful to everyone
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
}


DWORD CUsbIo::GetConfiguration(UCHAR& ConfigurationValue)
{
  DWORD Status;
  USBIO_GET_CONFIGURATION_DATA data;

  // zero the struct
  ZeroMemory(&data,sizeof(data));
  
  Status = IoctlSync(
              IOCTL_USBIO_GET_CONFIGURATION,
              NULL,
              0,
              &data,
              sizeof(data),
              NULL
              );

  ConfigurationValue = data.ConfigurationValue;

  return Status;
}


DWORD CUsbIo::GetConfigurationInfo(USBIO_CONFIGURATION_INFO *Info)
{
  DWORD Status;

  // zero the struct if any fields are added...
  ZeroMemory(Info,sizeof(USBIO_CONFIGURATION_INFO));

  Status = IoctlSync(
              IOCTL_USBIO_GET_CONFIGURATION_INFO,
              NULL,
              0,
              Info,
              sizeof(USBIO_CONFIGURATION_INFO),
              NULL
              );

  return Status;
}



DWORD CUsbIo::SetInterface(const USBIO_INTERFACE_SETTING* Setting)
{
  DWORD Status;

  Status = IoctlSync(
              IOCTL_USBIO_SET_INTERFACE,
              Setting,
              sizeof(USBIO_INTERFACE_SETTING),
              NULL,
              0,
              NULL
              );

  return Status;
}


DWORD CUsbIo::GetInterface(
        UCHAR& AlternateSetting,
        USHORT Interface/*=0*/
        )
{
  DWORD Status;
  USBIO_GET_INTERFACE req;
  USBIO_GET_INTERFACE_DATA data;

  // zero the structs if any fields are added...
  ZeroMemory(&req,sizeof(req));
  ZeroMemory(&data,sizeof(data));
  req.Interface = Interface;
  
  Status = IoctlSync(
              IOCTL_USBIO_GET_INTERFACE,
              &req,
              sizeof(req),
              &data,
              sizeof(data),
              NULL
              );

  AlternateSetting = data.AlternateSetting;

  return Status;
}


DWORD CUsbIo::StoreConfigurationDescriptor(const USB_CONFIGURATION_DESCRIPTOR *Desc)
{
  DWORD Status;

  Status = IoctlSync(
              IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR,
              Desc,
              Desc->wTotalLength,
              NULL,
              0,
              NULL
              );

  return Status;
}



DWORD CUsbIo::GetDeviceParameters(USBIO_DEVICE_PARAMETERS *DevParam)
{
  DWORD Status;

  // zero the struct if any fields are added...
  ZeroMemory(DevParam,sizeof(USBIO_DEVICE_PARAMETERS));

  Status = IoctlSync(
              IOCTL_USBIO_GET_DEVICE_PARAMETERS,
              NULL,
              0,
              DevParam,
              sizeof(USBIO_DEVICE_PARAMETERS),
              NULL
              );

  return Status;
}



DWORD CUsbIo::SetDeviceParameters(const USBIO_DEVICE_PARAMETERS *DevParam)
{
  DWORD Status;

  Status = IoctlSync(
              IOCTL_USBIO_SET_DEVICE_PARAMETERS,
              DevParam,
              sizeof(USBIO_DEVICE_PARAMETERS),
              NULL,
              0,
              NULL
              );

  return Status;
}



DWORD CUsbIo::ResetDevice()
{
  DWORD Status;

  Status = IoctlSync(
              IOCTL_USBIO_RESET_DEVICE,
              NULL,
              0,
              NULL,
              0,
              NULL
              );

  return Status;
}


DWORD CUsbIo::CyclePort()
{
  DWORD Status;

  Status = IoctlSync(
              IOCTL_USBIO_CYCLE_PORT,
              NULL,
              0,
              NULL,
              0,
              NULL
              );

  return Status;
}



DWORD CUsbIo::GetCurrentFrameNumber(DWORD &FrameNumber)
{
  DWORD Status;
  USBIO_FRAME_NUMBER data;

  // zero the struct if any fields are added...
  ZeroMemory(&data,sizeof(data));

  Status = IoctlSync(
              IOCTL_USBIO_GET_CURRENT_FRAME_NUMBER,
              NULL,
              0,
              &data,
              sizeof(data),
              NULL
              );

  FrameNumber = data.FrameNumber;

  return Status;
}


DWORD CUsbIo::GetDevicePowerState(USBIO_DEVICE_POWER_STATE& DevicePowerState)
{
  USBIO_DEVICE_POWER PowerRequest;
  DWORD err;

  // zero the struct if any fields are added...
  ZeroMemory(&PowerRequest,sizeof(PowerRequest));

  err = IoctlSync(
              IOCTL_USBIO_GET_DEVICE_POWER_STATE,
              NULL,
              0,
              &PowerRequest,
              sizeof(USBIO_DEVICE_POWER),
              NULL
              );
  if ( err == USBIO_ERR_SUCCESS ) {
    DevicePowerState = PowerRequest.DevicePowerState;
  }
  return err;
}


DWORD CUsbIo::SetDevicePowerState(USBIO_DEVICE_POWER_STATE DevicePowerState)
{
  USBIO_DEVICE_POWER PowerRequest;

  PowerRequest.DevicePowerState = DevicePowerState;

  return IoctlSync(
              IOCTL_USBIO_SET_DEVICE_POWER_STATE,
              &PowerRequest,
              sizeof(USBIO_DEVICE_POWER),
              NULL,
              0,
              NULL
              );
}




DWORD CUsbIo::GetDeviceDescriptor(USB_DEVICE_DESCRIPTOR* Desc)
{
  DWORD ByteCount = sizeof(USB_DEVICE_DESCRIPTOR);

  return GetDescriptor(
              Desc,
              ByteCount,
              RecipientDevice,
              USB_DEVICE_DESCRIPTOR_TYPE,
              0,
              0
              );
}



DWORD CUsbIo::GetConfigurationDescriptor(
        USB_CONFIGURATION_DESCRIPTOR* Desc,
        DWORD& ByteCount,
        UCHAR Index/*=0*/
        )
{

  return GetDescriptor(
              Desc,
              ByteCount,
              RecipientDevice,
              USB_CONFIGURATION_DESCRIPTOR_TYPE,
              Index,
              0
              );
}



DWORD CUsbIo::GetStringDescriptor(
        USB_STRING_DESCRIPTOR* Desc,
        DWORD& ByteCount,
        UCHAR Index/*=0*/,
        USHORT LanguageId/*=0*/
        )
{

  return GetDescriptor(
              Desc,
              ByteCount,
              RecipientDevice,
              USB_STRING_DESCRIPTOR_TYPE,
              Index,
              LanguageId
              );
}




DWORD CUsbIo::IoctlSync(
        DWORD IoctlCode,
        const void *InBuffer,
        DWORD InBufferSize,
        void *OutBuffer,
        DWORD OutBufferSize,
        DWORD *BytesReturned
        )
{
  DWORD Status;
  DWORD BytesRet = 0;
  BOOL succ;

  // check if the driver was opened
  if ( FileHandle == NULL ) {
    return USBIO_ERR_DEVICE_NOT_OPEN;
  }

  // IOCTL requests must be serialized
  // bec. there is only one event object per instance
  EnterCriticalSection(&CritSect);

  // call the device driver
  succ = DeviceIoControl(
            FileHandle,         // driver handle
            IoctlCode,          // IOCTL code
            (void*)InBuffer,    // input buffer
            InBufferSize,       // input buffer size
            OutBuffer,          // output buffer
            OutBufferSize,      // output buffer size
            &BytesRet,          // number of bytes returned
            &Overlapped         // overlapped structure (async.)
            );
  if ( succ ) {
    // ioctl completed successfully
    Status = USBIO_ERR_SUCCESS;
  } else {
    Status = GetLastError();
    if ( Status == ERROR_IO_PENDING ) {
      // the operation is pending, wait for completion
      succ = GetOverlappedResult(
                FileHandle,
                &Overlapped,
                &BytesRet,  // byte count
                TRUE        // wait flag
                );
      if ( succ ) {
        // completed successfully
        Status = USBIO_ERR_SUCCESS;
      } else {
        Status = GetLastError();
      }
    }
  }

  LeaveCriticalSection(&CritSect);

  if ( BytesReturned != NULL ) {
    *BytesReturned = BytesRet;
  }

  return Status;
}



BOOL CUsbIo::CancelIo()
{
  // cancel all outstanding requests that were
  // issued by the calling thread on this handle
  return ::CancelIo(FileHandle);
}



// helper struct
struct _ErrorCodeTable {
  DWORD Code;
  const char *String;
};

//static 
char* 
CUsbIo::ErrorText(char* StringBuffer, DWORD StringBufferSize, DWORD ErrorCode)
{
  // string table
  static const struct _ErrorCodeTable ErrorTable[] = {
    {USBIO_ERR_SUCCESS                , "No error."},
    {USBIO_ERR_CRC                    , "HC Error: Wrong CRC."},
    {USBIO_ERR_BTSTUFF                , "HC Error: Wrong bit stuffing."},
    {USBIO_ERR_DATA_TOGGLE_MISMATCH   , "HC Error: Data toggle mismatch."},
    {USBIO_ERR_STALL_PID              , "HC Error: stall PID."},
    {USBIO_ERR_DEV_NOT_RESPONDING     , "HC Error: Device not responding."},
    {USBIO_ERR_PID_CHECK_FAILURE      , "HC Error: PID check failed."},
    {USBIO_ERR_UNEXPECTED_PID         , "HC Error: Unexpected PID."},
    {USBIO_ERR_DATA_OVERRUN           , "HC Error: Data Overrun."},
    {USBIO_ERR_DATA_UNDERRUN          , "HC Error: Data Underrun."},
    {USBIO_ERR_RESERVED1              , "HC Error: Reserved1."},
    {USBIO_ERR_RESERVED2              , "HC Error: Reserved2."},
    {USBIO_ERR_BUFFER_OVERRUN         , "HC Error: Buffer Overrun."},
    {USBIO_ERR_BUFFER_UNDERRUN        , "HC Error: Buffer Underrun."},
    {USBIO_ERR_NOT_ACCESSED           , "HC Error: Not accessed."},
    {USBIO_ERR_FIFO                   , "HC Error: FIFO error."},
    {USBIO_ERR_XACT_ERROR             , "HC Error: XACT error."},
    {USBIO_ERR_BABBLE_DETECTED        , "HC Error: Babble detected."},
    {USBIO_ERR_DATA_BUFFER_ERROR      , "HC Error: Data buffer error."},

    {USBIO_ERR_ENDPOINT_HALTED        , "USBD Error: Endpoint halted."},
    {USBIO_ERR_NO_MEMORY              , "USBD Error: No system memory."},
    {USBIO_ERR_INVALID_URB_FUNCTION   , "USBD Error: Invalid URB function."},
    {USBIO_ERR_INVALID_PARAMETER      , "USBD Error: Invalid parameter."},
    {USBIO_ERR_ERROR_BUSY             , "USBD Error: Busy."},
    {USBIO_ERR_REQUEST_FAILED         , "USBD Error: Request failed."},
    {USBIO_ERR_INVALID_PIPE_HANDLE    , "USBD Error: Invalid pipe handle."},
    {USBIO_ERR_NO_BANDWIDTH           , "USBD Error: No bandwidth available."},
    {USBIO_ERR_INTERNAL_HC_ERROR      , "USBD Error: Internal HC error."},
    {USBIO_ERR_ERROR_SHORT_TRANSFER   , "USBD Error: Short transfer."},
    {USBIO_ERR_BAD_START_FRAME        , "USBD Error: Bad start frame."},
    {USBIO_ERR_ISOCH_REQUEST_FAILED   , "USBD Error: Isochronous request failed."},
    {USBIO_ERR_FRAME_CONTROL_OWNED    , "USBD Error: Frame control owned."},
    {USBIO_ERR_FRAME_CONTROL_NOT_OWNED, "USBD Error: Frame control not owned."},
    {USBIO_ERR_NOT_SUPPORTED          , "USBD Error: Not supported."},
    {USBIO_ERR_INVALID_CONFIGURATION_DESCRIPTOR, "USBD Error: Invalid configuration descriptor."},

    {USBIO_ERR_INSUFFICIENT_RESOURCES   , "USBD Error: Insufficient resources."},
    {USBIO_ERR_SET_CONFIG_FAILED        , "USBD Error: Set configuration failed."},
    {USBIO_ERR_USBD_BUFFER_TOO_SMALL    , "USBD Error: Buffer too small."},
    {USBIO_ERR_USBD_INTERFACE_NOT_FOUND , "USBD Error: Interface not found."},
    {USBIO_ERR_INVALID_PIPE_FLAGS       , "USBD Error: Invalid pipe flags."},
    {USBIO_ERR_USBD_TIMEOUT             , "USBD Error: Timeout."},
    {USBIO_ERR_DEVICE_GONE              , "USBD Error: Device gone."},
    {USBIO_ERR_STATUS_NOT_MAPPED        , "USBD Error: Status not mapped."},


    {USBIO_ERR_CANCELED               , "USBD Error: cancelled."},
    {USBIO_ERR_ISO_NOT_ACCESSED_BY_HW , "USBD Error: ISO not accessed by hardware."},
    {USBIO_ERR_ISO_TD_ERROR           , "USBD Error: ISO TD error."},
    {USBIO_ERR_ISO_NA_LATE_USBPORT    , "USBD Error: ISO NA late USB port."},
    {USBIO_ERR_ISO_NOT_ACCESSED_LATE  , "USBD Error: ISO not accessed, submitted too late."},

    {USBIO_ERR_FAILED                 , "Operation failed."},
    {USBIO_ERR_INVALID_INBUFFER       , "Input buffer too small."},
    {USBIO_ERR_INVALID_OUTBUFFER      , "Output buffer too small."},
    {USBIO_ERR_OUT_OF_MEMORY          , "Out of memory."},
    {USBIO_ERR_PENDING_REQUESTS       , "There are pending requests."},
    {USBIO_ERR_ALREADY_CONFIGURED     , "USB device is already configured."},
    {USBIO_ERR_NOT_CONFIGURED         , "USB device is not configured."},
    {USBIO_ERR_OPEN_PIPES             , "There are open pipes."},
    {USBIO_ERR_ALREADY_BOUND          , "Either handle or pipe is already bound."},
    {USBIO_ERR_NOT_BOUND              , "Handle is not bound to a pipe."},
    {USBIO_ERR_DEVICE_NOT_PRESENT     , "Device is removed."},
    {USBIO_ERR_CONTROL_NOT_SUPPORTED  , "Control code is not supported."},
    {USBIO_ERR_TIMEOUT                , "The request has been timed out."},
    {USBIO_ERR_INVALID_RECIPIENT      , "Invalid recipient."},
    {USBIO_ERR_INVALID_TYPE           , "Invalid pipe type or invalid request type."},
    {USBIO_ERR_INVALID_IOCTL          , "Invalid I/O control code."},
    {USBIO_ERR_INVALID_DIRECTION      , "Invalid direction of read/write operation."},
    {USBIO_ERR_TOO_MUCH_ISO_PACKETS   , "Too much ISO packets."},
    {USBIO_ERR_POOL_EMPTY             , "Request pool empty."},
    {USBIO_ERR_PIPE_NOT_FOUND         , "Pipe not found."},
    {USBIO_ERR_INVALID_ISO_PACKET     , "Invalid ISO packet."},
    {USBIO_ERR_OUT_OF_ADDRESS_SPACE   , "Out of address space. Not enough system resources."},
    {USBIO_ERR_INTERFACE_NOT_FOUND    , "Interface not found."},
    {USBIO_ERR_INVALID_DEVICE_STATE   , "Invalid device state (stopped or power down)."},
    {USBIO_ERR_INVALID_PARAM          , "Invalid parameter."},
    {USBIO_ERR_DEMO_EXPIRED           , "DEMO version has expired. Reboot required!"},
    {USBIO_ERR_INVALID_POWER_STATE    , "Power state not allowed. Set to D0 first."},
    {USBIO_ERR_POWER_DOWN             , "Device powered down."},
    {USBIO_ERR_VERSION_MISMATCH       , "API Version does not match."},
    {USBIO_ERR_SET_CONFIGURATION_FAILED,"Set configuration failed."},

    {USBIO_ERR_VID_RESTRICTION,         "Light version restriction: Unsupported Vendor ID."},
    {USBIO_ERR_ISO_RESTRICTION,         "Light version restriction: Iso pipes are not supported."},
    {USBIO_ERR_BULK_RESTRICTION,        "Light version restriction: Bulk pipes are not supported."},
    {USBIO_ERR_EP0_RESTRICTION,         "Light version restriction: EP0 requests are not fully supported."},
    {USBIO_ERR_PIPE_RESTRICTION,        "Light version restriction: Too many pipes."},
    {USBIO_ERR_PIPE_SIZE_RESTRICTION,   "Light version restriction: Maximum FIFO size exceeded."},
    {USBIO_ERR_CONTROL_RESTRICTION,     "Light version restriction: Control pipes are not supported."},
    {USBIO_ERR_INTERRUPT_RESTRICTION,   "Light version restriction: Interrupt pipes are not supported."},

    {USBIO_ERR_DEVICE_NOT_FOUND       , "Device not found."},
    {USBIO_ERR_DEVICE_NOT_OPEN        , "Device not open."},
    {USBIO_ERR_NO_SUCH_DEVICE_INSTANCE, "No such device instance."},
    {USBIO_ERR_INVALID_FUNCTION_PARAM,  "An invalid parameter was passed."},
  };

  static int Size = sizeof(ErrorTable)/sizeof(struct _ErrorCodeTable);
  const char *ErrorString = "Windows system error code.";
  int i;
  BOOL found=FALSE;

  if ( (StringBuffer==NULL) || (StringBufferSize==0) ) {
    return StringBuffer;
  }

  for (i=0;i<Size;i++) {
    if (ErrorTable[i].Code == ErrorCode) {
      ErrorString=ErrorTable[i].String;
      found = TRUE;
      break;
    }
  }

  // the following does not produce useful error messages
  // so we don't use it anymore
  /*
  char* MsgBuffer = NULL;
  if (!found) {
    if (0 != FormatMessage(
                FORMAT_MESSAGE_ALLOCATE_BUFFER |
                FORMAT_MESSAGE_FROM_SYSTEM | 
                FORMAT_MESSAGE_IGNORE_INSERTS,
                NULL,
                ErrorCode,
                MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
                (LPTSTR)&MsgBuffer,    
                0,    
                NULL 
                )) {
      // found
      ErrorString = MsgBuffer; 
    }
  }
  */
  // print to string buffer
  _snprintf(StringBuffer,StringBufferSize,"Error code 0x%08X: %s",ErrorCode,ErrorString); 
  // make sure the string is zero-terminated
  StringBuffer[StringBufferSize-1] = 0;

/*
  // free resources
  if ( MsgBuffer!=NULL ) {
    LocalFree(MsgBuffer);
  }
*/

  return StringBuffer;

}//ErrorText



/*************************** EOF **************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区视频网站| 欧美肥大bbwbbw高潮| 欧美日韩一区二区三区高清| 久久久久久夜精品精品免费| 亚洲在线一区二区三区| 国产在线精品视频| 欧美日韩高清在线播放| 亚洲桃色在线一区| 国产成人精品亚洲777人妖| 欧美日韩五月天| 国产精品免费久久| 美女国产一区二区| 欧美日韩国产系列| 亚洲激情自拍偷拍| av不卡一区二区三区| 久久久久国色av免费看影院| 奇米色一区二区三区四区| 91久久久免费一区二区| 国产精品国产三级国产有无不卡| 精品制服美女久久| 欧美一区二区三区视频免费| 午夜精品一区在线观看| 色狠狠综合天天综合综合| 中文字幕一区二区三区不卡在线| 激情小说欧美图片| 欧美成人a在线| 麻豆视频一区二区| 日韩一区二区三区免费看| 午夜欧美一区二区三区在线播放| 在线观看一区日韩| 一区二区三区小说| 日本电影亚洲天堂一区| 伊人色综合久久天天人手人婷| zzijzzij亚洲日本少妇熟睡| 中日韩av电影| 成人av集中营| 中文字幕亚洲一区二区va在线| 岛国av在线一区| 国产精品嫩草99a| 91美女精品福利| 亚洲免费高清视频在线| 欧美主播一区二区三区美女| 亚洲一级二级三级| 91精品国产综合久久久蜜臀图片| 免费久久99精品国产| 精品国精品国产| 国产精品一区二区三区四区| 国产精品伦一区| 日本韩国欧美国产| 亚洲mv在线观看| 亚洲女人的天堂| 欧美特级限制片免费在线观看| 午夜不卡av在线| 久久夜色精品一区| yourporn久久国产精品| 天天综合网 天天综合色| 51午夜精品国产| 国产盗摄一区二区三区| 亚洲欧美一区二区三区久本道91| 欧美视频一区在线观看| 狂野欧美性猛交blacked| 欧美激情一区二区三区在线| 欧美色窝79yyyycom| 国产在线精品不卡| 一区二区三区在线看| 精品裸体舞一区二区三区| 不卡一区二区在线| 日韩和欧美的一区| 国产日韩欧美高清| 欧美二区乱c少妇| 成人涩涩免费视频| 日韩电影一二三区| 一区免费观看视频| 日韩手机在线导航| 91视频国产资源| 精品写真视频在线观看| 亚洲精品精品亚洲| 久久九九99视频| 欧美精品自拍偷拍| 色8久久人人97超碰香蕉987| 久久99国产精品麻豆| 亚洲欧美日韩在线| 久久这里只有精品6| 8v天堂国产在线一区二区| a美女胸又www黄视频久久| 久久成人免费日本黄色| 亚洲男帅同性gay1069| 久久夜色精品国产欧美乱极品| 欧美最猛黑人xxxxx猛交| 成人av电影在线观看| 极品少妇xxxx偷拍精品少妇| 亚洲国产精品久久久久婷婷884| 国产欧美精品在线观看| 日韩欧美www| 欧美日韩精品一区二区三区 | 亚洲一二三区在线观看| 久久精品在这里| 日韩免费视频一区二区| 欧洲人成人精品| 91麻豆蜜桃一区二区三区| 国产成人免费视频网站 | 久久影院视频免费| 91精品蜜臀在线一区尤物| 欧美亚洲综合色| 欧美性色欧美a在线播放| 色综合久久久久综合体| av亚洲精华国产精华精| 高清久久久久久| 成人性生交大片免费| 国产精品夜夜嗨| 国产成人av影院| 国产成人精品免费| 国产盗摄一区二区| 国产精品小仙女| 国产精品99久久久| 国产99久久精品| 不卡的电影网站| 色婷婷久久久综合中文字幕| 91女神在线视频| 欧美亚日韩国产aⅴ精品中极品| 欧美军同video69gay| 欧美日韩不卡一区| 91精品国产乱码久久蜜臀| 91精品国产综合久久久久久久久久| 91精品中文字幕一区二区三区| 欧美一级欧美一级在线播放| 日韩一二三区视频| 久久免费的精品国产v∧| 久久久国产精品麻豆| 国产精品国产成人国产三级| 亚洲欧美激情小说另类| 亚洲成av人片在线观看| 精品在线免费视频| 国产99久久久国产精品潘金网站| av福利精品导航| 欧美日本一区二区| 久久伊人蜜桃av一区二区| 最新国产成人在线观看| 亚洲一级二级三级在线免费观看| 日韩高清一级片| 高清视频一区二区| 欧美日韩中文字幕一区| 欧美成人性战久久| 国产精品欧美一区喷水| 午夜婷婷国产麻豆精品| 国产福利一区二区| 在线观看亚洲精品视频| 精品国产伦一区二区三区观看方式| 亚洲国产精品av| 视频一区二区三区中文字幕| 国产精品香蕉一区二区三区| 在线观看成人免费视频| 久久亚洲一区二区三区四区| 亚洲精品一二三区| 国产在线不卡一区| 欧美午夜片在线看| 欧美高清在线一区| 日韩精品一级中文字幕精品视频免费观看 | 日本欧美肥老太交大片| 国产成人丝袜美腿| 91精品国产综合久久香蕉麻豆| 国产精品麻豆网站| 乱一区二区av| 欧美视频日韩视频| 国产精品色哟哟| 蜜臀av一区二区在线免费观看| 91在线精品一区二区三区| 日韩欧美一级二级三级| 自拍av一区二区三区| 精品一区二区三区在线播放| 欧美少妇一区二区| 日韩久久一区二区| 高清在线观看日韩| 亚洲精品在线观看视频| 亚洲一区免费观看| 97se狠狠狠综合亚洲狠狠| 久久尤物电影视频在线观看| 秋霞午夜鲁丝一区二区老狼| 欧美性大战久久久久久久蜜臀| 亚洲欧美怡红院| 国产成人在线视频网站| 精品免费国产一区二区三区四区| 亚洲成人免费看| 在线看不卡av| 亚洲一区免费在线观看| 91成人国产精品| 亚洲日本乱码在线观看| yourporn久久国产精品| 国产精品天天看| 国产91精品一区二区麻豆亚洲| 精品少妇一区二区三区日产乱码| 偷窥少妇高潮呻吟av久久免费| 色一情一伦一子一伦一区| 中文字幕一区av| 99re这里只有精品视频首页| 国产精品天美传媒| 在线中文字幕一区二区| 亚洲免费在线观看视频| 91农村精品一区二区在线| 亚洲人成网站在线|