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

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

?? usbfndrv.cpp

?? SMDK2440 友善之臂MINI2440使用
?? 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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www国产精品av| 欧洲av在线精品| 91网站视频在线观看| 欧美日韩免费一区二区三区视频| 欧美日韩国产成人在线91| 精品国产髙清在线看国产毛片| 欧美激情一区在线观看| 亚洲一区二区三区自拍| 久久成人麻豆午夜电影| 99久久综合精品| 欧美一级日韩一级| 国产精品美日韩| 日日骚欧美日韩| 国产suv精品一区二区三区| 欧美视频一区二区三区在线观看| 久久综合av免费| 亚洲影院免费观看| 国产伦精品一区二区三区视频青涩| 色综合中文综合网| 日本 国产 欧美色综合| 成人免费高清视频在线观看| 在线播放91灌醉迷j高跟美女| 国产网站一区二区三区| 天堂成人国产精品一区| 91在线国产观看| 久久婷婷久久一区二区三区| 午夜在线成人av| eeuss影院一区二区三区 | 麻豆精品视频在线观看视频| 99精品在线免费| 久久在线免费观看| 日韩电影免费一区| 91免费国产在线观看| 久久这里只有精品视频网| 亚洲成人av电影在线| 91小视频免费观看| 亚洲国产精品成人综合| 久久99精品久久只有精品| 欧美日韩高清一区二区不卡| 亚洲欧美自拍偷拍| 国产成人综合亚洲网站| 欧美成人猛片aaaaaaa| 亚洲国产精品久久一线不卡| 91在线视频播放地址| 国产精品天干天干在观线| 激情国产一区二区| 欧美一级久久久| 污片在线观看一区二区| 欧美主播一区二区三区| 亚洲天堂成人网| 波多野洁衣一区| 中文字幕电影一区| 国产成人免费xxxxxxxx| 精品成a人在线观看| 日韩av不卡在线观看| 欧美三级中文字幕| 亚洲国产视频一区二区| 91电影在线观看| 亚洲免费视频成人| 色94色欧美sute亚洲线路一久| 国产精品初高中害羞小美女文| 丰满岳乱妇一区二区三区| 精品国产乱码91久久久久久网站| 久久精品国产色蜜蜜麻豆| 日韩一二三区不卡| 另类的小说在线视频另类成人小视频在线 | 欧美一区二区三区在线看| 亚洲第一福利一区| 欧美日韩亚洲丝袜制服| 亚洲福利视频一区| 欧美日韩日日摸| 秋霞电影网一区二区| 欧美一区二区三区免费在线看| 五月婷婷久久丁香| 欧美一卡在线观看| 久久成人综合网| 国产午夜亚洲精品午夜鲁丝片| 国产精品一区一区三区| 中文天堂在线一区| 色94色欧美sute亚洲13| 亚洲高清一区二区三区| 欧美一区二区精品| 国产一区二区三区精品欧美日韩一区二区三区| 精品久久久久久久人人人人传媒| 国产一区二区在线看| 中文字幕不卡在线| 91福利国产成人精品照片| 日韩和欧美的一区| xf在线a精品一区二区视频网站| 国产另类ts人妖一区二区| 国产精品国产自产拍高清av| 色av一区二区| 青青草97国产精品免费观看无弹窗版| 日韩欧美激情在线| 国产91丝袜在线播放九色| 亚洲女同女同女同女同女同69| 在线亚洲免费视频| 麻豆成人91精品二区三区| 久久久久久影视| 91免费观看国产| 日韩黄色免费网站| 日本一区免费视频| 欧美午夜不卡视频| 九九精品一区二区| 亚洲视频一区二区在线| 在线综合视频播放| 国产成人综合亚洲91猫咪| 一级特黄大欧美久久久| 69堂成人精品免费视频| 国产精品一区二区三区乱码| 一区二区在线观看免费| 日韩你懂的在线播放| 成人av影视在线观看| 日日嗨av一区二区三区四区| 国产亚洲成av人在线观看导航| 在线国产电影不卡| 精品写真视频在线观看| 亚洲精品成人在线| 欧美mv日韩mv| 在线视频国产一区| 国产福利一区二区三区| 亚洲高清在线视频| 国产精品天美传媒沈樵| 欧美一级二级在线观看| 91网站最新地址| 国产米奇在线777精品观看| 亚洲一区二区三区爽爽爽爽爽 | 国产精品夜夜嗨| 午夜在线成人av| 国产精品家庭影院| 精品捆绑美女sm三区| 日本精品免费观看高清观看| 国内精品不卡在线| 婷婷亚洲久悠悠色悠在线播放 | 91国偷自产一区二区使用方法| 精品一区二区三区免费播放| 亚洲精品成人天堂一二三| 久久久一区二区三区捆绑**| 欧美精品在线观看播放| 91麻豆国产福利在线观看| 国模一区二区三区白浆| 视频精品一区二区| 一区二区三区蜜桃网| 国产午夜精品一区二区| 日韩欧美aaaaaa| 在线不卡一区二区| 欧美午夜视频网站| 99精品久久久久久| 国产成人亚洲综合a∨猫咪| 欧美三级视频在线观看| 波多野结衣精品在线| 国产精品一区一区| 老司机精品视频线观看86| 亚洲成av人片一区二区| 亚洲伦理在线精品| 欧美激情艳妇裸体舞| 精品国产sm最大网站免费看| 欧美一区欧美二区| 欧美电影在线免费观看| 欧美亚洲高清一区| 一本一道久久a久久精品综合蜜臀| 国产精品一二三四| 国产精品自在在线| 国产专区欧美精品| 国内精品久久久久影院色| 麻豆国产91在线播放| 久久国内精品自在自线400部| 日本aⅴ亚洲精品中文乱码| 视频在线观看一区二区三区| 亚洲电影一级黄| 亚洲成av人片一区二区梦乃| 亚洲高清免费视频| 午夜私人影院久久久久| 亚洲成人av资源| 午夜不卡在线视频| 日本视频免费一区| 免费观看一级欧美片| 蜜桃在线一区二区三区| 日本色综合中文字幕| 美女视频免费一区| 激情丁香综合五月| 国产a级毛片一区| 成人动漫av在线| av电影在线观看一区| 色综合一区二区| 欧美天堂一区二区三区| 欧美日韩视频在线第一区| 欧美日韩不卡在线| 日韩一区二区在线播放| 精品国产免费视频| 久久这里只精品最新地址| 中文在线资源观看网站视频免费不卡| 国产91综合网| 丁香六月综合激情| 97精品超碰一区二区三区| 色94色欧美sute亚洲线路一久| 欧美色综合网站| 日韩一级二级三级精品视频| 久久综合久久鬼色| 国产精品久久久久久久裸模 |