黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

《Undocumented Windows 2000 Secrets》翻譯 --- 第三章(2)

瀏覽:129日期:2023-08-27 13:35:30

第三章 編寫(xiě)內(nèi)核模式驅(qū)動(dòng)程序

翻譯: Kendiv

更新: Tuesday, February 08, 2005

作為補(bǔ)充這里給出 DrvInfo.h 的內(nèi)容:

// __________________________________________________________

//

// DrvInfo.h

// Driver Info Definitions V1.00

// 06-02-2000 Sven B. Schreiber

// sbs@orgon.com

// __________________________________________________________

#ifndef _DRVINFO_H_

#define _DRVINFO_H_

// =================================================================

// DISCLAIMER

// =================================================================

/*

This software is provided 'as is' and any express or implIEd

warranties, including, but not limited to, the implied warranties of

merchantability and fitness for a particular purpose are disclaimed.

In no event shall the author Sven B. Schreiber be liable for any

direct, indirect, incidental, special, exemplary, or consequential

damages (including, but not limited to, procurement of substitute

goods or services; loss of use, data, or profits; or business

interruption) however caused and on any theory of liability,

whether in contract, strict liability, or tort (including negligence

or otherwise) arising in any way out of the use of this software,

even if advised of the possibility of such damage.

*/

// =================================================================

// REVISION HISTORY

// =================================================================

/*

05-26-2000 V1.00 Original version (SBS).

*/

// =================================================================

// BASIC TYPES

// =================================================================

typedef UCHAR BYTE, *PBYTE, **PPBYTE;

typedef USHORT Word, *PWORD, **PPWORD;

typedef ULONG DWORD, *PDWORD, **PPDWORD;

typedef unsigned __int64 QWORD, *PQWORD, **PPQWORD;

typedef int BOOL, *PBOOL, **PPBOOL;

typedef void **PPVOID;

// -----------------------------------------------------------------

#define BYTE_ sizeof (BYTE)

#define WORD_ sizeof (WORD)

#define DWORD_ sizeof (DWORD)

#define QWORD_ sizeof (QWORD)

#define BOOL_ sizeof (BOOL)

#define PVOID_ sizeof (PVOID)

#define HANDLE_ sizeof (HANDLE)

#define PHYSICAL_ADDRESS_ sizeof (PHYSICAL_ADDRESS)

// =================================================================

// MacROS

// =================================================================

#define _DRV_DEVICE(_name) Device ## _name

#define _DRV_LINK(_name) DosDevices ## _name

#define _DRV_PATH(_name) . ## _name

// -----------------------------------------------------------------

#define _CSTRING(_text) #_text

#define CSTRING(_text) _CSTRING (_text)

#define _USTRING(_text) L##_text

#define USTRING(_text) _USTRING (_text)

#define PRESET_UNICODE_STRING(_symbol,_buffer)

UNICODE_STRING _symbol =

{

sizeof (USTRING (_buffer)) - sizeof (WORD),

sizeof (USTRING (_buffer)),

USTRING (_buffer)

};

// -----------------------------------------------------------------

#if DRV_VERSION_LOW < 10

#define _DRV_V2(_a,_b) _a ## .0 ## _b

#define _DRV_V2X(_a,_b) V ## _a ## .0 ## _b

#else // #if DRV_VERSION_LOW < 10

#define _DRV_V2(_a,_b) _a ## . ## _b

#define _DRV_V2X(_a,_b) V ## _a ## . ## _b

#endif // #if DRV_VERSION_LOW < 10 #else

#define DRV_V2(_a,_b) _DRV_V2(_a,_b)

#define DRV_V2X(_a,_b) _DRV_V2X(_a,_b)

// -----------------------------------------------------------------

#define _DRV_V4(_a,_b,_c) _a ## . ## _b ## .0. ## _c

#define DRV_V4(_a,_b,_c) _DRV_V4(_a,_b,_c)

// -----------------------------------------------------------------

#define DRV_V DRV_V2X (DRV_VERSION_HIGH,

DRV_VERSION_LOW)

#define DRV_VERSION DRV_V2 (DRV_VERSION_HIGH,

DRV_VERSION_LOW)

#define DRV_VERSION_QUAD DRV_V4 (DRV_VERSION_HIGH,

DRV_VERSION_LOW,

DRV_BUILD)

#define DRV_VERSION_BINARY ((DRV_VERSION_HIGH * 100)

+ DRV_VERSION_LOW)

// =================================================================

// DRIVER INFORMATION

// =================================================================

#define DRV_ID DRV_PREFIX.DRV_MODULE

#define DRV_ID_VERSION DRV_ID.DRV_VERSION_HIGH

#define DRV_FILENAME DRV_MODULE.DRV_EXTENSION

#define DRV_CAPTION DRV_NAME DRV_V

#define DRV_COMMENT DRV_DATE DRV_AUTHOR

// -----------------------------------------------------------------

#define DRV_DEVICE _DRV_DEVICE (DRV_MODULE)

#define DRV_LINK _DRV_LINK (DRV_MODULE)

#define DRV_PATH _DRV_PATH (DRV_MODULE)

#define DRV_EXTENSION sys

// -----------------------------------------------------------------

#define DRV_CLASS DRV_MODULE.DRV_VERSION_QUAD

#define DRV_ICON DRV_MODULE.Icon

// -----------------------------------------------------------------

#define DRV_COPYRIGHT Copyright xA9 DRV_YEAR

#define DRV_COPYRIGHT_EX DRV_COPYRIGHT DRV_COMPANY

// -----------------------------------------------------------------

#define DRV_DATE_US DRV_MONTH-DRV_DAY-DRV_YEAR

#define DRV_DATE_GERMAN DRV_DAY.DRV_MONTH.DRV_YEAR

#define DRV_DATE DRV_DATE_US

// =================================================================

// NT4 COMPATIBILITY

// =================================================================

#ifndef IRP_MJ_QUERY_POWER

#define IRP_MJ_QUERY_POWER 0x16

#endif

#ifndef IRP_MJ_SET_POWER

#define IRP_MJ_SET_POWER 0x17

#endif

#ifndef IRP_MJ_PNP_POWER

#define IRP_MJ_PNP_POWER 0x1B

#endif

////////////////////////////////////////////////////////////////////

#ifdef _RC_PASS_

////////////////////////////////////////////////////////////////////

// =================================================================

// HEADER FILES

// =================================================================

#include <winver.h>

// =================================================================

// VERSION INFO

// =================================================================

#define DRV_RC_VERSION

VS_VERSION_INFO VERSIONINFO

FILEVERSION DRV_VERSION_HIGH, DRV_VERSION_LOW, 0, DRV_BUILD

PRODUCTVERSION DRV_VERSION_HIGH, DRV_VERSION_LOW, 0, DRV_BUILD

FILEFLAGSMASK VS_FFI_FILEFLAGSMASK

FILEFLAGS 0

FILEOS VOS_NT

FILETYPE VFT_DRV

FILESUBTYPE VFT2_UNKNOWN

{

BLOCK 'StringFileInfo'

{

BLOCK '040904B0'

{

VALUE 'OriginalFilename', CSTRING (DRV_FILENAME)

VALUE 'InternalName', CSTRING (DRV_MODULE)

VALUE 'ProductName', CSTRING (DRV_NAME)

VALUE 'FileDescription', CSTRING (DRV_CAPTION)

VALUE 'CompanyName', CSTRING (DRV_COMPANY)

VALUE 'ProductVersion', CSTRING (DRV_VERSION_QUAD)

VALUE 'FileVersion', CSTRING (DRV_VERSION_QUAD)

VALUE 'LegalCopyright', CSTRING (DRV_COPYRIGHT_EX)

VALUE 'Comments', CSTRING (DRV_COMMENT)

}

}

BLOCK 'VarFileInfo'

{

VALUE 'Translation', 0x0409, 0x04B0

}

}

// =================================================================

// RESOURCES

// =================================================================

#define DRV_RC_ICON DRV_ICON ICON DRV_MODULE.ico

////////////////////////////////////////////////////////////////////

#endif // #ifdef _RC_PASS_

////////////////////////////////////////////////////////////////////

#endif // #ifndef _DRVINFO_H_

// =================================================================

// END OF FILE

// =================================================================

列表 3-3 列表 3-4 給出的驅(qū)動(dòng)程序的 C 代碼中包含了幾乎所有 Kernel-mode Driver 都需要的基本代碼。我會(huì)盡量使該驅(qū)動(dòng)向?qū)в懈玫目啥ㄖ菩浴D憧梢宰杂傻母南驅(qū)峁┑哪0逦募?duì)于想保留原有代碼的人,下面的章節(jié)會(huì)為你提供該向?qū)У囊恍﹥?nèi)部細(xì)節(jié)的簡(jiǎn)要介紹。

該向?qū)傻尿?qū)動(dòng)模塊的進(jìn)入點(diǎn)是 DriverEntry() 。像所有的 Windows 2000 模塊的進(jìn)入點(diǎn)一樣,這個(gè)名字并不時(shí)必須的。你可以使用任何你喜歡的名稱(chēng),但是你必須告訴鏈接器你所使用的進(jìn)入點(diǎn)名稱(chēng),通過(guò)鏈接器的命令行選項(xiàng) /entry 可以做到這一點(diǎn)。對(duì)于前面提及的 TestDriver ,向?qū)б呀?jīng)很好的完成了這項(xiàng)工作。在 w2k_wiz.tp 模板或生成的 TestDrv.dsp 文件中,你會(huì)在鏈接器的命令行中找到 /entry:”DriverEntry@8” 這樣的字符串。 @8 后綴表示 DriverEntry() 接受 8 個(gè)字節(jié)的參數(shù)(這些參數(shù)位于棧中),這和 列表 3-1 提供的 DriverEntry() 的原型一致:兩個(gè)指針參數(shù),每個(gè)占據(jù) 32 個(gè)位,共使用 64 個(gè)二進(jìn)制位,即 8 字節(jié)。

DriverEntry() 做的第一件事是調(diào)用 DriverInitialize() ,該函數(shù)將創(chuàng)建一個(gè)設(shè)備對(duì)象( Device Object )和該對(duì)象的一個(gè)符號(hào)鏈接( Symbolic link ),在稍后你可能在用戶(hù)模式的程序中使用該符號(hào)鏈接來(lái)與設(shè)備通訊。要想找到 IoCreateDevice() 和 IoCreateSymbolicLink() 所使用的名字就有些許的困難,因?yàn)樗鼈兌际且蕾?lài) DrvzInfo.h (位于本書(shū)光盤(pán)的 srccommoninclude 目錄)中的宏定義。如果你想更多的了解這個(gè)技巧,請(qǐng)參考 TestDrv.h (前面的 列表 3-4 已列出)中的 PROGRAM IDENTIFICATION 一節(jié),并跟蹤形如 DRV_* 的定義,它們以多種方式成組的出現(xiàn)在 DrvInfo.h 中。例如,一個(gè)完整的 VERSIONINFO 資源就是由多個(gè)小的宏構(gòu)成的。在別處,還定義了 DRV_DEVICE 和 DRV_LINK 常量,在這里,它們分別等價(jià)于 DeviceTestDrv 和 DosDeviceTestDrv 。注意,很多內(nèi)核 API 函數(shù),如 IoCreateDevice() 和 IoCreateSymbolickLinke() 不接受一個(gè)以零結(jié)尾的字符串,僅支持一個(gè)特殊的結(jié)構(gòu)體 ---UNICODE_STRING ,該結(jié)構(gòu)在第二章已經(jīng)介紹過(guò), 列表 3-5 再次給出了該結(jié)構(gòu)的定義。定義于 DrvInfo.h 中的宏 ----PRESET_UNICODE_STRING (應(yīng)用于 TestDrv.c 的 GLOBAL DATA Section )從一個(gè)簡(jiǎn)單的 Unicode 字符串常量創(chuàng)建出一個(gè)靜態(tài)的 UNICODE_STRING 結(jié)構(gòu)。這是針對(duì) UNICODE_STRING 結(jié)構(gòu)的一個(gè)方便的速記符號(hào)。

在成功的創(chuàng)建完設(shè)備對(duì)象及其符號(hào)鏈接后, DriverInitialize() 將設(shè)備對(duì)象指針和設(shè)備上下文( Device Context )的指針保存在一個(gè)靜態(tài)全局變量中。 Device Context 是設(shè)備的一個(gè)私有結(jié)構(gòu),該結(jié)構(gòu)可以有任意的大小和結(jié)構(gòu)。本書(shū)提供的驅(qū)動(dòng)程序骨架附帶了一個(gè)簡(jiǎn)單的 DEVICE_CONTEXT 結(jié)構(gòu),該結(jié)構(gòu)定義于 TestDrv.h 中。該結(jié)構(gòu)僅包含分別指向設(shè)備和設(shè)備驅(qū)動(dòng)程序?qū)ο蟮膬蓚€(gè)指針。你可以擴(kuò)展該結(jié)構(gòu)來(lái)保存設(shè)備驅(qū)動(dòng)程序所特有的數(shù)據(jù)。系統(tǒng)針對(duì)驅(qū)動(dòng)程序接收到的每個(gè) I/O 請(qǐng)求包( I/O Request Packet, IRP )提供相應(yīng)的 Device Context 。

在 DriverInitialize() 成功完成并返回后, DriverEntry() 將建立一個(gè)重要的數(shù)組,該數(shù)組由系統(tǒng)傳入,并做為驅(qū)動(dòng)程序?qū)ο蠼Y(jié)構(gòu) ----pDriverObject 的一部分。該數(shù)組為驅(qū)動(dòng)程序期望的所有 IRP 提供空間,同時(shí) DriverEntry() 還為所有希望得到控制的 IRP 寫(xiě)入對(duì)應(yīng)的 CallBack 函數(shù)的指針。本書(shū)提供的驅(qū)動(dòng)程序骨架遵循此種設(shè)計(jì),它保存了一個(gè) DriverDispatcher() 指針,并提供了可存放 28 個(gè) IRP 的空間,如 3-2 所示。稍后, DriverDispatcher() 將決定需要注意那些類(lèi)型的 IRP ,并針對(duì)所有不感興趣的 IRP 返回 STATUS_NOT_IMPLEMENTED 。需要注意的是, Windows NT 和 Windows 2000 的 IRP 處理例程數(shù)組的布局有一些微妙的差別。在 3-2 中,這種差別以黑體標(biāo)識(shí)出來(lái)。

譯注:

在 Windows NT 中,大多數(shù)的 I/O 請(qǐng)求都是用 I/O 請(qǐng)求包( IRP )來(lái)表示的。在多數(shù)情況下, I/O 請(qǐng)求包可以從一個(gè) I/O 系統(tǒng)組件轉(zhuǎn)移到另一組件。這種設(shè)計(jì)允許單個(gè)應(yīng)用程序線程并行的管理多個(gè) I/O 請(qǐng)求。 IRP 是一種數(shù)據(jù)結(jié)構(gòu),包含描述一個(gè) I/O 請(qǐng)求的完整信息。

具體的細(xì)節(jié),請(qǐng)參考《 Inside Windows 2000 》的第 9 章 I/O System

typedef struct _UNICODE_STRING

{

WORD Length;

WORD MaximumLength;

PWORD Buffer;

} UNICODE_STRING, *PUNICODE_STRING;

列表 3-5. 一個(gè)普遍存在的 Windows 2000 結(jié)構(gòu): UNICODE_STRING

元素

Windows NT 4.0

Windows 2000

0x00

IRP_MJ_CREATE

IRP_MJ_CREATE

0x01

IRP_MJ_CREATE_NAMED_PIPE

IRP_MJ_CREATE_NAMED_PIPE

0x02

IRP_MJ_CLOSE

IRP_MJ_CLOSE

0x03

IRP_MJ_READ

IRP_MJ_READ

0x04

IRP_MJ_WRITE

IRP_MJ_WRITE

0x05

IRP_MJ_QUERY_INFORMATION

IRP_MJ_QUERY_INFORMATION

0x06

IRP_MJ_SET_INFORMATION

IRP_MJ_SET_INFORMATION

0x07

IRP_MJ_QUERY_EA

IRP_MJ_QUERY_EA

0x08

IRP_MJ_SET_EA

IRP_MJ_SET_EA

0x09

IRP_MJ_FLUSH_BUFFERS

IRP_MJ_FLUSH_BUFFERS

0x0A

IRP_MJ_QUERY_VOLUME_INFORMATION

IRP_MJ_QUERY_VOLUME_INFORAMTION

0x0B

IRP_MJ_SET_VOLUME_INFORMATION

IRP_MJ_SET_VOLUME_INFORMATION

0x0C

IRP_MJ_DirectorY_CONTROL

IRP_MJ_DIRECTORY_CONTROL

0x0D

IRP_MJ_FILE_SYSTEM_CONTROL

IRP_MJ_FILE_SYSTEM_CONTROL

0x0E

IRP_MJ_DEVICE_CONTROL

IRP_MJ_DEVICE_CONTROL

0x0F

IRP_MJ_INTERNAL_DEVICE_CONTROL

IRP_MJ_INTERNAL_DEVICE_CONTROL

0x10

IRP_MJ_SHUTDOWN

IRP_MJ_SHUTDOWN

0x11

IRP_MJ_LOCK_CONTROL

IRP_MJ_LOCK_CONTROL

0x12

IRP_MJ_CLEANUP

IRP_MJ_CLEANUP

0x13

IRP_MJ_CREATE_MAILSLOT

IRP_MJ_CREATE_MAILSLOT

0x14

IRP_MJ_QUERY_SECURITY

IRP_MJ_QUERY_SECURITY

0x15

IRP_MJ_SET_SECURITY

IRP_MJ_SET_SECURITY

0x16

IRP_MJ_QUERY_POWER

IRP_MJ_POWER

0x17

IRP_MJ_SET_POWER

IRP_MJ_SYSTEM_CONTROL

0x18

IRP_MJ_DEVICE_CHANGE

IRP_MJ_DEVICE_CHANGE

0x19

IRP_MJ_QUERY_QUOTA

IRP_MJ_QUERY_QUOTA

0x1A

IRP_MJ_SET_QUOTA

IRP_MJ_SET_QUOTA

0x1B

IRP_MJ_PNP_POWER

IRP_MJ_PNP

表 3-2. 數(shù)組中的每個(gè) I/O 請(qǐng)求包的比較

在 IRP 數(shù)組建立好之后, DriverEntry() 將自己的 CallBack 函數(shù) ----DriverUnload() 寫(xiě)入驅(qū)動(dòng)程序?qū)ο蠼Y(jié)構(gòu)中,這將允許在運(yùn)行時(shí)卸載該驅(qū)動(dòng)程序。 DriverUnload() 函數(shù)只是簡(jiǎn)單的銷(xiāo)毀由 DriverInitialize() 創(chuàng)建的所有對(duì)象(即設(shè)備對(duì)象和其符號(hào)鏈接)。在此之后,就可安全的將驅(qū)動(dòng)程序從系統(tǒng)中移除。

每當(dāng)一個(gè)模塊要求驅(qū)動(dòng)程序做出相應(yīng)時(shí),就會(huì)調(diào)用 DriverDispatcher() 函數(shù)。因?yàn)椋?qū)動(dòng)程序能夠處理多個(gè)設(shè)備, Dispatcher 首先檢查那個(gè)設(shè)備應(yīng)該響應(yīng)該請(qǐng)求。本書(shū)提供的驅(qū)動(dòng)程序骨架僅維護(hù)了一個(gè)設(shè)備,因此,僅需要在初始化時(shí)檢查從 IoCreateDevice() 接受到的設(shè)備對(duì)象指針是否一致。如果一致, DriverDispatcher() 將接收到的 IRP 向前傳遞,給之前的 DriverDispatcher() 函數(shù),隨之傳遞的還有 DriverInitialize() 準(zhǔn)備好的 Device Context 。當(dāng)你擴(kuò)展該驅(qū)動(dòng)骨架以管理多個(gè)設(shè)備驅(qū)動(dòng)程序時(shí),你可能需要為每個(gè)設(shè)備編寫(xiě)?yīng)毩⒌?IRP dispatcher 。 列表 3-3 中的 DeviceDispatcher() 函數(shù)只是一個(gè)示意性的實(shí)現(xiàn),它僅能識(shí)別三種常見(jiàn)的請(qǐng)求: IRP_MJ_CREATE 、 IRP_MJ_CLEANUP 和 IRP_MJ_CLOSE ,并通過(guò)返回 STATUS_SUCCESS 來(lái)表示以處理該請(qǐng)求。這是使設(shè)備能夠正常打開(kāi)、關(guān)閉的最小實(shí)現(xiàn)方式,對(duì)于其他的請(qǐng)求都將返回一個(gè) STATUS_NOT_IMPLEMENTED 。

你可能想知道在 列表 3-3 的 DISCARDABLE FUNCTIONS 一節(jié)中出現(xiàn)的 #pragma alloc_text 的目的。 #pragma 指示符是將命令送往編譯器和鏈接器的有力手段。 alloc_text 命令表示將指定函數(shù)的代碼寫(xiě)入可執(zhí)行文件的非默認(rèn) section 中。默認(rèn)情況下,所有程序代碼都位于 .text section 。然而,指示符 #pragma alloc_text(INIT,DriverEntry) 將使 DriverEntry() 的代碼保存在一個(gè)新的 section----INIT 中。驅(qū)動(dòng)加載器可以識(shí)別這種指定的 section ,并在初始化之后丟掉該 section 。 DriverEntry() 和它的幫助函數(shù) DriverInitialize() 僅在驅(qū)動(dòng)程序啟動(dòng)時(shí)會(huì)被調(diào)用一次;因此,當(dāng)它們完成自己的工作后,就可安全的將它們從內(nèi)存中移除。

現(xiàn)在驅(qū)動(dòng)程序骨架就只剩下了資源腳本 ---TestDrv.rc ,如 列表 3-6 所示。該文件沒(méi)有太大價(jià)值,因?yàn)樗鼉H引用了來(lái)自 DrvInfo.h 的宏 ----DRV_RC_VERSION 以及向?qū)峁┑膸讉€(gè)數(shù)據(jù)項(xiàng)來(lái)創(chuàng)建一個(gè) VERSIONINFO 資源,另一個(gè)宏 ---DRV_RC_ICON 則等同于將 TestDrv.ico 加入 TesetDrv.sys 的 Resource Section 中的 ICON 聲明語(yǔ)句。

// TestDrv.rc

// 08-07-2000 <MyName>

// Copyright ?2000 <MyCompany>

#define _RC_PASS_

#define _TESTDRV_SYS_

#include 'TestDrv.h'

// =================================================================

// STANDARD RESOURCES

// =================================================================

DRV_RC_VERSION

DRV_RC_ICON

// =================================================================

// END OF FILE

// =================================================================

列表 3-6. 驅(qū)動(dòng)程序骨架的資源腳本

標(biāo)簽: Windows系統(tǒng)
主站蜘蛛池模板: 国产97色在线 | 免 | 99精品国产在热久久婷婷 | 免费网站av | 91色蝌蚪 | 国产乱国产乱300精品 | 免费在线成人av | 国产疯狂伦交大片 | 免费久久久 | 一本色道久久综合亚洲精品婷婷 | xox0人妖国产另类 | 夜夜夜操| 免费久久久久久 | 中字幕视频在线永久在线观看免费 | 欧产日产国产精品 | 国产在线不卡视频 | 中文字幕在线观看一区二区 | 日本亚州视频在线八a | 久久和欧洲码一码二码三码 | 午夜激情四射 | 好吊色一区二区三区 | 一区视频在线播放 | 久久精品岛国av一区二区无码 | 香港三日本8a三级少妇三级99 | 再深点灬舒服灬大了添片在线 | 正在播放凉森玲梦88av | 欧美11—12娇小xxxx | 国产怡红院 | 五月天综合激情 | 亚洲成av人片在www色猫咪 | 免费观看性生交大片女神 | 国产成人无码综合亚洲日韩 | 色香五月 | 欧美香蕉视频 | 亚洲va在线va天堂xxxx中文 | 成人永久免费 | 看黄a大片日本真人视频直播 | 黄色av免费播放 | 蜜桃视频一区二区 | 国产韩国精品一区二区三区久久 | 人人澡人人爽 | 亚洲视频在线免费 | а√天堂资源中文在线官网九色 | 国产精品久久久影视青草 | 黄网站色视频免费观看 | 国语对白精品 | 久久频这里精品99香蕉 | 亚洲资源在线播放 | 美女av一区二区三区 | 亚洲精品激情视频 | 亚洲精品自产拍在线观看亚瑟 | 国产95在线 | 欧美 | 女人久久久久 | 国产91在线高潮白浆在线观看 | 久草福利资源站 | 亚洲国产成人av毛片大全 | 色噜噜一区二区 | 国产午夜精品理论片a级探花 | 国产五月婷婷 | 精品国产1区2区3区 精品国产31久久久久久 | 亚洲精品久久久久中文字幕二区 | 西西人体大胆4444www | 欧美日韩免费做爰大片人 | 有声小说 成人专区 | 国产精品乱码妇女bbbb | 小草久久久久久久久爱六 | 成人久久网 | 色91| 国产精品丝袜美腿一区二区三区 | 国产黄色高清视频 | 中文字幕精品无码一区二区 | 五月天91 | 久久国产精品久久精品国产 | 亚洲国产成人一区二区三区 | 欧美成人福利视频 | eeuss鲁片一区二区三区69 | 韩国极品少妇xxxxⅹ视频 | 好屌爽在线视频 | 成年午夜精品久久久精品 | 偷拍久久网 | 女女女女bbbbbb毛片在线 | 国产男女无遮挡猛进猛出 | 女人精69xxxⅹxx猛交 | 国产成人精品日本亚洲 | 久久精彩 | 日韩一级片免费观看 | 国产实拍会所女技师在线观看 | 喷水在线观看 | 久久综合资源 | 成人小视频在线 | 99国产精品99久久久久久 | 狠狠干夜夜骑 | 久久婷婷成人综合色 | 毛片久久久久 | 国产黄色成人 | 狂野欧美性猛交免费视频 | 亚洲 欧美 色图 | 欧美丰满少妇xxxx性 | 人善交另类亚洲重口另类 | 精品视频在线免费观看 | 日韩成人大屁股内射喷水 | 性一交一乱一乱一视频 | 精品一区二区不卡 | 天天综合网网欲色 | 欧美一区二区三区免费播放视频了 | 亚洲无色 | 麻豆精品视频在线观看 | 亚洲黄色一级大片 | 三级全黄的女人高潮叫 | 亚洲日韩精品无码专区加勒比 | 亚洲国产免费 | 台湾佬中文字幕 | 欧美大香线蕉线伊人久久 | 91久草视频 | 国产农村1级毛片 | 国产精品久久久久久久岛一牛影视 | 婷婷丁香五月激情综合 | 日韩特黄色片子看看 | 国产福利视频在线 | 日本午夜啪啪 | 中文字幕第一页永久有效 | 黄色一级片毛片 | 亚洲v| 国产 欧美 日韩 一区 | 国产欧美日韩在线观看 | 一道本在线视频 | 久久黄色网 | 视频一区二区欧美 | 一区二区三区四区中文字幕 | 99久久精品一区二区 | 成人性生交7777 | 国产做爰全免费的视频黑人 | 国产理论在线观看 | 台湾chinesehdxxxx少妇 | 国产又爽又黄无码无遮挡在线观看 | 日本xxxx高清 | 肉大榛一进一出免费视频 | 国产成人三级在线观看视频 | 一 级做人爱全视频在线看 亚洲成a∨人片在线观看不卡 | 一区免费在线 | 亚欧视频在线观看 | 综合伊人久久 | 精品一卡二卡三卡 | 深夜视频在线看 | 色综合久久av | 中文无码人妻有码人妻中文字幕 | 国产999精品成人网站 | 一本久道高清无码视频 | 中文字幕 欧美日韩 | 寂寞的日本美妇 | 一级特黄特色的免费大片视频 | 一级做性色α爱片久久毛片色 | 亚洲最大成人在线视频 | 欧美精品久久久久久久久老牛影院 | 免费公开在线视频 | 日韩三级a | 青草青草视频2免费观看 | 粉嫩av一区二区老牛影视 | 小视频在线观看 | 主播粉嫩国产在线精品 | 久久综合一区二区 | 蜜桃传媒av免费观看麻豆 | 美女张开腿黄网站免费 | 狠狠综合亚洲综合亚洲色 | 水果派av解说在线观看 | 97视频免费观看2区 97视频网站 | 成人免费无码大片a毛片抽搐 | 九九热精品国产 | 性色av浪潮av | 香蕉97超级碰碰碰免费公开 | 欧美第一页浮力影院 | 俺来也av | 国产做无码视频在线观看浪潮 | 女人下边被添全过视频的网址 | 日本三级一区二区三区 | 天天操天天操天天射 | 好吊妞这里只有精品 | 香蕉视频在线免费播放 | 少妇白浆高潮无码免费区 | 国产草草草| 九久久| 粉嫩欧美一区二区三区高清影视 | 久久久视频在线 | 日本不卡在线播放 | 欧美久久综合网 | 亚洲在线天堂 | 成人欧美日韩 | 9lporm自拍视频区九色 | 黄色aaaaa | 好紧好爽好湿别拔出来视频男男 | 六月婷婷av | 男男成人高潮片免费网站 | 日韩久久免费视频 | 黄色福利 | 蜜桃精品免费久久久久影院 | 婷婷综合久久中文字幕蜜桃三电影 | 中文无码日韩欧 | 青草视频在线 | 欧美性开放视频 | av自拍一区 | 久久精品国产一区 | 中文字幕熟妇人妻在线视频 | 精品国产一区二区三区四区精华 | 四虎黄色影院 | 乌克兰少妇videos高潮 | 两性囗交做爰视频 | 久久久久久久久久久中文字幕 | 玩弄放荡人妻一区二区三区 | 精品国产a∨无码一区二区三区 | 国产在线播放av | 调教+趴+乳夹+国产+精品 | 草在线 | 国产综合影院 | 91第一页| 国产美女爆我菊免费观看88av | 国产裸体舞一区二区三区 | 欧美粗又长 | 夜夜欢天天干 | 国产精品成人免费 | 久久裸体视频 | 草草影院最新 | 人妻激情偷乱一区二区三区 | 人妻 偷拍 无码 中文字幕 | 国产成人精品手机在线观看 | 亚洲欧美日韩成人在线 | 成人av免费看 | 九草影院 | 好吊妞在线观看 | 毛茸茸熟妇丰满张开腿呻吟性视频 | 欧美第五页| 国产小视频在线观看 | 婷婷丁香五 | 久久精品久久99 | 日本黄色动态图 | 日韩精品无码免费一区二区三区 | 成人在线观看一区二区 | 在线观看中文字幕网站 | 999久久久久 | 亚洲第一天堂av | 污片免费网站 | 日韩女人性猛交 | 影音先锋国产精品 | 久久免费播放视频 | 欧美另类一区 | 久久国产高清 | 舌头伸进添得好爽高潮欧美 | 蘑菇av| 国产精品一区二区av不卡 | 国产精品一久久香蕉国产线看观看 | 无码国产69精品久久久久孕妇 | www.成人精品 | 99久久精品国产成人一区二区 | 国产无遮挡18禁网站免费 | 鲁丝一区二区三区 | 久久96 | 国产特级毛片aaaaaaa高清 | 精品国产乱码久久久久久竹菊影视 | 少妇人妻偷人精品一区二区 | 三级黄色片免费观看 | 国产女女调教女同 | 人妻丰满熟av无码区hd | 成人看片资源 | 精品aⅴ一区二区三区 | 一色综合 | 亚洲色图13p | 噼里啪啦在线高清观看免费 | 中文字幕丰满孑伦无码专区 | 椎名由奈中文字幕 | 日本少妇久久 | 午夜色大片在线观看 | 性欧美激情 | 日韩高清亚洲日韩精品一区 | 色成人亚洲 | 久久久久成人网站 | 第一毛片 | 免费啪啪网 | 亚洲自拍偷拍另类 | 波多野结衣不卡视频 | 国产免费激情视频 | 综合激情五月婷婷 | 爽欲亲伦97部 | 一级特黄bbbbb免费观看 | 免费人成自慰网站 | 18黄暴禁片在线观看 | 九色九一 | 国产精品久久久久久久久久免费 | 一区二区三区视频免费在线观看 | 老人与老人免费a级毛片 | 孕妇爱爱视频 | 黄色a级免费| 国产三级成人 | 少妇性色av| 精品无码人妻被多人侵犯av | 韩国一区二区三区美女美女秀 | 国产日产精品久久快鸭的功能介绍 | 高辣h文乱乳h文男男双性视频 | 67194熟妇在线直接进入 | 极品av在线| 正在播放久久 | 丰满熟女人妻中文字幕免费 | 免费在线日韩 | 亚洲v欧美v另类v综合v日韩v | 国产视频亚洲精品 | 老司机免费在线视频 | 欧美最猛性xxxxx免费 | 欧美午夜理伦三级在线观看 | www日本在线| 青娱乐99 | 国产综合色视频 | 日韩av免费在线看 | 欧美 唯美 清纯 偷拍 | 黄色美女毛片 | 性日本xxx | 日本一区二区不卡在线观看 | 国产亚洲精品美女久久久久 | 潘金莲性生交大片免费看图片 | 中文字幕日韩一区二区三区不卡 | 永久免费的啪啪网站免费观看 | 我要看免费的毛片 | 中文人妻熟妇乱又伦精品 | 少妇99 | 无码熟妇αⅴ人妻又粗又大 | 亚洲精品久久久蜜夜影视 | 伊人久久大香 | 成人区人妻精品一熟女 | 寂寞少妇让水电工爽hd | 午夜国产在线观看 | 精品美女久久久久 | 中文字幕无码av波多野吉衣 | 精品欧美成人高清在线观看 | 日本精品毛片一区视频播 | 天天躁日日躁狠狠躁视频2021 | 俺去俺来也在线www色官网 | 狠狠躁夜夜躁人人躁婷婷视频 | 99精品视频免费热播在线观看 | 97精品国产97久久久久久免费 | 性久久久久久久久久 | 日本一级片在线观看 | 亚洲一区二区三区四区五区中文 | 爱情岛论坛亚洲品质自拍网址 | 成人久久18免费 | 无码人妻丰满熟妇区96 | 欧美性久久久久 | 欧美中日韩在线 | 色哟哟国产seyoyo | 亚洲国产日韩在线视频 | 婷婷丁香五月中文字幕 | 久久品| 97国产精品 | 亚洲深深色噜噜狠狠网站 | 天堂在线中文字幕 | 国产sm主人调教女m视频 | 欧美人与动牲交免费观看网 | 国产黄在线 | 性欧美精品高清 | 热re99久久精品国99热线看 | 色香影院 | 小说区 图片区色 综合区 | 一边吃奶一边做爰爽到爆视频 | 少妇又紧又色又硬又爽 | 最新国产一区 | 国产精品无码免费播放 | 欧洲一区二区在线观看 | 经典一区二区 | 老女人老91妇女老热女 | 久久国产二区 | 免费观看国产精品 | 在线只有精品 | 好吊妞国产欧美日韩免费观看网站 | 国产色网站 | 免费无码毛片一区二三区 | 国产999精品成人网站 | 九色丨porny丨肥臀 | 成 人影片 免费观看 | 81国产精品久久久久久久久久 | 懂色av一区二区三区观看 | 男受被做哭激烈娇喘gv视频 | 极品白嫩的小少妇 | 国产精品久久久久久久久久大牛 | 日韩精品人妻系列无码专区免费 | 久久久黄色一级片 | 一级全黄少妇性色生活片 | 一级免费在线 | 久久久99日产 | 五月香婷婷 | 美女综合网 | 少妇高潮21p | 自拍亚洲一区欧美另类 | 中文在线а天堂中文在线新版 | 中文无码精品一区二区三区 | 国产全是老熟女太爽了 | 青青视频在线免费观看 | 东北少妇av| 国产香蕉尹人视频在线 | 亚洲一级中文字幕 | 性色av香蕉一区二区 | 丰满少妇大力进入av亚洲 | 日本网站免费 | 中国精学生妹品射精久久 | 亚洲天堂2020 | 色综合久久88色综合天天 | 天天看片黄色 | 国产乱码一区二区三区咪爱 | 无码乱人伦一区二区亚洲一 | 亚洲一区二区三区四区的 | 亚洲第一页在线 | 欧美精品综合 | 日韩三级一区二区 | 青春草国产视频 | 亚洲一区在线免费 | 日韩一级影视 | 亚洲日韩va无码中文字幕 | 西西裸体性猛交乱大xxxx | 香蕉影院在线 | 大肉大捧一进一出好爽视频mba | 成人调教视频 | 色av综合av综合无码网站 | 警花系列乱肉辣文小说 | xxx国产在线观看 | 无套内射蜜桃小视频 | 国产无套粉嫩白浆内谢网站 | 国产在线精品一区二区三区 | 99精产国品一二三产区网站 | 国内国外精品影片无人区 | 国产在线一区二区三区四区 | 黄色免费成人 | 91午夜精品 | 国产做a爰片久久毛片a片美国 | 肥臀熟女一区二区三区 | 国产免费av网址 | 国产精品伦一区二区三级视频 | 翘臀后进娇喘呻吟的少妇91 | 福利视频网站 | 中文字幕二区在线观看 | 欧美成人看片一区二区三区尤物 | 成人在线三级 | 99热九九这里只有精品10 | yy77777丰满少妇影院 | 高潮毛片无遮挡高清免费 | 上原亚衣加勒比在线播放 | 黄色av片三级三级三级免费看 | 无码一区二区三区视频 | 69精品丰满人妻无码视频a片 | wwww亚洲熟妇久久久久 | 久久99精品久久久久久琪琪 | 中文字幕无码精品亚洲资源网久久 | 日韩毛片一区二区三区 | ass日本丰满熟妇pics | 香蕉影院在线观看 | 国产精品综合久久久久久 | 久久性生活片 | 成人欧美在线 | 久久久久夜夜夜精品国产 | 国自产拍偷拍精品啪啪模特 | 国产精品涩涩涩视频网站 | 精品一卡2卡三卡4卡免费网站 | 亚洲欧美精品久久 | 人妻人人做人碰人人添 | 少妇av一区| 成人免费黄色 | 日韩区欧美久久久无人区 | 亚洲国产a∨无码中文777 | 国产香蕉精品视频 | www夜片内射视频日韩精品成人 | 无码人妻精品一区二区三 | 亚洲国产女人aaa毛片在线动漫 | 第四色男人天堂 | 日韩精品在线网站 | 91国偷自产一区二区使用方法 | 96国产精品| 日本在线观看a | www.成人av.com | 国外处破女一区二区 | 女人做爰视频偷拍 | 久草福利资源站 | 狠狠色丁香婷婷久久综合考虑 | 欧产日产国产精品98 | 免费一级片在线观看 | 中文字幕午夜 | 亚洲乱视频 | 九九久久国产 | 精品偷拍被偷拍在线观看 | 天天躁日日躁狠狠躁视频2021 | 亚洲精品第一区二区三区 | 精品国产一区二区三区久久狼黑人 | 久久精品免费观看 | 东北女人啪啪对白 | 欧美一区内射最近更新 | 老司机伊人 | 99re久久资源最新地址 | 日日躁夜夜躁狠狠久久av | 免费黄网站在线观看 | 黄色小视频在线看 | 最新天堂资源在线 | 成人性生交片无码免费看 | 日本添下边视频全过程 | 日本妞vs黑人巨大xxxxx | 天堂一码二码专区 | 亚洲欧美一区二区在线观看 | 国产丝袜美女一区二区三区 | 黄色毛片在线播放 | 九九黄色片 | 欧美巨大双龙性猛交乱大 | 亚洲日韩一区二区 | 成人伊人网 | 亚洲最大的黄色网 | 日韩一区三区 | 国产欧美日韩高清 | 99在线成人精品视频 | 日日噜噜夜夜狠狠久久av小说 | 精品午夜一区二区三区在线观看 | 午夜激情啪啪 | 午夜影院0606 | 国自产拍偷拍精品啪啪模特 | 小婕子伦流澡到高潮h | 成人在线免费网址 | 午夜免费播放观看在线视频 | 亚洲网站av| 精品国产一二三产品价格 | 中国精品久久 | 久久亚洲色www成人欧美 | 97免费在线视频 | 图片区小说区激情区偷拍区 | 国产精品视频免费在线观看 | 一本加勒比hezyo无码专区 | 看免费真人视频网站 | av不卡在线播放 | 9l视频自拍九色9l视频视频 | 亚洲精品一品区二品区三品区 | 精品久久久久成人码免费动漫 | 麻豆国产人妻欲求不满谁演的 | 国产女人40精品一区毛片视频 | 婷婷开心色四房播播 | 成人在线免费观看网站 | 亚洲无毛女 | 成人二三区 | 亚洲天堂一| 国产亚洲精品久久久久久网站 | 99久久精品国产片果冻的功能特点 | 日韩有码中文字幕在线观看 | 3344永久在线观看视频免费 | 伊人www22综合色 | 美女福利视频 | 亚洲va韩国va欧美va精品 | 91在线网站 | 国产美女精品视频免费播放软件 | 欧美视频中文在线看 | 九色porny丨入口在线 | 亚洲成av人片在线观看 | 国产一区二区三区中文字幕 | 久久99精品国产麻豆婷婷小说 | 波多野结衣在线播放视频 | 亚洲色偷拍区另类无码专区 | 日本精品入口免费视频 | 全国最大成人免费视频 | 亚洲欧美一区二区三区在线 | 色婷婷精品久久二区二区蜜臂av | 青草一区二区 | 国产精品国语对白 | 久久久久一区二区三区四区 | 亚洲激情三区 | 一级免费黄色大片 | 91亚洲精选 | 精品免费久久 | 久久久久久久久蜜桃 | 久久综合五月丁香六月丁香 | 日韩另类视频 | 国产伦久视频免费观看视频 | 亚洲中文字幕无码天然素人在线 | 欧美疯狂xxxxxbbbbb | av影片在线观看 | 国产精品国产三级国快看 | 女生毛片| 中文字幕大香视频蕉免费 | 日韩久久久久久久 | 婷婷精品国产欧美精品亚洲人人爽 | 国产高清在线精品一区二区三区 | 特级毛片在线观看 | 欧美日韩在线影院 | 日韩高清成人 | 大学生三级中国dvd 大学生一级片 | 在线精品亚洲观看不卡欧 | 丝瓜色版 | 黄色片视频在线观看 | 免费黄色av片 | 青青青在线观看视频 | 久久久久久久岛国免费网站 | 看看黄色片 | 美女露隐私网站 | 小莹浴室激情2 | 午夜免费视频网站 | 久久久涩| 亚洲人成电影网站在线观看 | 91麻豆精品91久久久久同性 | 国产精品人成在线播放新网站 | 成人福利视频在 | 久久久久久高清 | 日本道之久久综合久久爱 | 国产一区二区三区四区五区密私 | 国产成人无码av片在线观看不卡 | 国产精品污www在线观看17c | 中文字幕人妻丝袜乱一区三区 | 久热网 | av中文字幕免费观看 | 中文字幕在线天堂 | 精品视频免费 | 国产xxx视频| 亚洲∧v久久久无码精品 | 欧美亚洲在线观看 | 日韩精品在线观看一区二区 | 国产 中文 字幕 日韩 在线 | 成年片色大黄全免费网站久久 | 国产免费视屏 | 免费色视频 | 亚洲视频h| 97色偷偷色噜噜狠狠爱网站 |