《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > Windows9x/NT及2000下中斷驅動程序的統一化處理

Windows9x/NT及2000下中斷驅動程序的統一化處理

2009-05-06
作者:楊 波 張玘 戴 路 李 劍

  摘? 要: 針對Windows9x/NT及Windows2000操作系統,利用Windriver工具包,實現了在多種操作系統下對硬件中斷驅動程序進行統一化處理,保證了程序在不同的操作系統下良好的移植性和兼容性,并給出了用C語言編寫的程序實例。

  關鍵詞: Windows9x/NT/2000? 虛擬設備驅動程序(VxD)? Windriver工具包? 中斷驅動程序的統一化處理

?

  Windows以其友好的圖形用戶界面,使得它不僅成為辦公管理首選的操作系統,也日益受到工程技術人員的關注,逐漸取代DOS而成為主流的工程應用控制平臺。但是,Windows系統為了保證平臺的安全與完整性,對系統底層操作采取了屏蔽的策略,利用VxD將用戶與硬件隔離開來。 在Windows9x(95、97、98)下,用戶如果需要實現對硬件的中斷、DMA或存儲空間物理地址等資源進行訪問,必須通過設備驅動程序來進行硬件操作;而在WindowsNT下,即使是簡單的I/O操作,也需要編寫驅動程序方能與硬件打交道。

  Windows操作系統的主流目前是Windows9x和WindowsNT,而已經推出的Windows2000是以WindowsNT為主要框架的。由于Windows9x和WindowsNT兩者在系統核心上有質的不同,所以即使對于同樣一個硬件,在兩者下的驅動程序也有很大的區別。因此,一般而言,需要針對不同的操作系統編寫不同的驅動程序。

  兼容X86指令的微機CPU運行時有4個優先級,Ring0~Ring3。操作系統與驅動程序運行在Ring0級,可以對所有硬件資源進行控制;用戶程序運行在Ring3級,對資源控制受到一些限制。而對于Ring0級的驅動程序而言,它的編寫和調試通常需要對操作平臺的運行機制有較深的了解,從而要求程序開發者掌握Windows9x、NT及Windows2000的內核管理機制,對于開發人員來講這有相當大的難度。 在這里,筆者使用了美國Jungo公司出品的WinDriver工具包,利用其繞過了對操作系統內核的學習掌握這個難點,并且在不更改程序代碼的前提下,完成了在多個操作系統下對硬件中斷的一致處理,很方便地解決了硬件與程序在不同系統下的移植問題。

1 Windows下硬件中斷的管理機制

  在多任務的環境里,硬件設備中斷管理程序是非常重要的系統級程序。它不僅要把硬件發生的中斷時間傳給相應的驅動程序,還要允許某些設備驅動程序處理它們特殊的中斷服務。在Windows平臺下,VPICD(虛擬可編程中斷控制器)就是這樣的硬件設備管理程序,它負責管理所有的硬件中斷時間。VPICD通過一個缺省機制觸發駐留在VM(虛擬機)內的中斷處理函數。它完全允許VxD根據其需要而重載中斷處理函數。PC機的硬件中斷需要確定硬件中斷的IRQS(中斷申請號),對一個特定的IRQ中斷源,VPICD或提供缺省的中斷處理函數,或允許其它VxD重載中斷處理函數。

  VPICD提供的缺省中斷處理是:首先置中斷禁止,再觸發相應VM中的中斷處理函數。因為VPICD實現了對PPIC(物理可編程中斷控制器,如8259中斷控制器)的虛擬化,所以當VM中的中斷處理函數發送EOI(中斷處理結束指令)時,VPICD即對PPIC發EOI指令。最后,VPICD控制處理函數的返回操作,恢復中斷,并置VM狀態為VM進入中斷前的狀態。當VPICD對某些中斷的缺省處理不夠充分或則不太合適時,就需要親手編寫一個VxD,在其中實現中斷的虛擬化。VxD將決定如何處理硬件中斷以及如何調用VM中的中斷處理函數。

  下面將要詳述的WinDriver對中斷處理作了很好的封裝,將對VPICD和VM的控制和處理以及某些特殊的驅動要求封裝在經過嚴格調試的WinDriver.vxd和WinDriver.sys中,并對調用驅動程序的API(應用編程接口)函數進行了系統集成,讓使用者直接面對用高級語言集成好的類庫和函數接口,從而大大降低了程序開發的難度,縮短了開發周期。

2 WinDriver工具包簡介

  WinDriver是美國Jungo公司出品的用于編寫驅動程序的一種工具包,主要針對ISA/PCI插卡,4.2版本以后還提供了USB的開發工具。最新版本4.40版所編寫的程序兼容性十分強大,包括了Windows9x、Windows NT、Windows2000、Windows CE、Linux、Solaris(Intel)、VxWorks (Intel) 、OS/2等諸多操作平臺。WinDriver主要包括一個WinDriverWizard、一個WinDriver發行包、多個公用程序以及大量的例程。

  (1)WinDriverWizard

  這是一個友好的Windows向導界面。運行WinDriverWizard,它可以讓你立即接觸到硬件而不用寫一句有關的代碼。這種便利來自于它的自動檢測功能。對于ISA插卡,用戶可以直接利用它來讀寫卡上的內存、I/O地址、寄存器以及偵聽中斷。對于PCI插卡,除了上面的基本功能外,還可以方便地讀寫PCI的配置信息。

  在此之后,通過選擇“GenerateCode”選項,WinDriverWizard會為你的插卡產生基本的程序代碼。4.2版本以后還提供了多種編程語言選擇,幾乎包括了所有流行的編程語言,如VC4?觸VC6、Borland C++Builder3?觸4、Pascal、Delphi、Linuxmake、Solariesmake等等。這就讓用戶不必去學新的編程語言,很容易地直接上手。

  (2)公用程序

  WinDriver提供了pci_scan、pci_dump、pci_diag、isapnp_scan、wdreg、wddebug等多個公用程序。pci_scan可以給出安裝的PCI卡及系統為它們分配資源的列表;pci_dump則負責得到已安裝的PCI卡的系統配置信息;pci_diag兼有兩者功能;isapnp_scan為用戶指出了即插即用的ISA插卡的有關信息;wdreg為用戶提供了修改注冊表的工具,可以用來方便地安裝用戶編寫的程序;wddebug則是一個用于調試用戶程序的有效工具。

  (3)大量例程

  WinDriver提供了許多例程,使用者可以利用它們來產生自己驅動程序的基本框架。與此同時,在WinDriver提供的在線幫助里,可以查到許多WinDriver封裝好的功能函數。這些函數能夠方便地實現中斷處理、DMA傳輸、I/O操作、內存映射以及即插即用等功能。而且對于常用的PCI橋芯片,如PLX9050、PLX9060、PLX9080、AMCC5923、AMCC5933、V3、ALTERA、GT64等等,提供了特定的檢測程序和相應的API函數,大大減輕了用戶的編程難度。

3 WinDriver的驅動程序編程模式原理

  WinDriver編程有兩種模式。一種模式是用戶模式,這種模式實際上不是讓用戶來編驅動程序,而是利用軟件自身提供的驅動程序Windrvr.vxd和Windrvr.sys,用戶所面對的只是驅動程序給出的相應功能接口;即使是這個接口,也用高級語言進行了很好的封裝,使用十分容易。另一種模式是“核心插入”模式用KernelPlugIn方式進行編程,形成.vxd和.sys文件,這是真正意義上的驅動程序。當用戶有特殊的速度要求時,后者是較好的方式。這種方式最快,據Jungo公司的評測報告中講,可以在一秒鐘內處理100,000次中斷,筆者在硬件中嘗試了一下10,000次中斷/秒,獲得了成功。

  對于對操作系統內核了解不多的開發者,用戶模式無疑是非常值得推薦的。本文重點即是放在這方面。使用用戶模式,這里要特別注意以下幾個功能函數:

  (1) WD_Open()——獲得驅動程序(指Windrvr.vxd或Windrvr.sys)的句柄,它實際上是調用了CreateFile()API函數,在程序開始時必須調用;

  (2) WD_Close()——釋放驅動程序的句柄,它實際上是調用了CloseHandle()API函數,在程序結束時必須調用;

  (3) WD_CardRegister()——負責插卡登記項目的建立和資源分配,資源包括I/O操作、內存分配、中斷處理等。它調用了DeviceIOControl()API函數;

  (4) WD_CardUnRegister()——負責插卡登記項目的刪除和資源釋放,與前者相對應,也調用了DeviceIOControl()API函數;

  (5) InterruptThreadEnable()-中斷使能,使能后可以接收中斷信號,調用Interrupt_handler()函數對中斷進行相應處理。在其中集成了CreateThread()API函數;

  (6) Interrupt_handler()-中斷處理函數,開發者在這里加入自己對硬件的控制代碼。

  (7) InterruptThreadDisable()-使中斷無效的函數,屏蔽掉中斷信號,不再對其進行處理。在其中集成了WaitForSingleObject()和CloseHandle()這兩個API函數。

4 具體示例

  下面給出一個用戶模式的具體示例。用VisualC++6編譯調試通過,在Windows9x和WindowsNT下系統運行良好,在Windows2000下也能夠穩定運行。windrvr.h和windrvr.vxd、windrvr.sys由軟件提供,這里就不詳述。對于Windows9x系統,注意將windrvr.vxd拷貝到C:WindowsSystemVmm32目錄下;對于WindowsNT系統,注意將windrvr.sys拷貝到C:WINNTSystem32DRIVERS目錄下。Listen_Interupt.C程序框架如下,該程序實現了中斷12的截獲:

  Listen_Interupt.c源程序

?

  //應包含的頭文件

  #include ″../../include/windrvr.h″

  #include ″../../include/windrvr_int_thread.h″

  #include

  //設置自己的中斷號,這個例子為中斷12

  enum {MY_IRQ=12};

  //建立全局的WinDriver句柄

  HANDLE hWD;

  //建立中斷結構

  WD_INTERRUPT Intrp;

  Static char line[256];

  //中斷處理過程,你可以用pData來傳遞從InterruptThreadEnable()得來的信息

??? VOID interrupt_handler(PVOID pData)

  {

?????? //在這里加入你要做的中斷處理代碼

?????? printf(″截獲中斷的數目為%dn″,Intrp.dwCounter);

  }

  //主函數

  int main()

  {

?????? WD_CARD_REGISTER cardReg;//建立插卡登記項目的一個實例

?????? WD_VERSION verBuf;

?????? hWD=WD_Open();//獲得驅動程序的句柄

  if(hWD==INVALID_HANDLE_VALUE)

  {

?????? printf(″打開WINDRVR出現錯誤!n″);

?????? return0;

  }

  BZERO(verBuf);?

  WD_Version(hWD,&verBuf);?

  if(verBuf.dwVer

  {

?????? printf(″WINDRVR版本不正確,這里需要的版本為:%dn″,WD_VER);

?????? return0;

  }

  //初始化cardReg,這是程序的重要部分

  BZERO(cardReg);

  cardReg.Card.dwItems=1;

  cardReg.Card.Item[0].item=ITEM_INTERRUPT;

  cardReg.Card.Item[0].fNotSharable=True;

  cardReg.Card.Item[0].I.Int.dwInterrupt=MY_IRQ;

  cardReg.Card.Item[0].I.Int.dwOptions=1;

  cardReg.fCheckLockOnly=True;

  WD_CardRegister(hWD,&cardReg);

  if(cardReg.hCard==0)

  {

????????????? printf(″無法鎖定設備!″);

  }

  else

  {

????????????? HANDLE thread_handle;

????????????? BZERO(Intrp);

????????????? Intrp.hInterrupt=cardReg.Card.Item[0].I.Int.hInterrupt;

????????????? Intrp.Cmd=NULL;

????????????? Intrp.dwCmds=0;

????????????? Intrp.dwOptions=0;

????????????? printf(″開始中斷線程n″);

????????????? //這里調用WD_IntEnable(),并且建立一個中斷處理的線程

????????????? if(!InterruptThreadEnable(&thread_handle,hWD,&Intrp,&interrupt_handler,NULL))

????????????? {

???????????????????? printf(″中斷使能失敗!n″);

????????????? }

????????????? else

????????????? {

???????????????????? //callyourdrivercodehere

??????????????????????????? printf(″敲回車鍵不再進行中斷截獲n″);

???????????????????? gets(line);

???????????????????? //這里調用禁止截獲中斷的函數:WD_IntDisable()

???????????????????? InterruptThreadDisable(&thread_handle);

???????????????????? }

???????????????????? //釋放所登記的資源

???????????????????? WD_CardUnregister(hWD,&cardReg);

???????????????????? }

???????????????????? //刪除驅動程序的句柄。

???????????????????? WD_Close(hWD);

???????????????????? return0;

  }

  按照本文給出的技術方案,掌握必要的Windows編程技術,即可以成功地實現Windows環境下對硬件中斷的直接控制,很方便地在不同系統下進行移植。實踐證明,這種方法是切實可行,行之有效的。

?

參考文獻

1 張玘,楊 波,戴 路.Windows9x、NT及Windows2000下對硬件的直接操作訪問.微計算機信息,2000(5)

2 楊強,李堂秋.Win9x虛擬設備驅動程序編程指南. 北京:清華大學出版社,1999(6)

3 ArtBaker著,科欣翻譯組譯.WindowsNT設備驅動程序設計指南.北京:機械工業出版社,1997

4 Wrires, Ruediger R.Asche.What's New in Windows 95 for VxD.Microsoft Developer Network Technology Group,1995
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲第一免费播放区| 老司机精品视频一区二区三区| 欧美一区二区精品在线| 亚洲午夜精品久久久久久浪潮| 国产精品入口麻豆原神| 一区二区三区黄色| 亚洲国产精品ⅴa在线观看| 老**午夜毛片一区二区三区| 美女福利精品视频| 欧美不卡三区| 久久性天堂网| 国产精品久久久久久亚洲调教| 欧美日韩一区三区四区| 久热国产精品视频| 欧美日韩国产综合新一区| 国内精品久久久久国产盗摄免费观看完整版| 国产精品久久7| 99国内精品久久久久久久软件| 国产三区二区一区久久| 亚洲另类春色国产| 亚洲美女区一区| 在线视频你懂得一区| 99国产精品自拍| 亚洲女优在线| 久久综合给合久久狠狠狠97色69| 亚洲午夜激情免费视频| 日韩亚洲精品在线| 国产一区二区按摩在线观看| 在线观看国产一区二区| 欧美好骚综合网| 亚洲精品久久久久久一区二区| 一区二区三区国产在线| 99re66热这里只有精品3直播| 亚洲国产精品一区二区久| 亚洲丰满在线| 91久久久久久国产精品| 欧美肉体xxxx裸体137大胆| 麻豆视频一区二区| 国产精品国产a级| 国产午夜精品全部视频在线播放| 免费在线播放第一区高清av| 亚洲一区二区高清| 国产精品色婷婷| 国产日产高清欧美一区二区三区| 欧美乱妇高清无乱码| 欧美四级在线观看| 欧美xxx在线观看| 欧美国产视频日韩| 久久国产一区二区三区| 1769国产精品| 伊人狠狠色丁香综合尤物| 国产精品激情偷乱一区二区∴| 久久蜜臀精品av| 久久高清福利视频| 欧美三级电影精品| 国产精品在线看| 亚洲人成网在线播放| 欧美福利一区二区三区| 亚洲欧美另类在线观看| 国产在线拍偷自揄拍精品| 亚洲麻豆av| 国产精品xxxav免费视频| 黑人一区二区| 亚洲二区在线视频| 99精品欧美一区二区蜜桃免费| 欧美一区2区三区4区公司二百| 亚洲欧美国产精品va在线观看| 欧美超级免费视 在线| 久久久av网站| 欧美日韩亚洲国产精品| 日韩午夜黄色| 亚洲无限av看| 欧美日韩精品欧美日韩精品一| 欧美视频专区一二在线观看| 久久亚洲精品伦理| 老司机67194精品线观看| 久久国产99| 国产一区二区0| 欧美视频你懂的| 国产婷婷色一区二区三区| 国产日韩在线播放| 欧美韩日一区| 久久精品国产在热久久| 国产一区清纯| 欧美国产激情二区三区| 亚洲一二三区在线| 一本色道久久99精品综合| 日韩一二三在线视频播| 中文国产一区| 亚洲国产欧美一区二区三区久久| 9色国产精品| 国产精品99久久久久久白浆小说| 久久国产天堂福利天堂| 国产精品一二三| 国产亚洲欧美另类中文| 国产欧美一区二区白浆黑人| 欧美国产亚洲视频| 亚洲国产成人精品女人久久久| 性亚洲最疯狂xxxx高清| 国产精品视频一区二区三区| 欧美精品久久久久久久免费观看| 久久婷婷丁香| 国产精品尤物福利片在线观看| 欧美日韩在线播放一区二区| 国产欧美日韩视频在线观看| 亚洲一区二区三区在线看| 欧美在线日韩精品| 亚洲人成在线观看一区二区| 欧美成人免费va影院高清| 亚洲福利视频三区| 欧美在线视频免费播放| 亚洲国产日韩在线一区模特| 亚洲愉拍自拍另类高清精品| 国产精品二区在线观看| 揄拍成人国产精品视频| 亚洲欧美日韩精品综合在线观看| 国产精品视频九色porn| 国产精品对白刺激久久久| 噜噜噜久久亚洲精品国产品小说| 亚洲自拍电影| 国产一区二区在线免费观看| 欧美激情一区二区久久久| 亚洲精品视频在线观看免费| 蜜臀久久99精品久久久画质超高清| 国产精品一二三四| 欧美视频一区二区三区四区| 欧美日韩国语| 亚洲欧美另类在线| 91久久久精品| 韩日精品视频一区| 亚洲欧洲视频在线| 亚洲桃花岛网站| 国产在线精品成人一区二区三区| 久久av一区二区三区漫画| 在线亚洲一区观看| 亚洲精品国产拍免费91在线| 黑人操亚洲美女惩罚| 亚洲天堂av高清| 欧美在线播放| 卡一卡二国产精品| 欧美一区二区三区在线免费观看| 欧美激情一区二区三区不卡| 99re成人精品视频| 日韩视频永久免费| 亚洲激情另类| 亚洲欧洲一二三| 亚洲欧洲在线视频| 亚洲精品乱码久久久久久黑人| 久久综合网色—综合色88| 亚洲欧美成aⅴ人在线观看| 在线不卡a资源高清| 欧美+亚洲+精品+三区| 在线观看亚洲精品视频| 亚洲欧美成aⅴ人在线观看| 亚洲精一区二区三区| 久久一区视频| 欧美三级中文字幕在线观看| 亚洲人线精品午夜| 国产一区二区三区观看| 久热成人在线视频| 午夜精品福利电影| 一本色道久久综合一区| 欧美一级午夜免费电影| 国产一区二区0| 亚洲免费电影在线| 久久精品成人欧美大片古装| 国产亚洲va综合人人澡精品| 亚洲免费av片| 亚洲人成人一区二区三区| 国外成人网址| 99国产精品一区| 久久综合伊人77777| 欧美一区二区视频在线观看| 一区二区三区欧美视频| 黄色免费成人| 亚洲影视九九影院在线观看| 亚洲激情视频网站| 久久免费国产精品| 欧美日本不卡视频| 国产私拍一区| 久久狠狠久久综合桃花| 激情综合中文娱乐网| 久久久久国产精品一区| 亚洲欧美日韩综合aⅴ视频| 午夜精品久久久久久久白皮肤| 欧美看片网站| 激情av一区二区| 久久精品国产999大香线蕉| 久久精品综合| 国产麻豆9l精品三级站| 亚洲乱码视频| 中日韩视频在线观看| 欧美在线一级va免费观看| 欧美成人首页| 激情五月综合色婷婷一区二区| 亚洲欧洲精品一区二区三区| 欧美精品国产一区二区| 国产精品久久久久国产精品日日| 久久夜色精品亚洲噜噜国产mv| 欧美精品在欧美一区二区少妇| 羞羞视频在线观看欧美| 亚洲欧美日韩精品一区二区| 亚洲一区二区三区高清不卡| 99精品视频免费观看视频| 99在线视频精品| 国产午夜精品久久久久久久| 欧美mv日韩mv国产网站| 国产精品男人爽免费视频1| 久久丁香综合五月国产三级网站| 快she精品国产999| 国产精品手机视频| 国产女人精品视频| 久久在线视频在线| 亚洲你懂的在线视频| 国产区欧美区日韩区| 亚洲蜜桃精久久久久久久| 一区在线免费观看| 亚洲国产欧美久久| 亚洲国产精品精华液网站| 亚洲国产另类久久久精品极度| 激情综合久久| 亚洲欧美在线播放| 一本综合精品| 国产噜噜噜噜噜久久久久久久久| 亚洲视频每日更新| 揄拍成人国产精品视频| 狠狠久久亚洲欧美专区| 亚洲综合视频在线| 在线电影一区| 亚洲午夜一区二区三区| 欧美精品首页| 蜜桃av一区| 国产亚洲综合精品| 欧美性猛交xxxx乱大交蜜桃| 久久亚洲不卡| 极品尤物一区二区三区| 欧美成人国产一区二区| 欧美日韩在线观看一区二区三区| 午夜精品久久久久久久99黑人| 麻豆成人91精品二区三区| 美女精品视频一区| 免费亚洲一区二区| 欧美中文字幕久久| 久久亚洲影音av资源网| 国语自产精品视频在线看8查询8| 免费亚洲网站| 欧美在线视频一区二区| 欧美大成色www永久网站婷| 亚洲国产欧美一区二区三区久久| 欧美成人性网| 午夜久久久久久久久久一区二区| 国产综合久久久久久鬼色| 亚洲欧美在线aaa| 狠狠色丁香婷婷综合久久片| 国产精品xnxxcom| 在线一区二区三区四区| 久久久久久成人| 一区二区欧美日韩| 欧美另类videos死尸| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲国产高清一区| 欧美日韩中文在线观看| 欧美激情综合色| 国户精品久久久久久久久久久不卡| 亚洲天堂av高清| 性欧美8khd高清极品| 精品96久久久久久中文字幕无| 久久久久久网站| 亚洲欧美一区二区三区极速播放| 国产欧美一区二区精品仙草咪| 欧美日韩123| 国内外成人免费视频| 国产欧美日韩一区二区三区| 久久久久久久久岛国免费| 免费一级欧美片在线播放| 亚洲国产cao| 国产自产在线视频一区| 久久久五月天| 欧美成人精精品一区二区频| 久久精品在线观看| 狠狠久久五月精品中文字幕| 亚洲精品自在久久| 欧美午夜精品久久久| 国产精品视频一二三| 美女视频一区免费观看| 玖玖玖国产精品| 久久久久一本一区二区青青蜜月| 亚洲一线二线三线久久久| 亚洲免费大片| 欧美成年人视频网站| 好吊视频一区二区三区四区| 欧美性大战久久久久久久蜜臀| 国产精品爽爽爽| 伊人精品成人久久综合软件| 美国成人毛片| 欧美日韩不卡合集视频| 亚洲精品在线免费观看视频| 国产精品尤物| 久久视频一区| 国产精品视频yy9299一区| 激情视频亚洲| 欧美日韩一区二区欧美激情| 亚洲一区二区三| 99在线视频精品| 国产日韩精品在线观看| 欧美日韩成人免费| 久久嫩草精品久久久精品| 一色屋精品视频在线观看网站| 欧美激情一区二区三区| 国产精品资源在线观看| 欧美激情一区二区三区在线视频| 亚洲一区二区影院| 亚洲国产精品va在看黑人| 亚洲最新色图| 亚洲一级片在线看| 狼人天天伊人久久| 国产女优一区| 亚洲国产小视频在线观看| 亚洲精品国产日韩| 欧美激情偷拍| 欧美日韩免费高清一区色橹橹| 亚洲欧美日韩爽爽影院| 久久久夜色精品亚洲| 国产精品视频男人的天堂| 玖玖综合伊人| 久久综合久久综合这里只有精品| 国产精品资源在线观看| 国产精品高精视频免费|