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

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

ReadFile

  • 包含8個文件:type.h, borrow.c, createfile.c, MainMenuControl.C, reader.c, ReadFile.c, search.c, writefile.

    包含8個文件:type.h, borrow.c, createfile.c, MainMenuControl.C, reader.c, ReadFile.c, search.c, writefile.c

    標簽: MainMenuControl createfile writefile ReadFile

    上傳時間: 2013-12-22

    上傳用戶:xuanchangri

  • Winsock2的發(fā)布使得Socket I/O有了和文件I/O統(tǒng)一的接口。我們可以通過使用Win32文件操縱函數(shù)ReadFile和WriteFile來進行Socket I/O。伴隨而來的

    Winsock2的發(fā)布使得Socket I/O有了和文件I/O統(tǒng)一的接口。我們可以通過使用Win32文件操縱函數(shù)ReadFile和WriteFile來進行Socket I/O。伴隨而來的,用于普通文件I/O的重疊I/O模型和完成端口模型對Socket I/O也適用了。這些模型的優(yōu)點是可以達到更佳的系統(tǒng)性 能,但是實現(xiàn)較為復雜,里面涉及較多的C語言技巧。例如我們在完成端口模型中會經(jīng)常用到所謂的“尾隨數(shù)據(jù)”。

    標簽: Socket WriteFile Winsock2 ReadFile

    上傳時間: 2014-12-03

    上傳用戶:fxf126@126.com

  • 驅(qū)動程序與應(yīng)用程序的接口

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個符號鏈;2. 通過輸出到一個接口WDM驅(qū)動程序建議使用輸出到一個接口而不推薦使用創(chuàng)建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創(chuàng)建一個惟一的、獨立于語言的訪問設(shè)備的方法。一個應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個Win32 APIs和設(shè)備對象的分發(fā)函數(shù)之間存在一個映射關(guān)系。獲得對設(shè)備對象訪問的第一步就是打開一個設(shè)備對象的句柄。 用符號鏈打開一個設(shè)備的句柄為了打開一個設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個符號鏈出口,應(yīng)用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個設(shè)備。這個設(shè)備必須有一個符號鏈,以便應(yīng)用程序能夠打開它。有關(guān)細節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個參數(shù)中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數(shù)不是Windows 98/2000中驅(qū)動程序(.sys文件)的路徑。是到設(shè)備對象的符號鏈。如果使用DriverWizard產(chǎn)生驅(qū)動程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號鏈。這意味著符號鏈名有一個附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個實例來獲得一個或更多的CdeviceInterface類的實例。CdeviceInterface類是一個單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對象的IRPs。下面的表顯示了這種對應(yīng)關(guān)系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調(diào)用CleanUp。當沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會在打開設(shè)備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因為它將導致沒有特權(quán)的用戶企圖打開這個設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對象的屬性。當設(shè)備設(shè)置DO_DIRECT_IO標志,I/O管理器將buff鎖住在存儲器中,并且創(chuàng)建了一個存儲在IRP中的MDL域。一個設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當設(shè)備設(shè)置DO_BUFFERED_IO標志,設(shè)備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當設(shè)備不設(shè)置DO_BUFFERED_IO標志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲區(qū)并沒有被鎖住而且地址只對調(diào)用進程有效。驅(qū)動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個宏的其中一個參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個單一的緩沖來作為輸入與輸出。驅(qū)動程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級調(diào)用者使用的緩沖中。驅(qū)動程序必須在結(jié)束前存儲拷貝到IRP的Information成員中的數(shù)據(jù)個數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個系統(tǒng)緩沖,這個緩沖驅(qū)動程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對象,驅(qū)動程序?qū)@個對象的訪問通過調(diào)用KIrp::Mdl來實現(xiàn)。對于METHOD_OUT_DIRECT,調(diào)用者必須有對緩沖的寫訪問權(quán)限。注意,對METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調(diào)用進程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執(zhí)行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅(qū)動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    標簽: 驅(qū)動程序 應(yīng)用程序 接口

    上傳時間: 2013-10-17

    上傳用戶:gai928943

  • 從串口讀取數(shù)據(jù)

    從串口讀取數(shù)據(jù),有兩種方法,1、每接收一個EV_RXCHAR,就用ReadFile讀一次,這樣我覺得太恐怖了。2、接收到一個EV_RXCHAR后,等一定數(shù)據(jù)量的CPU周期(GetTickCount),再一次性讀取緩沖區(qū)里的數(shù)據(jù)。這樣做,一般情況下不會有問題,但是,如果數(shù)據(jù)很多,過了“一定數(shù)據(jù)量的CPU周期”,還沒收完數(shù)據(jù)怎么辦?就會少讀數(shù)據(jù)了。 我用三個線程序來完成串口數(shù)據(jù)的接收,其實就是第一種方法的變種: 一個偵聽EV_RXCHAR,一個對EV_RXCHAR進行分析,其實就是超時判斷。如果接收到一個消息后,一段時間沒收到下一個EV_RXCHAR,就認為是一個數(shù)據(jù)包的結(jié)束。這個線程就會通知數(shù)據(jù)接收線程,進行數(shù)據(jù)接收。一般同一包數(shù)據(jù),兩個字符之間的時間間隔,應(yīng)該很小了吧,而兩個數(shù)據(jù)包之間的間隔,應(yīng)該不會太小吧!(這個地方我不清楚,猜的:( :) )最后一個線程,是接收數(shù)據(jù)的。

    標簽: 串口 讀取 數(shù)據(jù)

    上傳時間: 2014-01-24

    上傳用戶:cylnpy

  • 從串口讀取數(shù)據(jù)

    從串口讀取數(shù)據(jù),有兩種方法, 1、每接收一個EV_RXCHAR,就用ReadFile讀一次,這樣我覺得太恐怖了。 2、接收到一個EV_RXCHAR后,等一定數(shù)據(jù)量的CPU周期(GetTickCount),再一次性讀取緩沖區(qū)里的數(shù)據(jù)。這樣做,一般情況下不會有問題,但是,如果數(shù)據(jù)很多,過了“一定數(shù)據(jù)量的CPU周期”,還沒收完數(shù)據(jù)怎么辦?就會少讀數(shù)據(jù)了。 我用三個線程序來完成串口數(shù)據(jù)的

    標簽: 串口 讀取 數(shù)據(jù)

    上傳時間: 2015-03-23

    上傳用戶:qb1993225

  • USB驅(qū)動協(xié)議的簡化版。如果你想打開一個USB管道

    USB驅(qū)動協(xié)議的簡化版。如果你想打開一個USB管道,你首先要知道這種USB設(shè)備的GUID和管理道名稱,獲取句柄以后就可以使用ReadFile/WriteFile進行讀寫了!

    標簽: USB 驅(qū)動 協(xié)議

    上傳時間: 2014-01-10

    上傳用戶:zjf3110

  • VC++中使用內(nèi)存映射文件處理大文件,文件操作是應(yīng)用程序最為基本的功能之一

    VC++中使用內(nèi)存映射文件處理大文件,文件操作是應(yīng)用程序最為基本的功能之一,Win32 API 和MFC 均提供有支持 文件處理的函數(shù)和類,常用的有Win32 API 的CreateFile()、WriteFile()、 ReadFile()和MFC 提供的CFile 類等

    標簽: VC 內(nèi)存映射 文件處理 應(yīng)用程序

    上傳時間: 2013-12-24

    上傳用戶:趙云興

  • 如果你想打開一個USB管道

    如果你想打開一個USB管道,你首先要知道這種USB設(shè)備的GUID和管理道名稱, 獲取句柄以后就可以使用ReadFile/WriteFile進行讀寫了!

    標簽: USB

    上傳時間: 2013-12-18

    上傳用戶:dancnc

  • //打開 USB 口讀寫, 由驅(qū)動程序的 Pipe 名確定 HANDLE hPipe = OpenMyDevPipe("MyPipe1") //驅(qū)動程序里面的 Pipe 名, 對應(yīng)訪問某個端點

    //打開 USB 口讀寫, 由驅(qū)動程序的 Pipe 名確定 HANDLE hPipe = OpenMyDevPipe("MyPipe1") //驅(qū)動程序里面的 Pipe 名, 對應(yīng)訪問某個端點的 I/O, 這里我亂寫的, 需要與驅(qū)動一致 if(hPipe != INVALID_HANDLE_VALUE) //打開 Pipe 成功 { ReadFile(hPipe, Buffer, BufSize, &nBytesRead, NULL) //從 hPipe 里讀取數(shù)據(jù)到 Buffer 里 //WriteFile(hPipe, Buffer, BytesToWrite, &nBytesWritten, NULL) //把 Buffer 里面的 BytesToWrite 字節(jié)寫入 hPipe CloseHandle(hPipe) } //使用 DeviceIoControl 訪問 USB 設(shè)備 HANDLE hDevice = OpenMyDevice() if(hDevice != INVALID_HANDLE_VALUE) //打開設(shè)備成功 { //這些 DeviceIoControl 功能都是由設(shè)備定義的, 具體看設(shè)備和驅(qū)動的資料 if(DeviceIoControl(hDevice, IOCTL_READ_xxxx, &IOBlock, sizeof(IOBLOCK), &c, 1, &nBytes, NULL)) { //成功 } CloseHandle(hDevice) }

    標簽: Pipe OpenMyDevPipe MyPipe1 HANDLE

    上傳時間: 2014-11-25

    上傳用戶:stampede

  • 實現(xiàn)串行通訊的相關(guān)API函數(shù) API函數(shù)不僅提供了打開和讀寫通訊端口的操作方法

    實現(xiàn)串行通訊的相關(guān)API函數(shù) API函數(shù)不僅提供了打開和讀寫通訊端口的操作方法,還提供了名目繁多的函數(shù)以支持對串行通訊的各種操作。 函數(shù)名 作用 CreateFile 打開串口 GetCommState 檢測串口設(shè)置 SetCommState 設(shè)置串口 BuilderCommDCB 用字符串中的值來填充設(shè)備控制塊 GetCommTimeouts 檢測通信超時設(shè)置 SetCommTimeouts 設(shè)置通信超時參數(shù) SetCommMask 設(shè)定被監(jiān)控事件 WaitCommEvent 等待被監(jiān)控事件發(fā)生 WaitForMultipleObjects 等待多個被監(jiān)測對象的結(jié)果 WriteFile 發(fā)送數(shù)據(jù) ReadFile 接收數(shù)據(jù) GetOverlappedResult 返回最后重疊(異步)操作結(jié)果 PurgeComm 清空串口緩沖區(qū),退出所有相關(guān)操作 ClearCommError 更新串口狀態(tài)結(jié)構(gòu)體,并清除所有串口硬件錯誤 CloseHandle 關(guān)閉串行口

    標簽: API 函數(shù) 串行通訊 讀寫

    上傳時間: 2013-11-30

    上傳用戶:磊子226

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区久久婷婷| 欧美午夜精品一区| 狠狠色丁香婷婷综合久久片| 欧美色欧美亚洲另类二区| 欧美激情久久久久| 久久综合狠狠综合久久综青草 | 欧美一级播放| 午夜精品福利视频| 亚洲欧美视频| 久久久久久9| 欧美精品www在线观看| 欧美美女视频| 国产日韩1区| 伊人久久大香线蕉综合热线| 亚洲免费观看在线视频| 亚洲欧美激情视频在线观看一区二区三区| 中日韩高清电影网| 一区二区国产日产| 久久夜色精品亚洲噜噜国产mv| 欧美一区二区视频在线| 欧美国产大片| 狠狠色综合色综合网络| 亚洲第一精品影视| 日韩西西人体444www| 久久久久9999亚洲精品| 国产精品美女午夜av| 亚洲承认在线| 欧美在线关看| 欧美视频在线观看| 亚洲国产精品va在线观看黑人 | 国产精品三级视频| 在线观看91精品国产麻豆| 亚洲亚洲精品在线观看| 久久精品国产96久久久香蕉| 欧美精品九九99久久| 红杏aⅴ成人免费视频| 亚洲欧美日韩国产综合精品二区| 欧美国产日韩精品| 激情自拍一区| 老司机精品视频网站| 一区二区三区在线免费播放| 久久都是精品| 国内激情久久| 农村妇女精品| 亚洲品质自拍| 欧美日韩亚洲91| 亚洲尤物在线| 国产日韩欧美中文在线播放| 另类酷文…触手系列精品集v1小说| 黄色在线成人| 欧美日韩免费观看一区二区三区| 亚洲一区二区网站| 国产精品中文字幕欧美| 欧美综合第一页| 91久久久亚洲精品| 国产日韩欧美视频| 欧美激情麻豆| 欧美中文字幕视频| 夜夜狂射影院欧美极品| 国产精品xvideos88| 久久久激情视频| 尤物在线观看一区| 欧美日韩第一区日日骚| 性欧美超级视频| 亚洲激情视频在线播放| 欧美性猛交一区二区三区精品| 欧美综合激情网| 午夜精品视频| 亚洲国产精品一区制服丝袜| 欧美日韩一卡二卡| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩图片一区| 亚洲高清免费视频| 国产综合18久久久久久| 国产九色精品成人porny| 欧美激情a∨在线视频播放| 亚洲一二三区在线| 日韩亚洲欧美综合| 在线日韩成人| 激情综合视频| 国内精品久久久久影院色 | 国产精品一区久久久久| 欧美三级在线播放| 欧美日韩国产系列| 欧美高清免费| 欧美电影在线播放| 欧美午夜一区二区福利视频| 欧美亚洲成人精品| 国产伦精品一区二区三| 国产麻豆视频精品| 国产主播一区二区三区| 在线观看视频一区二区| 国产欧美亚洲精品| 国产在线视频不卡二| 亚洲福利视频专区| 99re6热只有精品免费观看| 亚洲精选中文字幕| 亚洲校园激情| 欧美美女视频| 欧美深夜福利| 伊人成人网在线看| 亚洲视频1区2区| 欧美一级视频| 久久精品国产精品亚洲| 欧美一二三视频| 激情成人综合网| 亚洲午夜未删减在线观看| 欧美电影免费观看大全| 欧美二区在线| 国产日产高清欧美一区二区三区| 国产精品久久国产三级国电话系列 | 欧美日韩xxxxx| 欧美高清影院| 在线观看成人av电影| 久久国产一二区| 国产视频久久久久久久| 老司机午夜免费精品视频| 亚洲国内精品| 亚洲美女免费精品视频在线观看| 亚洲精品美女久久7777777| 国产精品区一区| 免费看亚洲片| 99视频有精品| 欧美视频在线不卡| 久久综合久色欧美综合狠狠| 亚洲高清视频一区二区| 欧美激情第五页| 久久精品视频网| 亚洲一区三区在线观看| 亚洲精品护士| 欧美精品一区在线| 久久99在线观看| 一区二区三区国产精品| 国内精品伊人久久久久av影院 | 亚洲尤物在线视频观看| 国产精品福利在线观看网址| 亚洲制服欧美中文字幕中文字幕| 国产一区视频在线观看免费| 国产精品久久久久aaaa九色| 欧美日韩亚洲视频一区| 午夜精品成人在线| 亚洲精品久久久久| 黑丝一区二区三区| 欧美日韩视频第一区| 久久综合五月| 久久国产精品99国产| 亚洲综合色噜噜狠狠| 一本久久综合| 在线观看日韩| 在线观看成人小视频| 国产尤物精品| 激情亚洲网站| 在线播放不卡| 国内久久婷婷综合| 国产亚洲福利| 日韩亚洲精品视频| 亚洲欧洲在线播放| 亚洲国产欧美一区二区三区丁香婷| 欧美成人第一页| 免费在线看成人av| 欧美精品麻豆| 国产精品白丝av嫩草影院| 欧美精品三级日韩久久| 欧美精品在线网站| 国产精品乱码一区二三区小蝌蚪| 久久久九九九九| 欧美不卡视频| 国产精品高潮粉嫩av| 国产亚洲一区在线播放| 黄色成人在线网址| 亚洲另类视频| 午夜久久久久久| 免费成人av在线| 欧美日韩在线视频首页| 国产精品毛片| 亚洲美女精品一区| 欧美一区二区在线| 欧美电影免费观看网站| 国产农村妇女精品一二区| 亚洲大片在线观看| 性做久久久久久免费观看欧美| 国产精品美女久久久久久2018| 国产精品免费在线| 亚洲国产色一区| 久久精品免费电影| 国产乱码精品一区二区三| 亚洲美女电影在线| 欧美福利影院| 在线观看日韩av电影| 欧美一区二区三区日韩| 国产麻豆综合| 午夜日韩激情| 国产精品日韩在线一区| 亚洲校园激情| 欧美日韩日本国产亚洲在线| 亚洲精品资源| 欧美日韩在线视频一区二区| 在线视频你懂得一区二区三区| 欧美成人午夜激情视频| 国产午夜亚洲精品理论片色戒|