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

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

?? usbfndrv.cpp

?? 2440 CE500BSP包, EBOOT可用DEBUG版調(diào)試
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
        {
            sizeof(USB_ENDPOINT_DESCRIPTOR),// bLength
            USB_ENDPOINT_DESCRIPTOR_TYPE,   // bDescriptorType
            INTERRUPT_IN_ENDPOINT_ADDRESS,  // bEndpointAddress (endpoint 2, out)
            USB_ENDPOINT_TYPE_INTERRUPT,    // bmAttributes
            MAX_INTERRUPT_ENDPOINT_PACKET_SIZE,   // wMaxPacketSize
            0x20                            // bInterval (interrupt only)
        },
        NULL
    }
};

static UFN_INTERFACE                        g_HighSpeedInterface1 = {
    sizeof(UFN_INTERFACE),
    {
        sizeof(USB_INTERFACE_DESCRIPTOR),   // bLength
        USB_INTERFACE_DESCRIPTOR_TYPE,      // bDescriptorType
        0x00,                               // bInterfaceNumber    
        0x00,                               // bAlternateSetting

        dim(g_HighSpeedEndpoints),          // bNumEndpoints
        0xff,       // bInterfaceClass
        0xff,// bInterfaceSubClass
        0xff,             // bInterfaceProtocol
        0x00                                // iInterface    
    },
    NULL,                                   // extended
    0,
    g_HighSpeedEndpoints                    // endpoint array
};
static UFN_INTERFACE                        g_HighSpeedInterface2 = {
    sizeof(UFN_INTERFACE),
    {
        sizeof(USB_INTERFACE_DESCRIPTOR),   // bLength
        USB_INTERFACE_DESCRIPTOR_TYPE,      // bDescriptorType
        0x00,                               // bInterfaceNumber    
        0x00,                               // bAlternateSetting

        dim(g_HighSpeedEndpoints)-1,        // bNumEndpoints
        0xff,       // bInterfaceClass
        0xff,// bInterfaceSubClass
        0xff,             // bInterfaceProtocol
        0x00                                // iInterface    
    },
    NULL,                                   // extended
    0,
    g_HighSpeedEndpoints                    // endpoint array
};

static UFN_INTERFACE                        g_FullSpeedInterface1 = {
    sizeof(UFN_INTERFACE),
    {
        sizeof(USB_INTERFACE_DESCRIPTOR),   // bLength
        USB_INTERFACE_DESCRIPTOR_TYPE,      // bDescriptorType
        0x00,                               // bInterfaceNumber    
        0x00,                               // bAlternateSetting

        dim(g_FullSpeedEndpoints),          // bNumEndpoints
        0xff,       // bInterfaceClass
        0xff,// bInterfaceSubClass
        0xff,             // bInterfaceProtocol
        0x00                                // iInterface    
    },
    NULL,                                   // extended
    0,
    g_FullSpeedEndpoints                    // endpoint array
};

static UFN_INTERFACE                        g_FullSpeedInterface2 = {
    sizeof(UFN_INTERFACE),
    {
        sizeof(USB_INTERFACE_DESCRIPTOR),   // bLength
        USB_INTERFACE_DESCRIPTOR_TYPE,      // bDescriptorType
        0x00,                               // bInterfaceNumber    
        0x00,                               // bAlternateSetting

        dim(g_FullSpeedEndpoints)-1,          // bNumEndpoints
        0xff,       // bInterfaceClass
        0xff,// bInterfaceSubClass
        0xff,             // bInterfaceProtocol
        0x00                                // iInterface    
    },
    NULL,                                   // extended
    0,
    g_FullSpeedEndpoints                    // endpoint array
};

static UFN_CONFIGURATION                    g_HighSpeedConfig1 = {
    sizeof(UFN_CONFIGURATION),
    {
        sizeof(USB_CONFIGURATION_DESCRIPTOR),// bLength
        USB_CONFIGURATION_DESCRIPTOR_TYPE,  // bDescriptorType
        
        CB_CONFIG_DESCRIPTOR,               // wTotalLength
        0x01,                               // bNumInterfaces
        0x01,                               // bConfigurationValue
        0x00,                               // iConfiguration
        USB_CONFIG_RESERVED_ATTRIBUTE | USB_CONFIG_SELF_POWERED,            // bmAttributes
        0x00                                // MaxPower
    },
    NULL,
    0x01,                                   // number of interfaces
    &g_HighSpeedInterface1                  // interface array
};

static UFN_CONFIGURATION                    g_HighSpeedConfig2 = {
    sizeof(UFN_CONFIGURATION),
    {
        sizeof(USB_CONFIGURATION_DESCRIPTOR),// bLength
        USB_CONFIGURATION_DESCRIPTOR_TYPE,  // bDescriptorType
        
        CB_CONFIG_DESCRIPTOR- sizeof(USB_ENDPOINT_DESCRIPTOR), // wTotalLength
        0x01,                               // bNumInterfaces
        0x01,                               // bConfigurationValue
        0x00,                               // iConfiguration
        USB_CONFIG_RESERVED_ATTRIBUTE | USB_CONFIG_SELF_POWERED,            // bmAttributes
        0x00                                // MaxPower
    },
    NULL,
    0x01,                                   // number of interfaces
    &g_HighSpeedInterface2                  // interface array
};

static UFN_CONFIGURATION                    g_FullSpeedConfig1 = {
    sizeof(UFN_CONFIGURATION),
    {
        sizeof(USB_CONFIGURATION_DESCRIPTOR),// bLength
        USB_CONFIGURATION_DESCRIPTOR_TYPE,  // bDescriptorType
        
        CB_CONFIG_DESCRIPTOR,               // wTotalLength
        0x01,                               // bNumInterfaces
        0x01,                               // bConfigurationValue
        0x00,                               // iConfiguration
        USB_CONFIG_RESERVED_ATTRIBUTE | USB_CONFIG_SELF_POWERED,            // bmAttributes
        0x00                                // MaxPower
    },
    NULL,
    0x01,                                   // number of interfaces
    &g_FullSpeedInterface1                   // interface array
};

static UFN_CONFIGURATION                    g_FullSpeedConfig2 = {
    sizeof(UFN_CONFIGURATION),
    {
        sizeof(USB_CONFIGURATION_DESCRIPTOR),// bLength
        USB_CONFIGURATION_DESCRIPTOR_TYPE,  // bDescriptorType
        
        CB_CONFIG_DESCRIPTOR - sizeof(USB_ENDPOINT_DESCRIPTOR), // wTotalLength
        0x01,                               // bNumInterfaces
        0x01,                               // bConfigurationValue
        0x00,                               // iConfiguration
        USB_CONFIG_RESERVED_ATTRIBUTE | USB_CONFIG_SELF_POWERED,            // bmAttributes
        0x00                                // MaxPower
    },
    NULL,
    0x01,                                   // number of interfaces
    &g_FullSpeedInterface2                   // interface array
};


static UFN_CLIENT_REG_INFO g_RegInfo = { sizeof(UFN_CLIENT_REG_INFO) };

static LPCWSTR g_rgpszStrings0409[] = {
    g_RegInfo.szVendor, g_RegInfo.szProduct
};

static UFN_STRING_SET g_rgStringSets[] = {
    0x0409, g_rgpszStrings0409, dim(g_rgpszStrings0409)
};


CUsbFn::CUsbFn (LPCTSTR lpActivePath)
:   m_pUfnFuncs(&m_UfnFuncs)
{
    DWORD dwLen = _tcslen(lpActivePath);
    m_lpActivePath = new TCHAR[dwLen+1];
    if (m_lpActivePath) {
        _tcscpy(m_lpActivePath,lpActivePath);
        m_lpActivePath[dwLen]= 0;
    }
    m_hDevice = NULL;
    m_pvInterface = NULL;
    m_CurrentSpeed = BS_HIGH_SPEED;
}
#define COMLAYER_DRIVER_PATH TEXT("ComLayer")
BOOL CUsbFn::Init()
{
    if (m_lpActivePath &&
            UfnInitializeInterface(m_lpActivePath, &m_hDevice, &m_UfnFuncs, &m_pvInterface)== ERROR_SUCCESS) {
        PREFAST_ASSERT(m_hDevice!=NULL);
        PREFAST_ASSERT(m_pUfnFuncs!=NULL);
        CRegistryEdit driverKey(m_lpActivePath);
        if (driverKey.IsKeyOpened()) {
            DWORD dwRet = UfnGetRegistryInfo(m_lpActivePath, &g_RegInfo);
            if (dwRet == ERROR_SUCCESS) {
                g_HighSpeedDeviceDesc.idVendor = (USHORT) g_RegInfo.idVendor;
                g_HighSpeedDeviceDesc.idProduct = (USHORT) g_RegInfo.idProduct;
                g_HighSpeedDeviceDesc.bcdDevice = (USHORT) g_RegInfo.bcdDevice;

                g_FullSpeedDeviceDesc.idVendor = g_HighSpeedDeviceDesc.idVendor;
                g_FullSpeedDeviceDesc.idProduct = g_HighSpeedDeviceDesc.idProduct;
                g_FullSpeedDeviceDesc.bcdDevice = g_HighSpeedDeviceDesc.bcdDevice;
                
                // Register the descriptor tree with device controller
                m_fInterrupt = TRUE;
                dwRet = ERROR_GEN_FAILURE;
                
#ifdef USE_INTERRUPT_ENDPOINT
                dwRet = m_pUfnFuncs->lpRegisterDevice(m_hDevice,
                    &g_HighSpeedDeviceDesc, &g_HighSpeedConfig1, 
                    &g_FullSpeedDeviceDesc, &g_FullSpeedConfig1, 
                    g_rgStringSets, dim(g_rgStringSets));
#endif            
                if (dwRet != ERROR_SUCCESS) { // Try Second
                    m_fInterrupt = FALSE;
                    dwRet = m_pUfnFuncs->lpRegisterDevice(m_hDevice,
                        &g_HighSpeedDeviceDesc, &g_HighSpeedConfig2, 
                        &g_FullSpeedDeviceDesc, &g_FullSpeedConfig2, 
                        g_rgStringSets, dim(g_rgStringSets));
                }
                if (dwRet == ERROR_SUCCESS ) { // Do I need Initial Pipe Here?
                    dwRet = m_pUfnFuncs->lpStart(m_hDevice, DeviceNotifyStub, this,  &m_hDefaultPipe);

                }
            }
            return (dwRet == ERROR_SUCCESS );
        }
    }
    return FALSE;
}
CUsbFn::~CUsbFn()
{
    if (m_lpActivePath)
        delete m_lpActivePath;

    if (m_pvInterface)
        UfnDeinitializeInterface(m_pvInterface);
}

BOOL WINAPI CUsbFn::DeviceNotifyStub(PVOID   pvNotifyParameter, DWORD   dwMsg, DWORD   dwParam)
{
    PREFAST_ASSERT(pvNotifyParameter!=NULL);
    return ((CUsbFn *)pvNotifyParameter)->DeviceNotify(dwMsg,dwParam);
}
BOOL CUsbFn::DeviceNotify(DWORD dwMsg, DWORD dwParam)
{
    DEBUGMSG (ZONE_WRITE|ZONE_EVENTS,(TEXT("DeviceNotify (0x%x,0x%x)\r\n"),dwMsg, dwParam));
    switch(dwMsg) {
        case UFN_MSG_BUS_EVENTS: {
            // Ensure device is in running state
            DEBUGCHK(m_hDefaultPipe);

           switch(dwParam) {                
                case UFN_DETACH:
                    CableDetached();
                    break;
                case UFN_ATTACH:
                    break;
                case UFN_RESET: {
                    CableDetached();
                    break;
                }
             } 

           break;
        }
        
        case UFN_MSG_BUS_SPEED:
             m_CurrentSpeed = (UFN_BUS_SPEED) dwParam;
        break;

        case UFN_MSG_SETUP_PACKET:
        case UFN_MSG_PREPROCESSED_SETUP_PACKET: {
            HandleRequest(dwMsg,*(PUSB_DEVICE_REQUEST)dwParam);
            break;
        }

        case UFN_MSG_CONFIGURED: {
            if (dwParam == 0) {
                CableDetached();
            }
            else {
                CableAttached();
            }
            break;
        }
        
    }
    return TRUE;
}
void CUsbFn::HandleRequest(
    DWORD dwMsg,
    USB_DEVICE_REQUEST udr
    )
{
    CONTROL_RESPONSE response;

    if (dwMsg == UFN_MSG_PREPROCESSED_SETUP_PACKET) {
        response = CR_SUCCESS; // Don't respond since it was already handled.
        
        if ( udr.bmRequestType ==
            (USB_REQUEST_HOST_TO_DEVICE | USB_REQUEST_STANDARD | USB_REQUEST_FOR_ENDPOINT) ) {
            switch (udr.bRequest) {
                case USB_REQUEST_CLEAR_FEATURE:
                    // This may be needed in the future to terminate a transfer 
                    // in progress
                    HandleClearFeature(udr);
                    break;
            }
        }
    }
    else {
        DEBUGCHK(dwMsg == UFN_MSG_SETUP_PACKET);
        response = CR_STALL_DEFAULT_PIPE;

        if (udr.bmRequestType & USB_REQUEST_CLASS) {
            response = HandleClassRequest(udr);
        }
    }

    if (response == CR_STALL_DEFAULT_PIPE) {
        m_pUfnFuncs->lpStallPipe(m_hDevice, m_hDefaultPipe);
        m_pUfnFuncs->lpSendControlStatusHandshake(m_hDevice);
    }
    else if (response == CR_SUCCESS_SEND_CONTROL_HANDSHAKE) {
        m_pUfnFuncs->lpSendControlStatusHandshake(m_hDevice);
    }
}
CONTROL_RESPONSE CUsbFn::HandleClassRequest(
    USB_DEVICE_REQUEST udr
    )
{

    CONTROL_RESPONSE response = CR_STALL_DEFAULT_PIPE;
           
    if (udr.bmRequestType == 
            (USB_REQUEST_CLASS | USB_REQUEST_FOR_INTERFACE | USB_REQUEST_HOST_TO_DEVICE) ) { 
        if (udr.bRequest == SET_CONTROL_LINE_STATE) {
            /* Host is notifying us of control line state.
             * wValue contains bitmask
             * 0 - DTR
             * 1 - RTS
             */
            DEBUGMSG( ZONE_FUNCTION, (TEXT("SET_CONTROL_LINE_STATE %X\r\n"),
                 udr.wValue));
            DWORD dwModemStatus = 0;
            if (udr.wValue & USB_COMM_DTR)
              dwModemStatus |= (MS_DSR_ON|MS_RLSD_ON); // DTR active, set DSR/RLSD
            if (udr.wValue & USB_COMM_RTS) 
              dwModemStatus |= MS_CTS_ON;   // RTS active, set CTS
            ModemSignal(dwModemStatus);
            response = CR_SUCCESS_SEND_CONTROL_HANDSHAKE;
        }
    }
    else {
        RETAILMSG(1, (_T("Unrecognized Serial class bRequest -> 0x%x\r\n"), udr.bmRequestType));
        ASSERT(FALSE);
    }
    ASSERT(response == CR_SUCCESS_SEND_CONTROL_HANDSHAKE);
    return response;
}
void USBSerialFn::CableDetached()
{
    // This is last time to call this structure.
    m_HardwareLock.Lock();
    CloseBulkIn();
    CloseBulkOut();
    CloseInterruptIn();
    m_HardwareLock.Unlock();
    ModemSignal(0);
}
void USBSerialFn::CableAttached() 
{
    m_HardwareLock.Lock();
    DWORD dwBulkSize = (m_CurrentSpeed == BS_HIGH_SPEED?
        g_HighSpeedEndpoints[BULK_IN_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize:
        g_FullSpeedEndpoints[BULK_IN_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize);
    BYTE uEdptAddr  = (m_CurrentSpeed == BS_HIGH_SPEED?
        g_HighSpeedEndpoints[BULK_IN_DESCRIPTOR_INDEX].Descriptor.bEndpointAddress:
        g_FullSpeedEndpoints[BULK_IN_DESCRIPTOR_INDEX].Descriptor.bEndpointAddress);
    OpenBulkIn(m_hDevice, m_pUfnFuncs,uEdptAddr,FALSE, dwBulkSize, 0x1000, 2);
    
    dwBulkSize = (m_CurrentSpeed == BS_HIGH_SPEED?
        g_HighSpeedEndpoints[BULK_OUT_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize:
        g_FullSpeedEndpoints[BULK_OUT_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize);
    uEdptAddr  = (m_CurrentSpeed == BS_HIGH_SPEED?
        g_HighSpeedEndpoints[BULK_OUT_DESCRIPTOR_INDEX].Descriptor.bEndpointAddress:
        g_FullSpeedEndpoints[BULK_OUT_DESCRIPTOR_INDEX].Descriptor.bEndpointAddress);
    OpenBulkOut(m_hDevice, m_pUfnFuncs,uEdptAddr,TRUE,dwBulkSize,dwBulkSize, 4); // WCEUSBSH Bug. Only can usb MaxPacketSize
    
    if (m_fInterrupt) {
        DWORD dwInterruptSize = (m_CurrentSpeed == BS_HIGH_SPEED?
            g_HighSpeedEndpoints[INTERRUPT_IN_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize:
            g_FullSpeedEndpoints[INTERRUPT_IN_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize);
        uEdptAddr  = (m_CurrentSpeed == BS_HIGH_SPEED?
            g_HighSpeedEndpoints[INTERRUPT_IN_DESCRIPTOR_INDEX].Descriptor.bEndpointAddress:
            g_FullSpeedEndpoints[INTERRUPT_IN_DESCRIPTOR_INDEX].Descriptor.bEndpointAddress);
        OpenInterruptIn(m_hDevice, m_pUfnFuncs,uEdptAddr,FALSE,dwInterruptSize,8, 1);
    }
    m_HardwareLock.Unlock();
}
CSerialPDD * CreateSerialObject(LPTSTR lpActivePath, PVOID pMdd,PHWOBJ pHwObj, DWORD )
{
    CSerialPDD * pSerialPDD = new USBSerialFn(lpActivePath,pMdd, pHwObj);
    if (pSerialPDD && !pSerialPDD->Init()) {
        delete pSerialPDD;
        pSerialPDD = NULL;
    }
    return pSerialPDD;
}
void DeleteSerialObject(CSerialPDD * pSerialPDD)
{
    if (pSerialPDD)
        delete pSerialPDD;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品热久久久久夜色精品三区| 欧美成人精品3d动漫h| 久久欧美中文字幕| 亚洲va韩国va欧美va| 国产成人免费在线观看不卡| 欧美日韩成人高清| 亚洲欧洲国产日韩| 国模套图日韩精品一区二区| 欧美午夜精品一区| 中文字幕一区免费在线观看| 国产一区二区毛片| 欧美另类变人与禽xxxxx| 亚洲欧洲制服丝袜| 国产成人午夜视频| 精品久久久久久亚洲综合网 | 日韩欧美激情在线| 一区二区三区国产| av一区二区三区黑人| 久久亚洲二区三区| 蜜桃久久久久久| 欧美日韩电影在线| 亚洲电影一区二区三区| 91蜜桃视频在线| 国产精品久久久久一区 | 亚洲国产一区二区视频| www.视频一区| 国产精品人成在线观看免费| 国产精品一区二区91| 精品久久久久久无| 久久电影国产免费久久电影| 91精品欧美综合在线观看最新| 一区二区三区在线观看视频| 91女神在线视频| 国产精品超碰97尤物18| 99热在这里有精品免费| 国产精品伦一区二区三级视频| 国产成人精品免费看| 欧美国产日韩精品免费观看| 国产成人av一区| 国产欧美日韩亚州综合| 大尺度一区二区| 国产精品麻豆视频| 91在线观看一区二区| 亚洲视频1区2区| 91蜜桃传媒精品久久久一区二区| 日韩一区中文字幕| 91美女片黄在线观看91美女| 亚洲男人电影天堂| 欧美亚洲精品一区| 婷婷开心激情综合| 日韩美女主播在线视频一区二区三区| 麻豆精品一区二区| 精品国产伦理网| 国产麻豆成人传媒免费观看| 久久婷婷国产综合精品青草 | 亚洲成a人在线观看| 欧美日韩国产另类一区| 七七婷婷婷婷精品国产| 日韩美女主播在线视频一区二区三区| 国产一区二区在线电影| 国产日韩在线不卡| 91视频.com| 午夜精品久久久久久久99水蜜桃 | 91精品国产91久久久久久一区二区 | 九九精品一区二区| 国产欧美一区视频| 一本色道综合亚洲| 午夜激情一区二区| 欧美sm美女调教| 成人丝袜视频网| 亚洲综合视频网| 日韩精品中文字幕一区二区三区| 国产精品影视网| 亚洲精品欧美在线| 欧美一级欧美三级在线观看| 国产精品主播直播| 亚洲乱码中文字幕| 日韩欧美国产精品一区| 国产盗摄一区二区| 亚洲电影第三页| 久久蜜臀精品av| 色综合中文字幕| 免费一区二区视频| 国产精品视频麻豆| 欧美日韩国产综合一区二区三区| 久久99精品视频| 亚洲男人天堂av网| 欧美tk—视频vk| 色综合 综合色| 麻豆精品视频在线| 日韩一区日韩二区| 日韩欧美国产一二三区| 97久久精品人人爽人人爽蜜臀| 天堂一区二区在线| 国产精品麻豆一区二区 | 99国产精品久久久久久久久久久| 午夜久久久久久久久 | 911精品产国品一二三产区| 国产一区二区h| 亚洲一二三四在线观看| 久久久青草青青国产亚洲免观| 欧美伊人久久大香线蕉综合69| 国产在线精品国自产拍免费| 亚洲成人激情av| 国产精品美女一区二区| 欧美一级欧美一级在线播放| 色综合久久久久久久久| 国产乱码一区二区三区| 日韩成人av影视| 亚洲欧洲制服丝袜| 国产亲近乱来精品视频| 91精品国产入口| 色哟哟在线观看一区二区三区| 国产露脸91国语对白| 婷婷综合久久一区二区三区| 中文字幕综合网| 久久久久久久久久电影| 欧美精品日韩精品| 99久久精品免费| 国产精品资源在线看| 免费在线看成人av| 亚洲成人动漫在线观看| 亚洲视频一区二区免费在线观看| 久久久精品2019中文字幕之3| 91麻豆精品国产91久久久使用方法 | 色综合久久久久久久久久久| 国产精品中文字幕日韩精品 | 午夜精品久久久久| 亚洲人123区| 亚洲精品免费看| 国产精品网曝门| 久久精品视频在线看| 日韩视频在线你懂得| 欧美伦理电影网| 欧美午夜精品久久久久久超碰 | 麻豆精品视频在线观看视频| 亚洲.国产.中文慕字在线| 伊人夜夜躁av伊人久久| 国产精品美女久久福利网站| 国产三级精品视频| 国产日韩欧美亚洲| 国产肉丝袜一区二区| 国产亚洲污的网站| 精品国产sm最大网站| 精品久久一区二区| 精品国产乱码久久久久久免费| 在线综合视频播放| 欧美一级久久久| 91精品国产手机| 日韩视频永久免费| 日韩欧美亚洲另类制服综合在线| 欧美一区二区大片| 日韩三级伦理片妻子的秘密按摩| 欧美一级理论片| 精品少妇一区二区三区日产乱码 | 国产精品剧情在线亚洲| 欧美国产一区二区在线观看| 国产亚洲精品7777| 中国av一区二区三区| 国产精品网站在线| 亚洲同性同志一二三专区| 亚洲美女视频在线观看| 亚洲精品久久久蜜桃| 亚洲愉拍自拍另类高清精品| 亚洲h动漫在线| 久久精品国产亚洲aⅴ| 久久电影网电视剧免费观看| 国产美女久久久久| 成人ar影院免费观看视频| 9久草视频在线视频精品| 日本大香伊一区二区三区| 欧美曰成人黄网| 欧美精三区欧美精三区| 欧美不卡视频一区| 国产色综合一区| 综合在线观看色| 亚洲动漫第一页| 久久不见久久见免费视频1| 国产成人鲁色资源国产91色综| 99久久久无码国产精品| 欧美性淫爽ww久久久久无| 欧美一级在线视频| 久久精品欧美一区二区三区不卡| 中文字幕一区在线观看| 亚洲电影一区二区三区| 精品亚洲免费视频| av在线不卡观看免费观看| 欧美日韩精品欧美日韩精品 | 日韩一二在线观看| 久久噜噜亚洲综合| 国产精品你懂的| 亚洲成av人**亚洲成av**| 美女视频网站久久| 成人免费高清视频在线观看| 欧美中文字幕一区| 精品精品欲导航| 日韩一区欧美小说| 青青草伊人久久| 不卡欧美aaaaa| 欧美一区二区三区四区高清|