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

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

?? asyncmac.c

?? wince3.0的源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
		
	case OID_GEN_MEDIA_SUPPORTED :
	case OID_GEN_MEDIA_IN_USE:
		MoveSource = (PVOID)&Medium;
		MoveBytes = sizeof(Medium);
		break;

	case OID_GEN_VENDOR_ID:
		GenericULong = 0xFFFFFFFF;
		MoveBytes = 3;
		break;

	case OID_GEN_VENDOR_DESCRIPTION:
		MoveSource = (PVOID)"AsyncMac Adapter";
		MoveBytes = 16;
		break;

	case OID_GEN_DRIVER_VERSION:
		GenericUShort = 0x0300;
		MoveSource = (PVOID)&GenericUShort;
		MoveBytes = sizeof(USHORT);
		break;

	case OID_GEN_HARDWARE_STATUS:
		MoveSource = (PVOID)&HardwareStatus;
		MoveBytes = sizeof(HardwareStatus);
		break;

	case OID_GEN_LINK_SPEED:
		//
		// Who knows what the initial link speed is?
		// This should not be called, right?
		//
		GenericULong = (ULONG)288;
		break;
		
	case OID_TAPI_PROVIDER_INITIALIZE:
		fDoCommonMove = FALSE;
		if (InformationBufferLength < sizeof(NDIS_TAPI_PROVIDER_INITIALIZE)) {
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_TAPI_PROVIDER_INITIALIZE);	
		} else {
			PNDIS_TAPI_PROVIDER_INITIALIZE	pProvInit = (PNDIS_TAPI_PROVIDER_INITIALIZE)InformationBuffer;
			pProvInit->ulNumLineDevs = pAdapter->dwNumDevs;
			*BytesWritten = sizeof(NDIS_TAPI_PROVIDER_INITIALIZE);
		}
		break;

	case OID_TAPI_GET_DEV_CAPS :
		fDoCommonMove = FALSE;
		if (InformationBufferLength < sizeof(NDIS_TAPI_GET_DEV_CAPS))
		{
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_TAPI_GET_DEV_CAPS);
		} else
		{
			LONG						lResult;

			PNDIS_TAPI_GET_DEV_CAPS	pGetDevCaps = (PNDIS_TAPI_GET_DEV_CAPS)InformationBuffer;

			lResult = lineGetDevCaps(pAdapter->hLineApp, pGetDevCaps->ulDeviceID, pAdapter->dwAPIVersion,
						   0, (LPLINEDEVCAPS)&(pGetDevCaps->LineDevCaps));
			if (lResult != 0)
			{
				DEBUGMSG (ZONE_TAPI|ZONE_ERROR, (TEXT("lineGetDevCaps failed (%d)\n"), lResult));
				StatusToReturn = MapTapiErrorToNdisStatus(lResult);
			}
		}
		break;

	case OID_TAPI_GET_DEV_CONFIG :
		fDoCommonMove = FALSE;
		if (InformationBufferLength < sizeof(NDIS_TAPI_GET_DEV_CONFIG))
		{
			DEBUGMSG (ZONE_TAPI, (TEXT("ASYNCMAC: Buffer too short (%d < %d)\n"), InformationBufferLength, sizeof(NDIS_TAPI_GET_DEV_CONFIG)));
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_TAPI_GET_DEV_CONFIG);
			break;
		}
		else
		{
			PNDIS_TAPI_GET_DEV_CONFIG	pTapiDevConfig = (PNDIS_TAPI_GET_DEV_CONFIG)InformationBuffer;
			LPVARSTRING					pDevConfig = (LPVARSTRING)&pTapiDevConfig->DeviceConfig;
			LONG						lResult;

			DEBUGMSG (ZONE_TAPI, (TEXT("ASYNCMAC: Calling lineGetDevConfig\n")));
			lResult = lineGetDevConfig(
							pTapiDevConfig->ulDeviceID,
							pDevConfig,
							DEV_CLASS_COMM_DATAMODEM);
			if (lResult != 0)
			{
				DEBUGMSG (ZONE_TAPI|ZONE_ERROR, (TEXT("lineGetDevConfig failed (%d)\n"), lResult));
				StatusToReturn = MapTapiErrorToNdisStatus(lResult);
			}
		}
		break;

	case OID_TAPI_TRANSLATE_ADDRESS :
		fDoCommonMove = FALSE;
		if (InformationBufferLength < sizeof(NDIS_TAPI_LINE_TRANSLATE)) {
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_TAPI_LINE_TRANSLATE);
			DEBUGMSG (ZONE_ERROR, (TEXT(" ASYNCMAC:MpQueryInfo length too short for lineTranslateAddress, new length=%d\r\n"),
								   *BytesNeeded));
		} else {
			PNDIS_TAPI_LINE_TRANSLATE pLineTranslate = (PNDIS_TAPI_LINE_TRANSLATE)InformationBuffer;
			long lResult;

			// Lame check to see if the structures are the same size
			ASSERT (sizeof(LINETRANSLATEOUTPUT) == sizeof(LINE_TRANSLATE_OUTPUT));

			lResult = lineTranslateAddress (pAdapter->hLineApp, pLineTranslate->ulDeviceID,
											pAdapter->dwAPIVersion, (LPTSTR)pLineTranslate->DataBuf,
											0, pLineTranslate->ulTranslateOptions,
											(LPLINETRANSLATEOUTPUT)(pLineTranslate->DataBuf+pLineTranslate->ulLineTranslateOutputOffset));
			if (lResult != 0) {
				DEBUGMSG (ZONE_ERROR, (TEXT(" ASYNCMAC:MpQueryInfo Error %d from lineTranslateAddress\r\n"),
									   lResult));
				StatusToReturn = MapTapiErrorToNdisStatus(lResult);
			}
		}
		break;

	case OID_TAPI_OPEN :
		fDoCommonMove = FALSE;
		if (InformationBufferLength < sizeof(NDIS_TAPI_OPEN)) {
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_TAPI_OPEN);
			break;
		} else {
			PNDIS_TAPI_OPEN		pTapiOpen = (PNDIS_TAPI_OPEN)InformationBuffer;
			PASYNCMAC_OPEN_LINE	pOpenLine;
			long				lResult;

			pOpenLine = AsyncMacAllocateMemory(sizeof(ASYNCMAC_OPEN_LINE));

			if (pOpenLine == NULL)
			{
				StatusToReturn = NDIS_STATUS_RESOURCES;
				break;
			}
			ASSERT(AsyncMacGuardRegionOk(pOpenLine, sizeof(ASYNCMAC_OPEN_LINE)));
#ifdef DEBUG
			pOpenLine->dwDebugSigStart = AOL_SIG_START;
			pOpenLine->dwDebugSigEnd = AOL_SIG_END;
			DEBUGMSG (ZONE_ALLOC, (TEXT(" ASYNCMAC:MpQueryInfo: Allocated pOpenLine 0x%X(%d)\r\n"),
								   pOpenLine, sizeof(ASYNCMAC_OPEN_LINE)));
#endif
			DEBUGMSG (ZONE_TAPI, (TEXT("***Allocated pOpenLine at 0x%X\r\n"),
						  pOpenLine));
			pOpenLine->dwRefCnt = 1;	// InitializeRefCnt
			pOpenLine->pAdapter = pAdapter;
			pOpenLine->dwDeviceID = pTapiOpen->ulDeviceID;
			pOpenLine->htLine = pTapiOpen->htLine;
			pOpenLine->dwBaudRate = AOL_DEF_BAUD_RATE;	// Default baud rate.

			// Initialize the GET_LINK_INFO struct
			pOpenLine->WanLinkInfo.MaxSendFrameSize = pAdapter->MaxSendFrameSize;
			pOpenLine->WanLinkInfo.MaxRecvFrameSize = pAdapter->MaxRecvFrameSize;
			pOpenLine->WanLinkInfo.HeaderPadding    = pAdapter->Info.HeaderPadding;
			pOpenLine->WanLinkInfo.TailPadding      = pAdapter->Info.TailPadding;
			pOpenLine->WanLinkInfo.SendFramingBits = PPP_FRAMING;	// For SLIP, we will have to be told to turn this off.
			pOpenLine->WanLinkInfo.RecvFramingBits = PPP_FRAMING;
			pOpenLine->WanLinkInfo.SendCompressionBits = 0;
			pOpenLine->WanLinkInfo.RecvCompressionBits = 0;
			pOpenLine->WanLinkInfo.SendACCM = (ULONG) -1;
			pOpenLine->WanLinkInfo.RecvACCM = (ULONG) -1;
			
			lResult = lineOpen(pAdapter->hLineApp, pTapiOpen->ulDeviceID,
							   &pOpenLine->hLine,
							   pAdapter->dwAPIVersion, 0,
							   (DWORD)pOpenLine, LINECALLPRIVILEGE_OWNER,
							   LINEMEDIAMODE_DATAMODEM, NULL);

			if (lResult != 0) {
				DEBUGMSG (ZONE_TAPI|ZONE_ERROR,
						  (TEXT("lineOpen failed (%x)\r\n"), lResult));
				AsyncMacFreeMemory (pOpenLine, sizeof(ASYNCMAC_OPEN_LINE));
				StatusToReturn = MapTapiErrorToNdisStatus(lResult);
			} else {
				DEBUGMSG (ZONE_TAPI, (TEXT("lineOpen success\r\n")));
				pTapiOpen->hdLine = (HDRV_LINE)pOpenLine;

				// Add ourselves to the list of open lines for this adapter
				pOpenLine->pNext = pAdapter->pHead;
				pAdapter->pHead = pOpenLine;
				DEBUGMSG(ZONE_TAPI, (TEXT(" Add pOpenLine=%x to pAdapter=%x (v_pAdapter=%x)\n"), pOpenLine, pAdapter, v_pAdapter));
			}
		}
		break;

	case OID_TAPI_MAKE_CALL :
		fDoCommonMove = FALSE;
		if (InformationBufferLength < sizeof(NDIS_TAPI_MAKE_CALL)) {
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_TAPI_MAKE_CALL);
			break;
		} else {
			PNDIS_TAPI_MAKE_CALL pTapiMakeCall = (PNDIS_TAPI_MAKE_CALL)InformationBuffer;
			long lResult;
			PASYNCMAC_OPEN_LINE	pOpenLine;
			LINECALLPARAMS CallParams;
			LPTSTR			szDialStr;

			pOpenLine = (PASYNCMAC_OPEN_LINE)pTapiMakeCall->hdLine;
			ASSERT(CHK_AOL(pOpenLine));
			pOpenLine->htCall = pTapiMakeCall->htCall;

#ifdef TODO
	// For now I'll assume that the bUserDefaultCallParams has been
	// specified
#endif
			szDialStr = (LPTSTR)((PBYTE)pTapiMakeCall+pTapiMakeCall->ulDestAddressOffset);
			RETAILMSG (1, (TEXT("ASYNCMAC: Dialing '%s'\r\n"), szDialStr));
			memset ((char *)&CallParams, 0, sizeof(LINECALLPARAMS));
			CallParams.dwTotalSize = sizeof(LINECALLPARAMS);
			CallParams.dwBearerMode = LINEBEARERMODE_DATA;
			CallParams.dwMinRate = 0;   // Any rate
			CallParams.dwMaxRate = 0;   // This should mean any max rate
			CallParams.dwMediaMode = LINEMEDIAMODE_DATAMODEM;
			CallParams.dwCallParamFlags = LINECALLPARAMFLAGS_IDLE;
			CallParams.dwAddressMode = LINEADDRESSMODE_ADDRESSID;
			CallParams.dwAddressID = 0;  // there's only one address...

			lResult = lineMakeCall (pOpenLine->hLine, &(pOpenLine->hCall),
									szDialStr, 0,
									&CallParams);
			if (lResult < 0) {
				DEBUGMSG (ZONE_TAPI|ZONE_ERROR,
						  (TEXT("Error %x from lineMakeCall\r\n"), lResult));
				StatusToReturn = MapTapiErrorToNdisStatus(lResult);
			} else {
				DEBUGMSG (ZONE_TAPI, (TEXT("lineMakeCall Success.  RequestID=%d, hCall=0x%X\r\n"),
									  lResult, pOpenLine->hCall));
				pTapiMakeCall->hdCall = (HDRV_CALL)pOpenLine;
				pOpenLine->TapiReqID = lResult;
			}
			ASSERT(CHK_AOL(pOpenLine));
		}
		break;

	case OID_TAPI_CONFIG_DIALOG_EDIT :
		fDoCommonMove = FALSE;
		if (InformationBufferLength < sizeof(NDIS_TAPI_LINE_CONFIG_DIALOG_EDIT)) {
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_TAPI_LINE_CONFIG_DIALOG_EDIT);
			DEBUGMSG (ZONE_ERROR, (TEXT(" ASYNCMAC:MpQueryInfo length too short for lineTranslateAddress, new length=%d\r\n"),
								   *BytesNeeded));
		} else {
			long lResult;
			HANDLE	hEditThread;
			DWORD	dwID;

			//
			//	Spin a thread to do the edit.
			//	That way, when the edit thread goes away GWE will release any "hidden" window
			//	from the system. Otherwise the hidden window would persist as long as the INdisDriverThread
			//	for asyncmac was around and cause problems as there is no message pump for it.
			//
			hEditThread = CreateThread(NULL, 0, LineConfigDialogEditThread, InformationBuffer, 0, &dwID);

			if (hEditThread == INVALID_HANDLE_VALUE)
			{
				StatusToReturn = NDIS_STATUS_RESOURCES;
			}
			else
			{
				WaitForSingleObject(hEditThread, INFINITE);
				GetExitCodeThread(hEditThread, (PDWORD)&lResult);
				CloseHandle(hEditThread);

				DEBUGMSG (lResult && ZONE_ERROR, (TEXT(" ASYNCMAC:MpQueryInfo Error 0x%X(%d) from lineConfigDialogEdit\r\n"), lResult, lResult));
			}
		}
		break;

	case OID_WAN_CURRENT_ADDRESS:
	case OID_WAN_PERMANENT_ADDRESS:
		MoveSource = WanAddress;
		MoveBytes = sizeof(WanAddress);
		break;
		
	case OID_WAN_GET_INFO:
		MoveSource = &pAdapter->Info;
		MoveBytes = sizeof(pAdapter->Info);
		break;
		
	case OID_WAN_MEDIUM_SUBTYPE:
	    GenericULong = NdisWanMediumSerial;
	    break;

	case OID_WAN_HEADER_FORMAT:
	    GenericULong = NdisWanHeaderEthernet;
	    break;


	case OID_GEN_MAC_OPTIONS:
		GenericULong = (ULONG)(NDIS_MAC_OPTION_RECEIVE_SERIALIZED |
							   NDIS_MAC_OPTION_TRANSFERS_NOT_PEND |
                               NDIS_MAC_OPTION_FULL_DUPLEX |
							   NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA);
		break;

	case OID_GEN_MAXIMUM_LOOKAHEAD :
	case OID_GEN_CURRENT_LOOKAHEAD:
	case OID_GEN_MAXIMUM_FRAME_SIZE:
	case OID_GEN_TRANSMIT_BLOCK_SIZE:
	case OID_GEN_RECEIVE_BLOCK_SIZE:
	case OID_GEN_MAXIMUM_TOTAL_SIZE:
		GenericULong = pAdapter->Info.MaxFrameSize;
		break;

	case OID_GEN_TRANSMIT_BUFFER_SPACE:
	case OID_GEN_RECEIVE_BUFFER_SPACE:
		// TODO: Get real buffer space numbers
		GenericULong = (ULONG)(pAdapter->Info.MaxFrameSize * 2);
		break;

	case OID_WAN_GET_LINK_INFO :
		if (InformationBufferLength < sizeof (NDIS_WAN_GET_LINK_INFO)) {
			StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;
			*BytesNeeded = sizeof(NDIS_WAN_GET_LINK_INFO);
			break;
		} else {
			PNDIS_WAN_GET_LINK_INFO	pLinkInfo = (PNDIS_WAN_GET_LINK_INFO)InformationBuffer;
			PASYNCMAC_OPEN_LINE	pOpenLine;

			pOpenLine = (PASYNCMAC_OPEN_LINE)pLinkInfo->NdisLinkHandle;
			ASSERT(CHK_AOL(pOpenLine));

			// Let's move this just in case...
			pOpenLine->WanLinkInfo.NdisLinkHandle = pLinkInfo->NdisLinkHandle;
				
			MoveSource = &pOpenLine->WanLinkInfo;
			MoveBytes = sizeof(pOpenLine->WanLinkInfo);
		}
		
		break;

    default:
		DEBUGMSG (ZONE_ERROR,
				  (TEXT(" ASYNCMAC:MpQueryInfo: OID 0x%X/%hs not supported\r\n"),
				  Oid, GetOidString(Oid)));
        StatusToReturn = NDIS_STATUS_NOT_SUPPORTED;
        break;
    }
	
    if ( StatusToReturn == NDIS_STATUS_SUCCESS ) {

        if (fDoCommonMove) {
            //
            //  If there is enough room then we can copy the data and
            //  return the number of bytes copied, otherwise we must
            //  fail and return the number of bytes needed.
            //
            if ( MoveBytes <= InformationBufferLength ) {

                memcpy (InformationBuffer, MoveSource, MoveBytes);

                *BytesWritten = MoveBytes;

            } else {

                *BytesNeeded = MoveBytes;

	        	StatusToReturn = NDIS_STATUS_BUFFER_TOO_SHORT;

            }
        }
    }

	DEBUGMSG (ZONE_INIT|ZONE_INTERFACE,
			  (TEXT("-ASYNCMAC:MpQueryInfo: Returning 0x%X\r\n"),
			   StatusToReturn));
	
	return StatusToReturn;
}

NDIS_STATUS
MpSetInfo(
	IN	NDIS_HANDLE	MiniportAdapterContext,
	IN	NDIS_OID	Oid,
	IN	PVOID		InformationBuffer,
	IN	ULONG		InformationBufferLength,
	OUT PULONG		BytesRead,
	OUT PULONG		BytesNeeded
	)
/*++

Routine Description:

    The AsyncSetInformation is used by AsyncRequest to set information
    about the MAC.

    Note: Assumes it is called with the lock held.  Any calls are made down
	to the serial driver from this routine may return pending.  If this happens
	the completion routine for the call needs to complete this request by
	calling NdisMSetInformationComplete.

Arguments:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡在线视频| 欧美精品日韩一本| 亚洲精品一区二区三区蜜桃下载 | 精品写真视频在线观看| 99精品久久久久久| 国产欧美一区二区在线观看| 国产老妇另类xxxxx| 国产精品国产馆在线真实露脸| 亚洲乱码日产精品bd| 国产综合成人久久大片91| 欧美卡1卡2卡| 亚洲三级电影网站| 欧美日韩一区二区三区高清| 一区二区三区日韩在线观看| 成人综合在线观看| 欧美蜜桃一区二区三区| 欧美在线观看一区| 亚洲一区二区3| 欧美一区二区在线观看| 蜜乳av一区二区| 日韩一区二区三区四区| 国产成人免费av在线| 日韩欧美精品三级| 国产一区二区三区视频在线播放| 国产视频一区在线观看| 99久久久久久| 亚洲成av人片一区二区梦乃 | 麻豆免费看一区二区三区| 欧美日韩夫妻久久| 麻豆精品视频在线观看| 欧美激情一区在线| 欧美性三三影院| 美女一区二区久久| 欧美成人a视频| 一区二区在线观看免费视频播放| 欧美午夜一区二区| 久久99国产乱子伦精品免费| 18欧美乱大交hd1984| 欧美三级在线视频| 国产精品一区二区视频| 丝袜美腿亚洲综合| 久久精品人人做人人爽97| 在线观看91视频| 丰满白嫩尤物一区二区| 亚洲电影在线免费观看| 337p粉嫩大胆噜噜噜噜噜91av| 99riav一区二区三区| 日韩二区三区四区| 亚洲女同女同女同女同女同69| 欧美高清视频在线高清观看mv色露露十八| 久久精品国产第一区二区三区| 伊人夜夜躁av伊人久久| 精品国产伦理网| 欧美无砖专区一中文字| 99久久精品情趣| 美国av一区二区| 欧美韩国日本不卡| 久久精品夜色噜噜亚洲aⅴ| 欧洲生活片亚洲生活在线观看| 美国欧美日韩国产在线播放| 午夜私人影院久久久久| 国产精品美女久久久久久2018| 欧美日韩高清在线| 色美美综合视频| 国产成人免费高清| 美女国产一区二区三区| 日韩综合一区二区| 一区二区三区蜜桃网| 久久婷婷国产综合精品青草 | 欧美日韩国产高清一区二区三区| 成人自拍视频在线| 国产999精品久久久久久绿帽| 秋霞国产午夜精品免费视频| 亚洲激情欧美激情| 亚洲狼人国产精品| 国产精品色婷婷| 久久色成人在线| 日韩色视频在线观看| 欧美精品久久久久久久多人混战 | 亚洲免费伊人电影| 国产精品另类一区| 日本一区二区久久| 久久网站最新地址| 久久综合国产精品| 国产人妖乱国产精品人妖| 26uuu国产一区二区三区| 日韩免费在线观看| 久久久午夜电影| 久久天天做天天爱综合色| 欧美mv日韩mv| 国产亚洲精久久久久久| 久久人人爽爽爽人久久久| 91精品国产综合久久香蕉麻豆| 在线观看91av| 欧美一级日韩免费不卡| 6080午夜不卡| 久久久亚洲国产美女国产盗摄| 国产视频视频一区| 久久久亚洲高清| 亚洲天堂2014| 一区二区三区成人在线视频| 日本一区二区成人| 亚洲欧美色图小说| 亚洲高清视频中文字幕| 亚洲人成网站影音先锋播放| 亚洲午夜精品网| 日韩精品福利网| 国产原创一区二区| 色综合久久99| 欧美日韩国产欧美日美国产精品| 欧美日韩亚洲综合在线| 日韩免费视频一区| 国产精品乱人伦| 亚洲人成亚洲人成在线观看图片| 亚洲一区二区高清| 精品中文字幕一区二区| 国产99精品视频| 欧美在线视频日韩| 久久久精品欧美丰满| 亚洲欧美日韩电影| 亚洲一区二区在线播放相泽| 紧缚奴在线一区二区三区| 成人综合婷婷国产精品久久蜜臀 | 在线观看亚洲成人| 91精品欧美综合在线观看最新| 717成人午夜免费福利电影| 久久先锋影音av| 亚洲美女屁股眼交| 丝袜诱惑亚洲看片| 国产成人免费在线| 在线免费亚洲电影| 久久久久久久久99精品| 一区二区在线观看视频| 激情成人午夜视频| 欧美日韩国产另类一区| 久久久久久久久伊人| 五月天激情综合| kk眼镜猥琐国模调教系列一区二区 | 日本三级韩国三级欧美三级| 国产成人综合视频| 欧美视频在线观看一区二区| 日韩欧美国产高清| 亚洲伊人色欲综合网| 91一区在线观看| 26uuu久久天堂性欧美| 亚洲天堂福利av| 国产夫妻精品视频| 在线播放国产精品二区一二区四区 | 久久狠狠亚洲综合| 国产真实乱偷精品视频免| 91福利国产成人精品照片| 久久亚洲一区二区三区四区| 美日韩一级片在线观看| 91精品91久久久中77777| 6080国产精品一区二区| 亚洲国产欧美在线| 99国产精品一区| 欧美日韩一级视频| 亚洲自拍偷拍麻豆| zzijzzij亚洲日本少妇熟睡| 久久人人97超碰com| 六月丁香婷婷久久| 678五月天丁香亚洲综合网| 亚洲大片一区二区三区| 日本丶国产丶欧美色综合| 日本一区二区三区电影| 国产精品一区二区男女羞羞无遮挡| 91精品国产入口在线| 成人免费小视频| 在线这里只有精品| 中文字幕在线观看不卡视频| 国产91精品精华液一区二区三区| 日韩精品一区国产麻豆| 日韩高清在线观看| 欧美xxxxx牲另类人与| 亚洲成av人片在www色猫咪| 在线中文字幕不卡| 日韩电影在线观看网站| 欧美喷潮久久久xxxxx| 亚洲欧美韩国综合色| 99精品在线免费| 亚洲欧美精品午睡沙发| 欧美午夜寂寞影院| 天堂va蜜桃一区二区三区| av不卡免费在线观看| 精品欧美一区二区久久| 久久97超碰国产精品超碰| 欧美成人精品高清在线播放| 老司机精品视频在线| 欧美成人r级一区二区三区| 国精产品一区一区三区mba视频| 日韩写真欧美这视频| 国产盗摄一区二区三区| 亚洲国产精品二十页| 国产一区福利在线| 一区在线观看免费| 欧美在线观看一区二区| 久草精品在线观看| 久久久久99精品一区| 91性感美女视频|