• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Java調(diào)用DLL實(shí)現(xiàn)讀寫磁盤扇區(qū)

    2013-07-03 00:45:06張美玲
    關(guān)鍵詞:磁盤扇區(qū)指針

    張美玲,張 剛

    (太原理工大學(xué) 信息工程學(xué)院,山西 太原 030024)

    0 引 言

    Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,它雖然具有語(yǔ)法簡(jiǎn)單,面向?qū)ο螅€(wěn)定,可移植性高等優(yōu)點(diǎn),但Java[1]以其跨平臺(tái)的目的,使得它不能像其它語(yǔ)言(如C和匯編)那樣更接近操作系統(tǒng),和本地機(jī)器的各種內(nèi)部聯(lián)系變得很少,也就不能和操作系統(tǒng)的底層打交道了。為了解決Java與底層的交互,本文引入JNI技術(shù),通過(guò)Java對(duì)本地方法的調(diào)用,實(shí)現(xiàn)應(yīng)用層對(duì)磁盤的直接操作。JNI的提出主要有以下幾個(gè)原因[2-3]:第一,當(dāng)標(biāo)準(zhǔn)的java的類庫(kù)不支持程序所需特性時(shí),可以用其它語(yǔ)言實(shí)現(xiàn)的接口。第二,需要用底層語(yǔ)言實(shí)現(xiàn)一個(gè)小型的時(shí)間敏感代碼時(shí),考慮到j(luò)ava運(yùn)行速度要比C/C++慢,需要引入JNI。第三,已經(jīng)有了一個(gè)用其他語(yǔ)言寫成的庫(kù)或程序時(shí),可以用java直接來(lái)調(diào)用,減少工作量。本文是基于java的類庫(kù)不支持程序所需特性的原因,用C++編寫讀寫扇區(qū)本地代碼并生成DLL[4](WINDOWS平臺(tái)下是.DLL 文件,Linux平臺(tái)下是.SO 文件)文件。雖然在DOS環(huán)境下,通過(guò)中斷或IO[5]可以直接對(duì)硬盤進(jìn)行操縱,因?yàn)锽IOS和DOS系統(tǒng)為磁盤操作提供了INT13H 中斷,通過(guò)INT13H的讀寫功能可以實(shí)現(xiàn)磁盤的直接讀寫。但在Windows環(huán)境下,Win32系統(tǒng)禁止應(yīng)用程序?qū)τ脖P直接操縱,禁止使用BIOS 中斷。所以,Windows操作系統(tǒng)下,在應(yīng)用層直接讀取硬盤扇區(qū)變的困難。但并不意味著在windows環(huán)境下無(wú)法訪問(wèn)硬盤。它在采取了“實(shí)保護(hù)”的同時(shí),也提供了一些API函數(shù),本文通過(guò)ReadFile()和WriteFile()函數(shù),以扇區(qū)存取的方式在本地代碼中實(shí)現(xiàn)讀寫扇區(qū),最后通過(guò)JNI方法實(shí)現(xiàn)了java對(duì)磁盤扇區(qū)的讀寫操作。

    1 JNI技術(shù)原理及實(shí)現(xiàn)流程

    1.1 JNI技術(shù)原理

    目前java與dll交互的技術(shù)主要有3種:jni,jawin和jacob。JNI是sun公司提供的java與系統(tǒng)中的原生方法交互的技術(shù)(在windows\linux 系統(tǒng)中,本文是基于windows平臺(tái)),它是JDK的一部分,提供了java與本地非java語(yǔ)言代碼的接口,通過(guò)使用JNI編寫的程序才能夠確保代碼移植到所有的平臺(tái)。該平臺(tái)相關(guān)代碼是通過(guò)JNI函數(shù)來(lái)訪問(wèn)Java虛擬機(jī)功能的,而JNI函數(shù)需要通過(guò)第一個(gè)接口指針JINEnv*[6]獲取。接口指針是指針的指針,它先指向一個(gè)JNI函數(shù)指針數(shù)組,而指針數(shù)組中每個(gè)元素又指向JNI接口函數(shù)。需要注意的是,本地方法將JNI接口指針當(dāng)做參數(shù)來(lái)傳遞,所以在一個(gè)線程中對(duì)本地方法的多次調(diào)用,需要保證接口指針是相同的。但是,如果一個(gè)方法被不同的線程調(diào)用,需要不同的JNI接口指針。以下是JNI原理圖,如圖1所示。

    圖1 JNI原理

    1.2 實(shí)現(xiàn)步驟

    JNI實(shí)現(xiàn)的最終目標(biāo)是要通過(guò)編寫頭文件及本地程序,結(jié)合C/C++文件生成動(dòng)態(tài)庫(kù)文件,最后加載到j(luò)ava程序運(yùn)行成功。具體實(shí)現(xiàn)步驟[7]如圖2所示。

    圖2 JNI實(shí)現(xiàn)步驟

    下面結(jié)合實(shí)例具體分析JNI調(diào)用過(guò)程。

    2 應(yīng)用實(shí)例

    該實(shí)例結(jié)合結(jié)合java對(duì)dll文件調(diào)用方法,在VC++中編寫本地代碼,并編譯生成.dll文件,通過(guò)并java 對(duì).dll文件調(diào)用,實(shí)現(xiàn)了java對(duì)磁盤扇區(qū)的直接讀寫。以下是VC++中實(shí)現(xiàn)讀寫扇區(qū)基本原理以及java實(shí)現(xiàn)讀寫扇區(qū)的基本步驟。

    2.1 VC++讀寫扇區(qū)實(shí)現(xiàn)原理[8]

    首先,使用CreateFile函數(shù)打開(kāi)磁盤驅(qū)動(dòng),指定所要操作磁盤并設(shè)置讀或?qū)懖僮鳎摵瘮?shù)參數(shù)設(shè)置如下:

    打開(kāi)的文件名參數(shù)設(shè)置:對(duì)于讀寫扇區(qū),如果訪問(wèn)的是具體某個(gè)邏輯分區(qū),則文件名格式為“\\.\X”,如果訪問(wèn)的是第一個(gè)邏輯硬盤,則文件名格式為“\\.\PHYSICALDRIVE0”;文件的操作屬性設(shè)置:允許讀設(shè)備操作設(shè)置為GENERIC_READ,允許寫設(shè)備操作設(shè)置為GENERIC_WRITE;文件共享屬性設(shè)置:FILE_SHARE_READ和FILE_SHARE_WRITE分別表示允許對(duì)設(shè)備進(jìn)行讀共享訪問(wèn)和寫共享訪問(wèn);文件操作設(shè)置為OPEN_EXISTING,對(duì)于該設(shè)置文件必須已經(jīng)存在,由設(shè)備提出要求,若該文件不存在,則函數(shù)調(diào)用失敗。

    其次,因?yàn)樗x的是磁盤中某個(gè)扇區(qū),而打開(kāi)的是整個(gè)磁盤,所以要通過(guò)SetFilePointer函數(shù)設(shè)置文件指針到磁盤中所要操作的某個(gè)扇區(qū)位置,CreateFile函數(shù)參數(shù)設(shè)置如下:

    其中文件句柄是CreateFile函數(shù)所返回的句柄,如果該句柄值表示磁盤打開(kāi)成功,則通過(guò)設(shè)置字節(jié)偏移量將指針指定到所要操作扇區(qū),對(duì)于讀寫扇區(qū)操作,將字節(jié)偏移量設(shè)置為指針移動(dòng)的字節(jié)數(shù);文件定位設(shè)置為FILE_BEGIN,即從文件開(kāi)始為參考位置進(jìn)行讀寫。

    接著,就可以利用ReadFile和WriteFile從指定位置讀寫扇區(qū),該函數(shù)由五個(gè)參數(shù)組成,參數(shù)設(shè)置如下:

    第一個(gè)參數(shù)為文件句柄,同上。第二個(gè)參數(shù)為緩沖區(qū),表示用于保存讀/寫入數(shù)據(jù)的一個(gè)緩沖區(qū)。第三個(gè)參數(shù)為要讀或?qū)懭氲淖址麛?shù),此處設(shè)置為從文件中讀或?qū)懭氲臄?shù)據(jù)字節(jié)數(shù)。第四個(gè)參數(shù)為從文件中實(shí)際讀或?qū)懭氲淖止?jié)數(shù)的指針。第五個(gè)參數(shù)設(shè)為NULL。

    最后,完成訪問(wèn)操作后,如果讀或?qū)懮葏^(qū)失敗,顯示錯(cuò)誤信息;如果讀或?qū)懮葏^(qū)成功,則用CloseHandle()函數(shù)關(guān)閉文件句柄,從而完成一次完整的磁盤扇區(qū)讀寫操作訪問(wèn),具體操作流程如圖3所示。

    圖3 流程

    2.2 具體實(shí)現(xiàn)步驟

    以上是在VC++環(huán)境下實(shí)現(xiàn)讀寫扇區(qū)的方法,而要想在應(yīng)用層實(shí)現(xiàn)底層磁盤的操作,需要通過(guò)java來(lái)對(duì)本地方法進(jìn)行調(diào)用,下面以磁盤數(shù)據(jù)讀寫為例,先在磁盤中寫入數(shù)據(jù),再通過(guò)讀扇區(qū)的方式讀取磁盤信息,分析了dll文件的生成以及java對(duì)其的調(diào)用過(guò)程,具體流程如下[9-10]

    (1)建立Java工程writesector和readsector,分別在Writesector.java和Readsector.java中聲明本地方法。

    public native boolean writeSector(long StartSector,int data);

    public native boolean readSector(long StartSector);

    定義了方法writeSector和readSector,參數(shù)StartSector,類型為long,表示所讀或?qū)懮葏^(qū)號(hào),這里是邏輯扇區(qū)號(hào),此參數(shù)用來(lái)在設(shè)置文件指針位置時(shí)指定到所要讀或?qū)懙纳葏^(qū)。data表示寫入扇區(qū)中數(shù)據(jù)。返回參數(shù)類型均為布爾類型。由于Java和C的編碼方式不同,所以JNI技術(shù)最關(guān)鍵部分就是參數(shù)的傳遞,即將本地代碼中的參數(shù)轉(zhuǎn)換為java可調(diào)用的參數(shù)類型,JNI數(shù)據(jù)類型映射見(jiàn)表1。

    表1 JNI數(shù)據(jù)類型映射

    native關(guān)鍵字作用:聲明本地化方法。它告訴Java 編譯器,方法是用Java類之外的本機(jī)代碼實(shí)現(xiàn)的,不需要用Java代碼具體實(shí)現(xiàn),但其聲明卻在Java中。

    (2)加載動(dòng)態(tài)庫(kù)

    Writesector.java和Readsector.java中分別加載write-sector1和readsector1文件。Load關(guān)鍵字:聲明的本地方法沒(méi)有實(shí)現(xiàn),但是我們?cè)谙旅婢椭苯邮褂昧?,所以必須在使用之前?duì)它進(jìn)行初始化。這里一般是以static塊進(jìn)行加載的。其中“writesector1”和“readsector1”是動(dòng)態(tài)庫(kù)的名字,Java通過(guò)調(diào)用這個(gè)中介Dll中的writeSector和readSector方法,間接調(diào)用真正的第三方Dll。

    (3)編譯生成Writesector.class和Readsector.class文件。

    (4)運(yùn)用.class文件生成.h頭文件。

    (5)用VC6.0編寫生成dll文件。下面以讀文件為例分析生成dll文件過(guò)程。

    第1步:在VC++下新建一個(gè)Win32Dynamic-Link Library類型的工程,取名readsector1,其中readsector1就是將來(lái)要生成的dll文件名,這樣命名方便java 對(duì)其直接調(diào)用。

    第2步:將頭文件readsector_Readsector.h、jni.h和jni_md.h 添加到工程中去,其中jni.h和jni_md.h這兩個(gè)文件可以在jdk1.6的include目錄下找到。

    第3步:編寫readsector.cpp實(shí)現(xiàn)readSector函數(shù)。

    JNIEXPORT jboolean JNICALL Java_readsector_Readsector_readSector(JNIEnv*env,jobject obj,jlong StartSector)

    其中JNIEnv* 是一個(gè)指向函數(shù)指針表的指針,這些函數(shù)提供各種用來(lái)在C++中操作Java數(shù)據(jù)的能力。jobject是指向在此Java代碼中實(shí)例化的Java 對(duì)象的一個(gè)句柄。jlong和jboolean分別對(duì)應(yīng)Java 中輸入函數(shù)類型和輸出類型。

    JNIEXPORT和JNICALL 都是JNI的關(guān)鍵字JNIEXPORT 表示函數(shù)的鏈接方式,當(dāng)程序執(zhí)行時(shí)從本地庫(kù)文件中找函數(shù),JNICALL 表示調(diào)用約定,說(shuō)明調(diào)用的是本地方法。

    以下是readSector函數(shù)中的主要部分:

    第4步:使用VC++編譯器編譯.cpp,生成readsector1.dll文件。

    3 代碼測(cè)試及結(jié)果輸出

    (1)在Writesector.java中輸入測(cè)試代碼:

    Writesector sample=new Writesector();

    boolean bool=sample.writeSector(2149033,0xBB);

    System.out.println("writeSector:"+bool);

    為了方便測(cè)試,在邏輯扇區(qū)號(hào)為2149033的扇區(qū)中輸入同一個(gè)數(shù)值0xbb。

    在Readsector.java中輸入測(cè)試代碼:

    Readsector sample=new Readsector();

    boolean bool=sample.readSector(2149033);

    System.out.println("readSector:"+bool);

    為了檢驗(yàn)寫扇區(qū)的正確性,檢驗(yàn)邏輯扇區(qū)號(hào)為2149033的扇區(qū)值是否正確。

    (2)將readsector1.dll拷貝到Readsector.java所在的目錄下,將writesector1.dll拷貝到Writesector.java 所在的目錄下。

    (3)運(yùn)行Writesector.java,實(shí)現(xiàn)寫扇區(qū),輸出結(jié)果如圖4所示。

    圖4 讀扇區(qū)

    再運(yùn)行Readsector.java,讀取所寫入扇區(qū)值。輸出結(jié)果如圖5所示。

    圖5 寫扇區(qū)

    4 Java調(diào)用本地方法準(zhǔn)則及缺點(diǎn)

    4.1 Java調(diào)用本地方法的準(zhǔn)則

    Java所調(diào)用的本地方法是指包含在特定平臺(tái)下的可執(zhí)行文件中,就本文示例而言,本地方法即包含在windows平臺(tái)下的動(dòng)態(tài)鏈接庫(kù)DLL中。在java對(duì)本地方法的實(shí)際調(diào)用過(guò)程中,需考慮一下兩個(gè)準(zhǔn)則:

    (1)當(dāng)本地代碼有多個(gè)方法時(shí),可以將這些本地方法都封裝到單個(gè)類中,這個(gè)類只需要調(diào)用一個(gè)DLL,即可實(shí)現(xiàn)對(duì)本地代碼的調(diào)用。對(duì)于每種目標(biāo)操作系統(tǒng),只需要修改基于該平臺(tái)的本地代碼來(lái)替換DLL,這就將本地代碼的影響減小對(duì)最小,也有助于不同平臺(tái)下的一直問(wèn)題。

    (2)本地方法要簡(jiǎn)單。目的要使第三方運(yùn)行時(shí)對(duì)DLL依賴程度減到最小,從而使本地方法更加獨(dú)立,減小加載DLL和應(yīng)用程序的開(kāi)銷。

    4.2 Java調(diào)用本地方法的缺點(diǎn)

    (1)Java作為一種面向?qū)ο蟮木幊陶Z(yǔ)言,雖然具有跨平臺(tái)等優(yōu)點(diǎn),但JNI方法在實(shí)現(xiàn)java與本地代碼交互的同時(shí)也限制了java語(yǔ)言的一個(gè)優(yōu)點(diǎn):程序的可移植性。java調(diào)用本地方法時(shí),需要本地代碼為其提供動(dòng)態(tài)鏈接庫(kù),而鏈接庫(kù)本身是與平臺(tái)相關(guān)的。

    (2)JNI方法使程序的安全性降低。JVM 給Java代碼提供了完善的安全機(jī)制使得Java代碼不會(huì)導(dǎo)致程序崩潰、濫用數(shù)據(jù)等,一旦使用了JNI,這種安全機(jī)制就無(wú)能力了。

    (3)必須確保本地代碼的穩(wěn)定性,因?yàn)楸镜卮a運(yùn)行時(shí)可能會(huì)造成錯(cuò)誤指針帶來(lái)的間接錯(cuò)誤,這樣本地代碼帶來(lái)的絲毫錯(cuò)誤都可能導(dǎo)致java虛擬機(jī)的崩潰[11]。

    5 結(jié)束語(yǔ)

    本文分析了基于windows平臺(tái)下用VC++實(shí)現(xiàn)磁盤扇區(qū)的讀寫方法之后,通過(guò)JNI技術(shù)實(shí)現(xiàn)了java對(duì)VC++下生成的dll文件的調(diào)用,從而完成應(yīng)用層對(duì)磁盤的直接訪問(wèn),實(shí)現(xiàn)了java對(duì)系統(tǒng)底層的直接操作。由于java標(biāo)準(zhǔn)的類庫(kù)無(wú)法支持與硬件的交互,這就受限了JNI方法的使用。而JNI方法在

    實(shí)現(xiàn)java與本地代碼雙向交互的同時(shí),使得程序本身喪失了跨平臺(tái)的優(yōu)點(diǎn)。所以,在使用JNI方法之前,一定要審查是否有更好的方法結(jié)合到j(luò)ava中。本文是在windows平臺(tái)實(shí)現(xiàn)了對(duì)系統(tǒng)底層的一些操作,如果想要跨平臺(tái)實(shí)現(xiàn),這就要求在不同的操作系統(tǒng)下重新編譯本地代碼,通過(guò)使用JNI技術(shù)可以實(shí)現(xiàn)更為廣泛的應(yīng)用層與底層之間的交互,有待進(jìn)一步研究。

    [1]Eckel.Thinking in java 4[M].Beijing:Publishing House of Electronics Industry,2011(in Chinese).[??藸?java編程思想第四版[M].北京:電子工業(yè)出版社,2011.]

    [2]WANG Jundi,ZHAO Kai.Study of JNI technology applied in software development[J].Journal of Lanzhou Polytechnic College,2009,16(5):15-17(in Chinese).[王軍弟,趙愷.JNI技術(shù)在軟件開(kāi)發(fā)中的應(yīng)用研究[J].蘭州工業(yè)高等??茖W(xué)校學(xué)報(bào),2009,16(5):15-17.]

    [3]GAO Jing,WANG Jianhua.The application of jni technique in the built-in software development[J].Natural Science Journal of Harbin Normal University,2007,23(6):62-65(in Chinese).[高晶,王建華.JNI技術(shù)在嵌入式軟件開(kāi)發(fā)中的應(yīng)用[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報(bào),2007,23(6):62-65.]

    [4]MA Liyan,ZHANG Chunfang,LI Ruitai,et al.Empoldering database DLL program in the environment of delphi[J].Journal of Hebei Normal University(Natural Science Edition,2007,31(2):173-175(in Chinese).[馬麗艷,張春芳,李瑞臺(tái),等.用Delphi開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用功能的DLL 程序[J].河北師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,31(2):173-175.]

    [5]CHEN Jie,ZHANG Wei,ZHANG Shunsheng.Design and implementation of SATA2.0controller[J].Journal of Computer Applications,2011,31(S1):25-26(in Chinese).[陳杰,張偉,張順生.SATA2.0 控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2011,31(S1):25-26.]

    [6]LIU Yingming,LI Ning,ZHANG Ling,et al.Using JNI to establish communication between Java and C++[J].Computer Era,2010,31(6):980-984(in Chinese).[劉英明,李寧,張玲,等.基于JNI技術(shù)C++測(cè)井應(yīng)用程序集成方法[J].石油學(xué)報(bào),2010,31(6):980-984.]

    [7]AN Baijun,GAO Dong,ZHANG Wei,et al.Java native method calls[J].Microprocessors,2011,2(2):40-44(in Chi-nese).[安百俊,高棟,張偉,等.通過(guò)Java 調(diào)用本地方法[J].微處理機(jī),2011,2(2):40-44.]

    [8]WANG Hong.Read floppy disk sector for Windows[J].Computer Knowledge and Technology,2009,5(24):6791-6793(in Chinese).[汪虹.Windows下直接讀取軟盤扇區(qū)[J].電腦知識(shí)與技術(shù),2009,5(24):6791-6793.]

    [9]GUO Liquan,XIE Weibo.Design and realization of video intercom system based on Andriod[J].Microcomputer &Its Applications,2012,31(5):4-7(in Chinese).[郭利全,謝維波.基于Android平臺(tái)的可視對(duì)講系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2012,31(5):4-7.]

    [10]ZHANG Miaomiao,XING Jianchun,YANG Qihang.Method and implementation of call on configuration software database based on jni technology[J].Industrial Control Computer,2011,24(9):3-5(in Chinese).[張淼淼,邢建春,楊啟亮.基于JNI技術(shù)的組態(tài)軟件數(shù)據(jù)庫(kù)訪問(wèn)方法及應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2011,24(9):3-5.]

    [11]HUANG Yanfeng,WANG Jianpin.Comparisons between Java and C++programming language on security[J].Sichuan University of Arts and Science Journal(Natural Science Edition),2007,17(2):53-54(in Chinese).[黃艷峰,王建品.Java與C++在安全性方面的比較[J].四川文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2007,17(2):53-54.]

    猜你喜歡
    磁盤扇區(qū)指針
    分階段調(diào)整增加扇區(qū)通行能力策略
    南北橋(2022年2期)2022-05-31 04:28:07
    解決Windows磁盤簽名沖突
    偷指針的人
    修改磁盤屬性
    U盤故障排除經(jīng)驗(yàn)談
    為什么表的指針都按照順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)
    磁盤組群組及iSCSI Target設(shè)置
    創(chuàng)建VSAN群集
    基于貝葉斯估計(jì)的短時(shí)空域扇區(qū)交通流量預(yù)測(cè)
    重建分區(qū)表與FAT32_DBR研究與實(shí)現(xiàn)
    亚洲精华国产精华精| 国产精品香港三级国产av潘金莲| 国产成年人精品一区二区| 国产精品自产拍在线观看55亚洲| 一级作爱视频免费观看| 观看免费一级毛片| 在线观看免费视频日本深夜| 国产免费av片在线观看野外av| 男女之事视频高清在线观看| 性欧美人与动物交配| 一级毛片精品| 成人国产一区最新在线观看| 天堂√8在线中文| 久久久久九九精品影院| 久久伊人香网站| 少妇熟女aⅴ在线视频| 少妇粗大呻吟视频| 床上黄色一级片| 18美女黄网站色大片免费观看| 欧美黄色淫秽网站| 欧美 亚洲 国产 日韩一| 91字幕亚洲| 亚洲av美国av| 国产熟女午夜一区二区三区| 亚洲精品av麻豆狂野| 亚洲国产高清在线一区二区三| 亚洲美女视频黄频| 国产伦人伦偷精品视频| 精品欧美一区二区三区在线| 亚洲欧美日韩东京热| 人人妻,人人澡人人爽秒播| 99在线人妻在线中文字幕| 日韩高清综合在线| 国产精品一区二区免费欧美| 国产视频一区二区在线看| av欧美777| 制服丝袜大香蕉在线| 亚洲人与动物交配视频| 日韩欧美在线乱码| 最好的美女福利视频网| 精品国产乱码久久久久久男人| 欧美人与性动交α欧美精品济南到| 制服人妻中文乱码| 亚洲avbb在线观看| 男人舔女人的私密视频| 久久精品夜夜夜夜夜久久蜜豆 | 婷婷精品国产亚洲av| 国内少妇人妻偷人精品xxx网站 | 欧美性猛交黑人性爽| 18美女黄网站色大片免费观看| www国产在线视频色| 高潮久久久久久久久久久不卡| 又黄又粗又硬又大视频| 国内精品一区二区在线观看| 免费在线观看视频国产中文字幕亚洲| 在线十欧美十亚洲十日本专区| 亚洲专区国产一区二区| 亚洲精品在线美女| 99国产极品粉嫩在线观看| 午夜福利在线在线| 亚洲片人在线观看| 岛国视频午夜一区免费看| 视频区欧美日本亚洲| 欧美zozozo另类| 久久久国产成人免费| 精品午夜福利视频在线观看一区| 黑人欧美特级aaaaaa片| 亚洲中文日韩欧美视频| av免费在线观看网站| 午夜福利高清视频| 欧美日本亚洲视频在线播放| 一区福利在线观看| 亚洲人成77777在线视频| 一进一出好大好爽视频| 午夜成年电影在线免费观看| 国产熟女xx| 亚洲人成网站在线播放欧美日韩| 18禁黄网站禁片免费观看直播| 国产一区二区在线av高清观看| 久久久精品欧美日韩精品| 国产精品精品国产色婷婷| 18禁美女被吸乳视频| 成在线人永久免费视频| 露出奶头的视频| 天天一区二区日本电影三级| 亚洲av成人精品一区久久| 色综合婷婷激情| 999久久久精品免费观看国产| 男女下面进入的视频免费午夜| 亚洲九九香蕉| 午夜精品久久久久久毛片777| 亚洲男人的天堂狠狠| 国产精品亚洲美女久久久| 国产视频一区二区在线看| 一区福利在线观看| 欧美zozozo另类| 最新在线观看一区二区三区| 国产久久久一区二区三区| 精品高清国产在线一区| 日本黄色视频三级网站网址| 99久久久亚洲精品蜜臀av| 国产99白浆流出| 色在线成人网| 久久99热这里只有精品18| 亚洲男人天堂网一区| 欧美在线一区亚洲| 中亚洲国语对白在线视频| 午夜老司机福利片| 狂野欧美激情性xxxx| 最近最新中文字幕大全电影3| 亚洲中文日韩欧美视频| 国语自产精品视频在线第100页| 此物有八面人人有两片| 久久天堂一区二区三区四区| 国产精品爽爽va在线观看网站| 日本撒尿小便嘘嘘汇集6| 成人永久免费在线观看视频| 国产蜜桃级精品一区二区三区| 久久久久国内视频| 日日爽夜夜爽网站| 亚洲成人精品中文字幕电影| 在线观看午夜福利视频| 一级毛片精品| 色噜噜av男人的天堂激情| 亚洲精华国产精华精| 欧美久久黑人一区二区| 久久久久亚洲av毛片大全| 丝袜美腿诱惑在线| 久久伊人香网站| 久久精品91蜜桃| 精品乱码久久久久久99久播| 很黄的视频免费| 国产伦一二天堂av在线观看| 亚洲精品久久成人aⅴ小说| 一本久久中文字幕| 成人精品一区二区免费| 18禁黄网站禁片免费观看直播| 中国美女看黄片| 久久久久久久久免费视频了| 又粗又爽又猛毛片免费看| 亚洲九九香蕉| 亚洲av成人精品一区久久| 成人av一区二区三区在线看| 国产伦人伦偷精品视频| 国产成人av激情在线播放| 日韩免费av在线播放| 俄罗斯特黄特色一大片| 午夜久久久久精精品| 亚洲国产高清在线一区二区三| 九色成人免费人妻av| 日韩大尺度精品在线看网址| 99久久久亚洲精品蜜臀av| 国产精品爽爽va在线观看网站| 欧美3d第一页| 亚洲国产高清在线一区二区三| 99在线人妻在线中文字幕| 亚洲免费av在线视频| 曰老女人黄片| 久久久国产精品麻豆| 成年女人毛片免费观看观看9| 亚洲午夜精品一区,二区,三区| 国产一区二区在线观看日韩 | 老司机靠b影院| 国产精品爽爽va在线观看网站| 国产97色在线日韩免费| 在线观看免费视频日本深夜| 一二三四社区在线视频社区8| 99久久国产精品久久久| 成人永久免费在线观看视频| 久久久久久久久久黄片| 久久久国产成人精品二区| 欧美日韩精品网址| 一个人免费在线观看的高清视频| 国产精品久久电影中文字幕| 在线观看www视频免费| 久久久国产精品麻豆| 成熟少妇高潮喷水视频| 老熟妇仑乱视频hdxx| 香蕉丝袜av| 美女扒开内裤让男人捅视频| 12—13女人毛片做爰片一| 成在线人永久免费视频| 欧美久久黑人一区二区| 此物有八面人人有两片| 久久久久国内视频| 99国产精品99久久久久| 免费电影在线观看免费观看| 国产精品亚洲av一区麻豆| 国产黄片美女视频| 国产欧美日韩精品亚洲av| 亚洲成a人片在线一区二区| www日本在线高清视频| 美女黄网站色视频| 国产成人欧美在线观看| 国产亚洲av高清不卡| 19禁男女啪啪无遮挡网站| 亚洲免费av在线视频| 女同久久另类99精品国产91| 久久久久久久午夜电影| 天堂影院成人在线观看| 亚洲真实伦在线观看| 免费人成视频x8x8入口观看| 一级毛片高清免费大全| 久久中文看片网| 亚洲欧美激情综合另类| 亚洲成人免费电影在线观看| 人成视频在线观看免费观看| 国产成人欧美在线观看| 久久久久久亚洲精品国产蜜桃av| 一个人观看的视频www高清免费观看 | 在线观看美女被高潮喷水网站 | 亚洲精品粉嫩美女一区| 夜夜爽天天搞| 成年女人毛片免费观看观看9| 女人爽到高潮嗷嗷叫在线视频| 久久久久亚洲av毛片大全| 久久久国产精品麻豆| 欧美日韩福利视频一区二区| 午夜精品一区二区三区免费看| 又黄又爽又免费观看的视频| 午夜影院日韩av| 国产一区二区激情短视频| 欧美成狂野欧美在线观看| 国产片内射在线| 在线a可以看的网站| 国产不卡一卡二| 亚洲一码二码三码区别大吗| 老司机午夜福利在线观看视频| 成人永久免费在线观看视频| 久久这里只有精品中国| 亚洲欧美激情综合另类| 一区二区三区高清视频在线| 最近最新免费中文字幕在线| 中文字幕av在线有码专区| 在线观看一区二区三区| av片东京热男人的天堂| 久久久久久人人人人人| 一本久久中文字幕| 亚洲欧美精品综合一区二区三区| 国产高清有码在线观看视频 | 在线永久观看黄色视频| 国产97色在线日韩免费| 国产爱豆传媒在线观看 | 人妻夜夜爽99麻豆av| 日本免费a在线| 欧美大码av| 好男人电影高清在线观看| 一级片免费观看大全| 久久 成人 亚洲| 99久久精品热视频| 首页视频小说图片口味搜索| 日韩欧美 国产精品| 亚洲aⅴ乱码一区二区在线播放 | 精品免费久久久久久久清纯| 丁香六月欧美| 1024香蕉在线观看| 欧美日韩亚洲国产一区二区在线观看| 18禁观看日本| a在线观看视频网站| 精品久久久久久久人妻蜜臀av| 色噜噜av男人的天堂激情| 狂野欧美白嫩少妇大欣赏| 亚洲午夜精品一区,二区,三区| 久久精品综合一区二区三区| 黄色丝袜av网址大全| 亚洲乱码一区二区免费版| 香蕉国产在线看| 精品福利观看| 亚洲国产精品成人综合色| 亚洲中文日韩欧美视频| 亚洲熟妇熟女久久| 午夜久久久久精精品| 亚洲真实伦在线观看| 桃红色精品国产亚洲av| 特级一级黄色大片| 长腿黑丝高跟| 亚洲在线自拍视频| 国产av一区二区精品久久| 亚洲一区高清亚洲精品| 久久久久久九九精品二区国产 | 动漫黄色视频在线观看| 一级片免费观看大全| 亚洲av成人一区二区三| 日韩三级视频一区二区三区| 观看免费一级毛片| 国产av一区二区精品久久| 国产视频内射| 一区二区三区高清视频在线| 国产成人影院久久av| 亚洲成av人片在线播放无| 在线免费观看的www视频| 桃色一区二区三区在线观看| 欧美+亚洲+日韩+国产| 可以在线观看的亚洲视频| 搡老熟女国产l中国老女人| 在线免费观看的www视频| 特大巨黑吊av在线直播| 午夜福利高清视频| 亚洲国产欧美一区二区综合| 一本综合久久免费| 麻豆国产97在线/欧美 | 美女大奶头视频| 好男人在线观看高清免费视频| 曰老女人黄片| 搡老妇女老女人老熟妇| 国产亚洲精品综合一区在线观看 | 中文字幕高清在线视频| 天堂动漫精品| 国产精品 欧美亚洲| 欧美日本亚洲视频在线播放| 亚洲人与动物交配视频| 成人特级黄色片久久久久久久| 一夜夜www| 亚洲av中文字字幕乱码综合| 88av欧美| 天堂影院成人在线观看| 少妇被粗大的猛进出69影院| www国产在线视频色| 老熟妇仑乱视频hdxx| 日韩高清综合在线| 国产精品98久久久久久宅男小说| 亚洲av第一区精品v没综合| 波多野结衣巨乳人妻| 日韩欧美三级三区| 亚洲天堂国产精品一区在线| 欧美黑人精品巨大| 亚洲第一欧美日韩一区二区三区| 国产野战对白在线观看| 女警被强在线播放| 两个人的视频大全免费| 国产欧美日韩一区二区精品| 成人特级黄色片久久久久久久| 亚洲黑人精品在线| 中文字幕高清在线视频| 亚洲av日韩精品久久久久久密| 国产在线精品亚洲第一网站| 国产主播在线观看一区二区| 欧美成人免费av一区二区三区| 女人高潮潮喷娇喘18禁视频| 欧美色欧美亚洲另类二区| 三级国产精品欧美在线观看 | 天堂影院成人在线观看| 国产欧美日韩一区二区三| 婷婷丁香在线五月| 一a级毛片在线观看| 国产区一区二久久| 人人妻人人澡欧美一区二区| 精品一区二区三区四区五区乱码| 国产精品久久久久久亚洲av鲁大| 欧美色欧美亚洲另类二区| 少妇粗大呻吟视频| 欧美日韩福利视频一区二区| 亚洲精品在线美女| 欧美色视频一区免费| 亚洲专区国产一区二区| 亚洲精华国产精华精| 国产精品一区二区三区四区免费观看 | 国内少妇人妻偷人精品xxx网站 | 日日夜夜操网爽| 国产高清视频在线观看网站| xxx96com| 黄片小视频在线播放| 国产精品永久免费网站| 国产精品av视频在线免费观看| 桃色一区二区三区在线观看| 亚洲乱码一区二区免费版| 久久久精品国产亚洲av高清涩受| 亚洲真实伦在线观看| e午夜精品久久久久久久| 婷婷精品国产亚洲av在线| 很黄的视频免费| 好男人电影高清在线观看| 欧美乱妇无乱码| 免费在线观看视频国产中文字幕亚洲| 亚洲18禁久久av| 很黄的视频免费| 亚洲av五月六月丁香网| 99精品欧美一区二区三区四区| 久9热在线精品视频| 国产精品电影一区二区三区| 久久久久亚洲av毛片大全| 极品教师在线免费播放| 正在播放国产对白刺激| www.自偷自拍.com| 91av网站免费观看| 精品午夜福利视频在线观看一区| av免费在线观看网站| 亚洲熟妇熟女久久| 国产v大片淫在线免费观看| 中文亚洲av片在线观看爽| av有码第一页| 99久久综合精品五月天人人| av福利片在线观看| 男女床上黄色一级片免费看| 两人在一起打扑克的视频| 亚洲专区国产一区二区| 久久久久久久午夜电影| 精品久久久久久成人av| 久久婷婷成人综合色麻豆| 两个人视频免费观看高清| 欧美 亚洲 国产 日韩一| 亚洲av第一区精品v没综合| 特级一级黄色大片| 69av精品久久久久久| 欧美日韩瑟瑟在线播放| 最近最新免费中文字幕在线| 亚洲熟女毛片儿| 高清毛片免费观看视频网站| 999精品在线视频| 欧美色视频一区免费| 久久久久久九九精品二区国产 | 国产精品香港三级国产av潘金莲| 国产av一区在线观看免费| 丰满的人妻完整版| 黑人欧美特级aaaaaa片| 久久精品影院6| 一区二区三区国产精品乱码| 欧美一区二区国产精品久久精品 | 99久久精品热视频| 亚洲人成网站高清观看| 女生性感内裤真人,穿戴方法视频| 一级毛片精品| 精品国产美女av久久久久小说| 欧美黄色淫秽网站| 午夜福利在线观看吧| 夜夜躁狠狠躁天天躁| 男女下面进入的视频免费午夜| 国产成人aa在线观看| 成人特级黄色片久久久久久久| 他把我摸到了高潮在线观看| 亚洲国产欧美一区二区综合| 免费电影在线观看免费观看| 久久精品国产99精品国产亚洲性色| 精品不卡国产一区二区三区| 少妇裸体淫交视频免费看高清 | 亚洲av片天天在线观看| 亚洲成人中文字幕在线播放| 亚洲欧美精品综合久久99| 亚洲熟女毛片儿| 亚洲av日韩精品久久久久久密| 国产精品永久免费网站| 日本五十路高清| 在线观看日韩欧美| 三级男女做爰猛烈吃奶摸视频| 丝袜美腿诱惑在线| 精品久久久久久久久久免费视频| 美女大奶头视频| 免费在线观看黄色视频的| 一二三四在线观看免费中文在| 欧美性猛交黑人性爽| 精品久久久久久久久久免费视频| 欧美av亚洲av综合av国产av| 在线观看免费午夜福利视频| 在线观看66精品国产| 国产精品av久久久久免费| 国产精品一区二区免费欧美| 国产又色又爽无遮挡免费看| 午夜老司机福利片| 免费在线观看影片大全网站| 精品久久久久久久末码| 99riav亚洲国产免费| 50天的宝宝边吃奶边哭怎么回事| av欧美777| 三级毛片av免费| 精品少妇一区二区三区视频日本电影| 欧美性猛交黑人性爽| 人妻丰满熟妇av一区二区三区| 国产av一区二区精品久久| 99久久综合精品五月天人人| 老司机在亚洲福利影院| 琪琪午夜伦伦电影理论片6080| 91大片在线观看| 日韩欧美精品v在线| 热99re8久久精品国产| 欧美三级亚洲精品| 国产精品av久久久久免费| 精品一区二区三区av网在线观看| 精华霜和精华液先用哪个| 99久久国产精品久久久| 悠悠久久av| 亚洲五月天丁香| 成人国产综合亚洲| 日本a在线网址| 久久 成人 亚洲| 99久久精品热视频| 久久久久国产一级毛片高清牌| 国产爱豆传媒在线观看 | 亚洲av成人一区二区三| 欧美黑人欧美精品刺激| 欧洲精品卡2卡3卡4卡5卡区| 此物有八面人人有两片| 国产熟女午夜一区二区三区| 中文亚洲av片在线观看爽| 少妇粗大呻吟视频| 欧美一区二区国产精品久久精品 | 免费一级毛片在线播放高清视频| 两个人免费观看高清视频| 99久久国产精品久久久| 亚洲午夜理论影院| 国产免费av片在线观看野外av| 首页视频小说图片口味搜索| 人妻夜夜爽99麻豆av| 日本 欧美在线| 日韩欧美在线乱码| 亚洲国产欧美人成| 淫妇啪啪啪对白视频| 在线永久观看黄色视频| 国产单亲对白刺激| 久久久久久人人人人人| 日韩高清综合在线| 又黄又爽又免费观看的视频| 久久中文字幕一级| 黄色毛片三级朝国网站| 男女床上黄色一级片免费看| 久久久久久久久免费视频了| 黄色女人牲交| 成人18禁在线播放| 国产主播在线观看一区二区| 日本在线视频免费播放| 久久精品国产亚洲av香蕉五月| 99久久综合精品五月天人人| 色在线成人网| 精品无人区乱码1区二区| 老司机靠b影院| 1024视频免费在线观看| 首页视频小说图片口味搜索| 亚洲欧美日韩无卡精品| 这个男人来自地球电影免费观看| 国产亚洲av高清不卡| 午夜亚洲福利在线播放| 欧美精品啪啪一区二区三区| av有码第一页| 国产成人啪精品午夜网站| 午夜影院日韩av| 亚洲第一欧美日韩一区二区三区| 亚洲精品美女久久久久99蜜臀| 黑人欧美特级aaaaaa片| 91av网站免费观看| 午夜日韩欧美国产| 一个人免费在线观看电影 | 精品午夜福利视频在线观看一区| 国产精品一及| 亚洲欧美日韩高清在线视频| 天天添夜夜摸| 亚洲自偷自拍图片 自拍| 色精品久久人妻99蜜桃| 日韩中文字幕欧美一区二区| x7x7x7水蜜桃| 国产亚洲精品第一综合不卡| 日韩欧美在线二视频| 丰满的人妻完整版| 波多野结衣巨乳人妻| 欧美一区二区国产精品久久精品 | 午夜视频精品福利| 亚洲人与动物交配视频| 久久精品aⅴ一区二区三区四区| 国产精品一区二区免费欧美| 少妇裸体淫交视频免费看高清 | 国产一区二区三区视频了| 亚洲一区高清亚洲精品| 88av欧美| 亚洲自偷自拍图片 自拍| 欧美黑人巨大hd| 欧美+亚洲+日韩+国产| 国产精品 欧美亚洲| 一个人免费在线观看的高清视频| 亚洲欧美日韩东京热| 香蕉国产在线看| 亚洲国产看品久久| 久久国产精品人妻蜜桃| 精品国产乱码久久久久久男人| 亚洲 欧美 日韩 在线 免费| 日本一区二区免费在线视频| 黄色女人牲交| 91九色精品人成在线观看| 亚洲国产精品成人综合色| 18禁观看日本| 91大片在线观看| 亚洲av日韩精品久久久久久密| 一二三四在线观看免费中文在| x7x7x7水蜜桃| 久久亚洲精品不卡| 日韩欧美在线乱码| 俺也久久电影网| 亚洲专区中文字幕在线| 在线播放国产精品三级| 国产精品自产拍在线观看55亚洲| 激情在线观看视频在线高清| 精品一区二区三区四区五区乱码| 黄片小视频在线播放| 中文字幕av在线有码专区| 丝袜人妻中文字幕| 免费在线观看影片大全网站| 欧美国产日韩亚洲一区| 极品教师在线免费播放| 久久久久免费精品人妻一区二区| 亚洲成av人片免费观看| 在线观看一区二区三区| 99热这里只有是精品50| 亚洲av熟女| 好男人电影高清在线观看| 欧美成人免费av一区二区三区| 亚洲中文av在线| 日本黄色视频三级网站网址| 亚洲欧美激情综合另类| 亚洲精品色激情综合| 丁香六月欧美| 中国美女看黄片| 日韩欧美精品v在线| 一本精品99久久精品77| 亚洲av熟女| 久久婷婷成人综合色麻豆| 欧美中文综合在线视频| 国产精品一及| 亚洲av片天天在线观看|