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

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

?? csdn_文檔中心_虛擬設備驅動程序的設計與實現.htm

?? csdn10年中間經典帖子
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
          <TD align=middle height=10 width=50></TD>
          <TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A 
            href="http://www.csdn.net/develop/">文檔中心</A> - <FONT 
            color=#003399>Visual C++</FONT>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399 height=10><FONT 
            color=#ffffff>標題</FONT></TD>
          <TD><B>&nbsp;&nbsp;&nbsp;&nbsp;虛擬設備驅動程序的設計與實現</B>&nbsp;&nbsp;&nbsp;&nbsp;ghj1976(轉貼) 
          </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399><FONT color=#ffffff>關鍵字</FONT></TD>
          <TD width=500>&nbsp;&nbsp;&nbsp;&nbsp;虛擬設備驅動程序的設計與實現</TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399 height=10><FONT 
            color=#ffffff>出處</FONT></TD>
          <TD height=10>&nbsp;&nbsp;&nbsp;&nbsp;<A 
            href="http://www.computerinfo.com.cn/">http://www.computerinfo.com.cn/</A></TD></TR>
        <TR>
          <TD align=middle height=10></TD>
          <TD height=10></TD></TR></TBODY></TABLE><!--文章說明信息結束//-->
      <TABLE border=0 width=600>
        <TBODY>
        <TR>
          <TD 
            align=left><BR>虛擬設備驅動程序的設計與實現<BR><BR>  由于Windows對系統底層操作采取了屏蔽的策略,因而對用戶而言,系統變得更為安全,但這卻給眾多的硬件或者系統軟件開發人員帶來了不小的困難,因為只要應用中涉及到底層的操作,開發人員就不得不深入到Windows的內核去編寫屬于系統級的虛擬設備驅動程序。Win 
            98與Win 95設備驅動程序的機理不盡相同,Win 98不僅支持與Windows NT 5.0兼容的WDM(Win32 Driver 
            Mode)模式驅動程序,而且還支持與Win 95兼容的虛擬設備驅動程序VxD(Virtual Device 
            Driver)。下面介紹了基于Windows 
            9x平臺的虛擬環境、虛擬設備驅動程序VxD的基本原理和設計方法,并結合開發工具VToolsD給出了一個為可視電話音頻卡配套的虛擬設備驅動程序VxD的設計實例。 
            <BR>  1.Windows 9x的虛擬環境 <BR>  Windows 9x作為一個完整的32位多任務操作系統,它不像Window 
            3.x那樣依賴于MS-DOS,但為了保證軟件的兼容性,Windows 
            9x除了支持Win16應用程序和Win32應用程序之外,還得支持MS-DOS應用程序的運行。Windows 
            9x是通過虛擬機VM(Virtual Machine)環境來確保其兼容和多任務特性的。 
            <BR>  所謂Windows虛擬機(通常簡稱為Windows VM)就是指執行應用程序的虛擬環境,它包括MS-DOS 
            VM和System VM兩種虛擬機環境。在每一個MS-DOS VM中都只運行一個MS-DOS進程,而System 
            VM能為所有的Windows應用程序和動態鏈接庫DLL(Dynamic Link 
            Libraries)提供運行環境。每個虛擬機都有獨立的地址空間、寄存器狀態、堆棧、局部描述符表、中斷表狀態和執行優先權。雖然Win16、Win32應用程序都運行在System 
            VM環境下,但Win16應用程序共享同一地址空間,而Win32應用程序卻有自己獨立的地址空間。 
            <BR>  在編寫應用程序時,編程人員經常忽略虛擬環境和實環境之間的差異,一般認為虛擬環境也就是實環境。但是,在編寫虛擬設備驅動程序VxD時卻不能這樣做,因為VxD的工作是向應用程序代碼提供一個與硬件接口的環境,為每一個客戶虛擬機管理虛設備的狀態,透明地仲裁多個應用程序,同時對底層硬件進行訪問。這就是所謂虛擬化的概念。 
            <BR>  VxD在虛擬機管理器VMM(Virtual Machine 
            Manager)的監控下運行,而VMM實際上是一個特殊的VxD。VMM執行與系統資源有關的工作,提供虛擬機環境(能產生、調度、卸載VM)、負責調度多線程占先時間片及管理虛擬內存等工作。VxD與VMM運行在其他任何虛擬機之外,VxD事實上就是實現虛擬機的軟件的一部分。 
            <BR>  與大多數操作系統一樣,Windows也是采用層次式體系結構。VMM和VxDs構成了Win 
            95的ring0級的系統核心(應用程序運行在ring3級,ring1、ring2級未被使用),具有系統的最高優先權。Windows還提供一些以"drv"為后綴名的驅動程序,主要是指串行口的通信程序和并行口的打印機程序。這些程序與VxD不同,它們是運行在ring3級上的。圖1可以使你更好地理解Windows的虛擬環境。 
            <BR>  圖 <BR>  2.深入理解VMM和VxD <BR>  如前所述,VxD是Virtual Device 
            Driver的縮寫,但有人將它理解為虛擬任何驅動程序。實際上,VxD并非僅指那些虛擬化的某一具體硬件的設備驅動程序。比如某些VxD能夠虛擬化設備,而某些VxD作為設備驅動程序卻并不虛擬化設備,還有些VxD與設備并沒有什么關系,它僅向其他的VxD或是應用程序提供服務。 
            <BR>  VxD可以隨VMM一起靜態加載,也可以根據需要動態加載或卸載。正是由于VxD與VMM之間的緊密協作,才使得VxD具有了應用程序所不具備的能力,諸如可以不受限制地訪問硬件設備、任意查看操作系統數據結構(如描述符表、頁表等)、訪問任何內存區域、捕獲軟件中斷、捕獲I/O端口操作和內存訪問等,甚至還可以截取硬件中斷。 
            <BR>  盡管VxD使用32位平面存儲模式(flat memory 
            model),但它的代碼和數據仍使用分段管理,段有六種類型,即實模式初始化、保護模式初始化、可分頁、不可分頁、靜態和只調試(debug 
            only),每種類型又有代碼段和數據段之分,所以VxD共有12個段。實模式代碼段和數據段為16位(分段模式),其他段則是32位(平面模式)。“實模式初始化”段包含了在Windows初始化過程的最初階段VMM變為保護模式之前要執行的代碼。靜態加載的VxD此時可以查看Windows啟動前的實模式環境,決定是否繼續加載,并通知VMM。加載完畢后,VMM進入保護模式并執行保護模式初始化代碼,同樣將執行結果再通知VMM。初始化完成后,“實模式初始化”段和“保護模式初始化”段即被遺棄。VxD的大部分代碼都在其他的某一段中,“可分頁”段允許虛擬存儲管理器(Virtual 
            Memory 
            Manager)進行分頁管理,大多數的VxD代碼都應當在“可分頁”段。“不可分頁”段的內容主要包括:VxD的主入口點、硬件中斷處理函數、所訪問的數據以及能被另一個VxD中斷處理函數調用的異步服務。“靜態”段僅用于可以動態加載的VxD,當VxD卸載后,靜態代碼段和數據段都保留在內存中。“只調試”段只是VMM在Soft-ICE 
            for Win 95等調試環境下才將其載入。 <BR>  VMM是通過VxD的設備描述符塊DDB(Device Descriptor 
            Block)來識別的。DDB向VMM提供了VxD的主入口點,還向應用程序和其他的VxD提供了入口點。VMM利用這個主入口點將VM及Windows自身的狀態通知給VxD,然后VxD通過相應的工作來響應這些事件。由于VxD不僅僅服務于一個物理設備(比如多個串口)或僅與一個VM發生聯系,所以VxD需要產生自己支持的數據結構(Supporting 
            Data 
            Structures)來保存每一個設備、每一個VM的配置和狀態信息。VxD用一個或多個設備上下文結構來保存設備信息,如I/O端口基地址、中斷向量等,VxD將自己的每個VM的狀態信息保存在VMM的VM控制塊中。 
            <BR>  VMM提供的服務包括:事件服務、內存管理服務、兼容執行和保護模式執行的服務、登錄表服務、調度程序服務、同步服務、調試服務、I/O捕獲服務、處理錯誤和中斷服務、VM中斷和回調服務、配置管理程序服務以及其他雜項服務。 
            <BR>  以上內容僅涉及到VxD設計的一小部分,作為VxD的開發人員必須掌握更多的知識。首先是操作系統的知識,如地址空間、執行上下文、資源加鎖、進程間通信和異步事件處理等方面的知識;其次,對Intel處理器應有較深入的理解,包括寄存器、機器指令集、保護機制、分頁機制,以及虛擬8086模式;最后,還必須熟悉VMM提供的各類服務和接口,熟悉Windows其他的系統VxD。 
            <BR>  3.開發工具VToolsD簡介 
            <BR>  VToolsD是專門用于開發VxD程序的一種工具軟件,它包括VxD框架代碼生成器QuickVxD、C運行庫、VMM/VxD服務庫、VxD的C++類庫、VxDLoad和VxDView等實用工具以及大量的C、C++例程。由VC++、BC++的32位編譯器編譯生成的VxD程序可以脫離VToolsD環境運行。 
            <BR>  利用QuickVxD可以方便、快捷地生成VxD的框架,即生成后綴名為h、cpp和mak的三個文件。源文件包含了運行VxD的基本組件,其中包含控制消息處理、API入口點、以及VxD服務等函數框架,并且還定義了標志,設置了編譯參數,聲明了類,然后在C++環境下,向生成的各個處理函數體內添加自己的代碼,最后使用編譯器NMAKE生成標準的VxD程序。 
            <BR>  由于VxD運行在ring0級,所以調試程序相當困難。我使用的調試工具是Soft-ICE for Win 95。 
            <BR>  目前VToolsD的最新版本為3.0,它支持設備訪問體系結構DAA(Device Access 
            Architecture),所編寫的程序代碼將可以在所有Windows平臺(包括Win 95、Win 98以及Windows 
            NT)上共享。當然也可以使用Microsoft公司的DDK(Device Developer 
            Kit)來開發VxD,但DDK不能像VToolsD那樣通過屏蔽系統及VxD的底層技術細節提供豐富的C運行庫和C++類庫,而是讓開發人員充分享用面向對象編程方法的方便與快捷,因此僅就該點而言,使用DDK是不方便的。 
            <BR>  4.VxD程序設計實例 <BR>  我在開發可視電話音頻卡的設計過程中,用VToolsD 2.03、VC++ 
            5.0為自制的PC/XT總線擴展卡開發了虛擬設備驅動程序Audcard.vxd。該卡每20ms申請一次中斷,中斷由應用程序動態載入系統的Audcard.vxd響應并加以處理。中斷服務程序ISR(Interrupt 
            Service Routine)結束后,調用函數Shell_PostMessage( 
            )向應用程序窗口發送自定義消息。應用程序接受消息后,再通過函數DeviceIoControl( 
            )與VxD的接口函數OnW32DeviceIoControl( )互傳緩沖區數據。程序結束即可動態卸載VxD。下圖表示在Win 
            95下VxD對硬件中斷的處理過程。 <BR>  圖Win95下硬件中斷的處理過程 
            <BR>  當中斷發生時,處理器轉換為ring0級保護模式。Windows系統并不像DOS那樣通過中斷描述符表IDT(Interrupt 
            Descriptor 
            Table)直接指向中斷處理過程,而是由IDT入口指向VMM中的程序。該程序將判斷是否為中斷調用,如果是,則把中斷控制權交給虛擬可編程中斷控制器VPICD(Virtual 
            Programmable Interrupt Controller 
            Device),VPICD實際上是一個重要的VxD。VPICD再將其交給另一個注冊了該中斷的VxD(如Audcard.vxd)來處理。VxD程序是通過調用VPICD服務VPICD_Virtualize_IRQ來注冊中斷的。 
            <BR>  虛擬設備驅動程序Audcard.vxd的部分源代碼Audcard.h和Audcard.cpp在網上,網址為:www.pccomputing.com.cn。此應用程序使用了下列函數:CreateFile()動態加載VxD、CloseHandle()并動態卸載VxD、PreTranslateMessage()截獲消息、DeviceIoControl()與VxD互傳緩沖區數據。虛擬設備驅動程序Audcard.vxd經調試后工作正常,未發生過任何丟失數據或死機的現象。 
            <BR>  下面是虛擬設備驅動程序Audcard.vxd的部分源代碼Audcard.h和Audcard.cpp,限于篇幅,由QuickVxD自動生成的Audcard.mak未列出。 
            <BR>  ①Audcard.h <BR>  //AUDCARD.h - include file for VxD AUDCARD 
            <BR>  #include <BR>  #define DEVICE_CLASS AudcardDevice 
            <BR>  #define AUDCARD_DeviceID UNDEFINED_DEVICE_ID <BR>  #define 
            AUDCARD_Init_Order UNDEFINED_INIT_ORDER#define AUDCARD_Major 
            <BR>  #define AUDCARD_Minor 0 <BR>  #define MY_IRQ 5 //定義5號中斷 
            <BR>  class MyHwInt:public VHardwareInt <BR>  { <BR>  public: <BR>   
            MyHwInt():VHardwareInt(MY_IRQ,0,0,0){} <BR>   virtual VOID 
            OnHardwareInt(VMHANDLE); <BR>  }; <BR>  class AudcardDevice : public 
            VDevice <BR>  { <BR>  public: <BR>   virtual BOOL 
            OnSysDynamicDeviceInit(); <BR>   virtual BOOL 
            OnSysDynamicDeviceExit(); <BR>   virtual DWORD 
            OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams); <BR>   MyHwInt* 
            pMyIRQ; <BR>  }; <BR>  class AudcardVM : public VVirtualMachine 
            <BR>  { <BR>  public: <BR>   AudcardVM(VMHANDLE hVM); <BR>  }; 
            <BR>  class AudcardThread : public VThread <BR>  { <BR>   public: 
            <BR>   AudcardThread(THREADHANDLE hThread); <BR>  }; <BR>   
            <BR>  ②Audcard.cpp <BR>  //AUDCARD.cpp - main module for VxD AUDCARD 
            <BR>  #define DEVICE_MAIN <BR>  #include "audcard.h" 
            <BR>  Declare_Virtual_Device(AUDCARD) <BR>  #define WM_USER_POSTVXD 
            0x1000 <BR>  //自定義消息 <BR>  #undef DEVICE_MAIN 
            <BR>  AudcardVM::AudcardVM(VMHANDLE hVM) : VVirtualMachine(hVM) {} 
            <BR>  AudcardThread::AudcardThread(THREADHANDLE hThread) : 
            VThread(hThread) {} <BR>  BOOL 
            AudcardDevice::OnSysDynamicDeviceInit() //動態加載時初始化 <BR>  { <BR>   
            ......//硬件初始化 <BR>   pMyIRQ=new MyHwInt(); 
            <BR>  if(pMyIRQ&amp;&amp;pMyIRQ-&gt;hook()) //掛接中斷 <BR>  { <BR>   
            pMyIRQ-&gt;physicalUnmask(); //允許中斷 <BR>   return TRUE; <BR>   } 
            <BR>   else return FALSE; <BR>  } <BR>  BOOL 
            AudcardDevice::OnSysDynamicDeviceExit() <BR>  //動態卸載過程 <BR>  { 
            <BR>   delete pMyIRQ; <BR>   return TRUE; <BR>  } <BR>  DWORD 
            AudcardDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams) 
            <BR>  //與Win32應用程序的接口函數 <BR>  { <BR>  ...... <BR>  } <BR>  VOID 
            MyHwInt::OnHardwareInt(VMHANDLE hVM) <BR>  { <BR>   ...... // 中斷處理 
            <BR>   SHELL_PostMessage(AppWnd,WM_USER_POSTVXD ,0,0,0,NULL); <BR>   
            //向應用程序窗口發送消息 <BR>   sendPhysicalEOI(); //通知VPICD中斷結束 <BR>  } <BR>  
            <BR><BR><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>對該文的評論</FONT></TD>
    <TD align=middle>
      <SCRIPT src="CSDN_文檔中心_虛擬設備驅動程序的設計與實現.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要評論</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你沒有登陸,無法發表評論。 請先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=414">登陸</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注冊</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">網站簡介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">廣告服務</A> - <A 
      href="http://www.csdn.net/map/map.shtm">網站地圖</A> - <A 
      href="http://www.csdn.net/help/help.asp">幫助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">聯系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 src="CSDN_文檔中心_虛擬設備驅動程序的設計與實現.files/biaoshi.gif" 
      width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百聯美達美公司 版權所有 京ICP證020026號</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--內容結束//--><!--結束//--></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一线二线三线无人区| 色诱亚洲精品久久久久久| 亚洲一区二区三区不卡国产欧美 | 亚洲女爱视频在线| 欧美高清在线精品一区| 久久精品网站免费观看| 久久久久久久久久久久久夜| 久久这里只有精品首页| 国产午夜精品久久| 国产精品色在线观看| 中文字幕精品一区| 亚洲欧美日韩在线不卡| 亚洲一区二区不卡免费| 丝袜亚洲另类欧美综合| 久久丁香综合五月国产三级网站| 毛片av一区二区| 国产精品一卡二卡| caoporn国产一区二区| 91国偷自产一区二区开放时间| 日本电影欧美片| 91精品在线一区二区| 久久人人超碰精品| 国产精品久久久99| 亚洲国产人成综合网站| 久久国产精品露脸对白| 成人亚洲一区二区一| 欧美性一区二区| 精品国产制服丝袜高跟| 中文字幕在线观看一区二区| 亚洲综合色丁香婷婷六月图片| 日韩精品成人一区二区在线| 粉嫩av亚洲一区二区图片| 欧美专区亚洲专区| 久久这里只有精品6| 亚洲精品日韩综合观看成人91| 日韩激情一区二区| 成人免费av资源| 欧美精品成人一区二区三区四区| 精品国产露脸精彩对白| 亚洲欧美经典视频| 国内成+人亚洲+欧美+综合在线| 91社区在线播放| 精品成人一区二区| 亚洲成人av电影在线| 国产福利一区二区三区视频 | 经典三级一区二区| 色哟哟一区二区| 国产日韩精品一区| 日韩av电影天堂| 色婷婷亚洲综合| 国产女人aaa级久久久级| 同产精品九九九| 色综合天天综合色综合av| 久久毛片高清国产| 免费在线观看精品| 欧美三级日韩三级| 日韩美女视频19| 福利一区二区在线| 精品久久久久久最新网址| 亚洲国产综合91精品麻豆| 成a人片国产精品| 国产日产欧美精品一区二区三区| 日韩av一区二| 欧美一级黄色大片| 日本成人在线网站| 欧美剧在线免费观看网站| 有码一区二区三区| 一本到不卡免费一区二区| 国产精品免费免费| 成人v精品蜜桃久久一区| 国产亚洲1区2区3区| 韩国欧美一区二区| 久久中文字幕电影| 国产精品资源在线| 国产欧美精品一区| 成人不卡免费av| 亚洲精品国产精华液| 91丨九色丨黑人外教| 亚洲天堂精品视频| 一本色道久久综合亚洲aⅴ蜜桃| 中文字幕亚洲一区二区av在线| 成人av在线资源| 亚洲女子a中天字幕| 欧美性videosxxxxx| 午夜电影网一区| 日韩视频免费观看高清完整版| 日韩在线卡一卡二| 精品国产一区二区三区久久影院| 狠狠色伊人亚洲综合成人| 久久免费精品国产久精品久久久久| 国产伦精品一区二区三区免费 | 91亚洲精品久久久蜜桃| 亚洲欧美国产三级| 欧美久久久久免费| 韩国成人精品a∨在线观看| 国产欧美日韩在线看| 91免费在线视频观看| 午夜精品久久久久久久久久| 日韩欧美国产小视频| 国产成人一级电影| 一区二区三区在线免费播放| 欧美一区二区三区免费视频 | 亚洲欧美国产高清| 欧美一级高清片在线观看| 大尺度一区二区| 亚洲国产精品久久人人爱| 精品国产一区二区三区av性色| 成人h动漫精品| 五月天欧美精品| 国产视频不卡一区| 在线中文字幕一区二区| 久久99国产精品尤物| 亚洲女子a中天字幕| 精品乱人伦小说| 91高清视频在线| 风间由美一区二区av101| 亚洲国产美国国产综合一区二区| 亚洲精品在线三区| 欧美日韩久久久| 成人深夜在线观看| 美国欧美日韩国产在线播放| 亚洲色图制服诱惑 | 亚洲国产精品久久久久婷婷884| 精品不卡在线视频| 欧美高清视频一二三区 | 欧美三级三级三级爽爽爽| 国产99久久久国产精品潘金网站| 亚洲成人免费av| 成人欧美一区二区三区小说| 精品国产百合女同互慰| 制服.丝袜.亚洲.中文.综合| 91亚洲国产成人精品一区二三| 精品一区二区久久久| 午夜成人免费电影| 亚洲国产精品一区二区久久恐怖片 | 成人毛片老司机大片| 激情综合网激情| 日本 国产 欧美色综合| 亚洲国产va精品久久久不卡综合| 中文字幕在线不卡视频| 国产精品久久久久久久久快鸭| 精品久久久久久综合日本欧美 | 久久精品亚洲精品国产欧美| 日韩一级二级三级| 91精品国产色综合久久| 欧美日韩激情一区| 欧美日韩国产高清一区二区三区 | 欧美一区二区视频免费观看| 欧美群妇大交群的观看方式| 欧美性受xxxx黑人xyx性爽| 日本精品一区二区三区高清 | youjizz国产精品| 国产成人免费视频精品含羞草妖精| 蜜桃久久久久久| 久久精品国产亚洲一区二区三区| 日本中文字幕一区二区视频| 日韩av高清在线观看| 久久99久久精品欧美| 美日韩一级片在线观看| 久久精品99国产精品| 精品一区二区三区香蕉蜜桃| 久久国产精品色| 丁香另类激情小说| 91豆麻精品91久久久久久| 欧美在线综合视频| 欧美一区二区在线免费播放| 精品国产91九色蝌蚪| 国产拍揄自揄精品视频麻豆| 成人免费在线视频| 亚洲永久免费av| 美日韩黄色大片| 国产91丝袜在线播放九色| 成人高清在线视频| 欧美在线视频日韩| 精品国产区一区| 成人欧美一区二区三区在线播放| 亚洲人精品一区| 日本中文在线一区| 成人免费视频一区二区| 在线观看一区二区精品视频| 91精品国产欧美一区二区| 国产婷婷色一区二区三区在线| 中文字幕不卡在线播放| 亚洲一二三区不卡| 国产综合色在线| 91久久精品午夜一区二区| 精品久久久三级丝袜| 日韩毛片视频在线看| 日韩一区精品字幕| 成av人片一区二区| 91精品国产91久久久久久最新毛片| 欧美精品一区二区久久婷婷| 亚洲男同性视频| 国产精品自拍三区| 在线影视一区二区三区| 欧美精品一区二区三区高清aⅴ| 亚洲综合在线五月| 国产成人亚洲精品狼色在线| 欧美美女bb生活片| 中文字幕亚洲在|