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

您的位置:首頁技術文章
文章詳情頁

句柄是什么?Windows結構體里面句柄的作用

瀏覽:156日期:2022-10-16 14:21:31

句柄是什么?在Windows中,句柄的存在就像指針的標識一樣,但這樣的答案顯示不是你們需要的。閑暇之余,筆者摘錄以下Windows句柄的解釋。用戶可以端著咖啡再看Windows結構體里面句柄的作用表述。

句柄是什么?Windows結構體里面句柄的作用

這里我列舉詞條中的關于句柄的敘述不當之處,至于如何不當先不管,繼續往下看就會明白:

句柄是什么?

Windows 之所以要設立句柄,根本上源于內存管理機制的問題—虛擬地址,簡而言之數據的地址需要變動,變動以后就需要有人來記錄管理變動,(就好像戶籍管理一樣),因此系統用句柄來記載數據地址的變更。

如果想更透徹一點地認識句柄,我可以告訴大家,句柄是一種指向指針的指針。

通常我們說句柄是Windows用來標識被應用程序所建立或使用的對象的唯一整數。這句話是沒有問題的,但是想把這句話對應到具體的內存結構上就做不到了。下面我們來詳細探討一下Windows中的句柄到底是什么。

一、虛擬內存結構

我們知道,CPU是通過尋址來訪問內存的。32位CPU的尋址寬度是 0~0xFFFFFFFF ,計算后得到的大小是4G,也就是說可支持的物理內存最大是4G。但在實踐過程中,碰到了這樣的問題,程序需要使用4G內存,而可用物理內存小于4G,導致程序不得不降低內存占用。

為了解決此類問題,現代CPU引入了 MMU(Memory Management Unit 內存管理單元)。

MMU 的核心思想是利用虛擬地址替代物理地址,即CPU尋址時使用虛址,由 MMU 負責將虛址映射為物理地址。MMU的引入,解決了對物理內存的限制,對程序來說,就像自己在使用4G內存一樣。

內存分頁(Paging)是在使用MMU的基礎上,提出的一種內存管理機制。它將虛擬地址和物理地址按固定大小(4K)分割成頁(page)和頁幀(page frame),并保證頁與頁幀的大小相同。這種機制,從數據結構上,保證了訪問內存的高效,并使OS能支持非連續性的內存分配。在程序內存不夠用時,還可以將不常用的物理內存頁轉移到其他存儲設備上,比如磁盤,這就是大家耳熟能詳的虛擬內存。

1、虛擬地址與物理地址需要通過映射,才能使CPU正常工作。

而映射就需要存儲映射表。在現代CPU架構中,映射關系通常被存儲在物理內存上一個被稱之為頁表(page table)的地方。

如下圖:

句柄是什么?Windows結構體里面句柄的作用

從這張圖中,可以清晰地看到CPU與頁表,物理內存之間的交互關系。

進一步優化,引入TLB(Translation lookaside buffer,頁表寄存器緩沖)。

由上一節可知,頁表是被存儲在內存中的。我們知道CPU通過總線訪問內存,肯定慢于直接訪問寄存器的。

為了進一步優化性能,現代CPU架構引入了TLB,用來緩存一部分經常訪問的頁表內容。

如下圖:

句柄是什么?Windows結構體里面句柄的作用

在中間加入了TLB。

2、為什么要支持大內存分頁?

TLB是有限的,這點毫無疑問。當超出TLB的存儲極限時,就會發生 TLB miss,之后,OS就會命令CPU去訪問內存上的頁表。如果頻繁的出現TLB miss,程序的性能會下降地很快。

為了讓TLB可以存儲更多的頁地址映射關系,我們的做法是調大內存分頁大小。

如果一個頁4M,對比一個頁4K,前者可以讓TLB多存儲1000個頁地址映射關系,性能的提升是比較可觀的。

簡而言之,虛擬內存將內存邏輯地址和物理地址之間建立了一個對應表,要讀寫邏輯地址對應的物理內存內容,必須查詢相關頁表(當然現在有還有段式、段頁式內存對應方式,但是從原理上來說都是一樣的)找到邏輯地址對應的物理地址做相關操作。我們常見的對程序員開放的內存分配接口如malloc等分配的得到的都是邏輯地址,C指針指向的也是邏輯地址。

這種虛擬內存的好處是很多的,這里以連續內存分配和可移動內存為例來講一講。

首先說一說連續內存分配,我們在程序中經常需要分配一塊連續的內存結構,如數組,他們可以使用指針循環讀取,但是物理內存多次分配釋放后實際上是破碎的,如下圖

句柄是什么?Windows結構體里面句柄的作用

圖中白色為可用物理內存,黑色為被其他程序占有的內存,現在要分配一個12大小的連續內存,那么顯然物理內存中是沒有這么大的連續內存的,這時候通過頁表對應的方式可以看到我們很容易得到邏輯地址上連續的12大小的內存。

再說一說可移動內存,我們使用GlobalAlloc等函數時,經常會指定GMEM_MOVABLE和GMEM_FIXED參數,很對人對這兩個參數很頭疼,搞不明白什么意思。

實際上這里的MOVABLE和FIXED都是針對的邏輯地址來說的。GMEM_MOVABLE是說允許操作系統(或者應用程序)實施對內存堆(邏輯地址)的管理,在必要時,操作系統可以移動內存塊獲取更大的塊,或者合并一些空閑的內存塊,也稱“垃圾回收”,它可以提高內存的利用率,這里的地址都是指邏輯地址。同樣以分配12大小連續的內存,在某種狀態時,內存結構如下

句柄是什么?Windows結構體里面句柄的作用

顯然這時候是無法分配12連續大小的內存,但是如果這里的邏輯地址都指明為GMEM_MOVABLE的話,操作系統這時候會對邏輯地址做管理,得到如下結果:

句柄是什么?Windows結構體里面句柄的作用

這時候就實現了邏輯地址的MOVE,相對比實現物理內存的移動,這樣的代價當然要小得多撒,但是聰明的小伙伴們是不是要問,這樣在邏輯地址中移動了內存,那么實際訪問數據不都亂套了嗎,還能找到自己分配的實際物理內存數據嗎,等等,不要心急,這就是等下要講的句柄做的事情了。

GMEM_FIXED是說允許在物理內存中移動內存塊,但是必須保證邏輯地址是不變的,在早期16位Windows操作系統不支持在物理內存中移動內存,所以禁止使用GMEM_FIXED,現在的你估計體會不到了。

事實上用GlobalAlloc分配內存時指定GMEM_FIXED參數返回的句柄就是指向內存分配的內存塊的指針,不理解???接著看下面的句柄結構,你就明白了。

二、句柄結構

在上面講解虛擬內存結構的過程中,我們就引出了幾個問題:MOVABLE的內存訪問為什么不會亂,FIXED的內存為什么說就是指向分配內存塊的指針。

事實上我們盡管Windows沒有給出源碼,但是從一些頭文件、MSDN和Windows早期內存分配函數中我們還是可以一窺端倪。

在Winnt.h頭文件中做了通用句柄的定義:

01#ifdef STRICT02typedef void *HANDLE;03#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name04#else05typedef PVOID HANDLE;06#define DECLARE_HANDLE(name) typedef HANDLE name07#endif08typedef HANDLE *PHANDLE;復制代碼#ifdef STRICTtypedef void *HANDLE;#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name#elsetypedef PVOID HANDLE;#define DECLARE_HANDLE(name) typedef HANDLE name#endiftypedef HANDLE *PHANDLE;

在Windef.h做了特殊句柄的定義:

01#if !defined(_MAC) || !defined(GDI_INTERNAL)02DECLARE_HANDLE(HFONT);03#endif04DECLARE_HANDLE(HICON);05#if !defined(_MAC) || !defined(WIN_INTERNAL)06DECLARE_HANDLE(HMENU);07#endif08DECLARE_HANDLE(HMETAFILE);09DECLARE_HANDLE(HINSTANCE);10typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */11#if !defined(_MAC) || !defined(GDI_INTERNAL)12DECLARE_HANDLE(HPALETTE);13DECLARE_HANDLE(HPEN);14#endif15DECLARE_HANDLE(HRGN);16DECLARE_HANDLE(HRSRC);17DECLARE_HANDLE(HSTR);18DECLARE_HANDLE(HTASK);19DECLARE_HANDLE(HWINSTA);20DECLARE_HANDLE(HKL);復制代碼#if !defined(_MAC) || !defined(GDI_INTERNAL)DECLARE_HANDLE(HFONT);#endifDECLARE_HANDLE(HICON);#if !defined(_MAC) || !defined(WIN_INTERNAL)DECLARE_HANDLE(HMENU);#endifDECLARE_HANDLE(HMETAFILE);DECLARE_HANDLE(HINSTANCE);typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */#if !defined(_MAC) || !defined(GDI_INTERNAL)DECLARE_HANDLE(HPALETTE);DECLARE_HANDLE(HPEN);#endifDECLARE_HANDLE(HRGN);DECLARE_HANDLE(HRSRC);DECLARE_HANDLE(HSTR);DECLARE_HANDLE(HTASK);DECLARE_HANDLE(HWINSTA);DECLARE_HANDLE(HKL);

這里微軟把通用句柄HANDLE定義為void指針,顯然啦,他是不想讓人知道句柄的真實類型,但是和他以往的做法一樣,微軟空有一個好的想法結果沒有實現。馬上,如果定義了強制類型檢查STRICT,他又定義了特殊類型句柄宏DECLARE_HANDLE,這里用到了##,這是比較偏僻的用法,翻譯過來,對于諸如DECLARE_HANDLE(HMENU)定義其實就是

01typedef struct HMENU__02{03int unused;04} *HMENU;復制代碼typedef struct HMENU__{int unused;} *HMENU;

到這里,你是不是覺得有一點眉目了呢,對,句柄是一種指向結構體的指針,結合這里的int unused定義很容易猜到結構體的第一個字段就是我們的邏輯地址(指針)。那么,是不是僅僅如此呢,當然不是!!!由于指向結構體指針可以強制截斷只獲取第一個字段,這里的struct結構體絕對不止一個字段,聯系我們在Windows中的編程經驗,對于線程HANDLE有計數那么必須有計數段,對于事件HEVENT等內核對象會要求指定屬性那么必須有屬性段,對于內存分配HANDLE有可移動和不可移動之說那么必須有內存可移動屬性段,等等。基于此我們可以大膽猜測Windows的句柄指向的結構類似如下

01struct02{03int pointer;//指針段04int count; //內核計數段05int attribute; //文件屬性段:SHARED等等06int memAttribute; //內存屬性段:MOVABLE和FIXED等等07...08};復制代碼struct{int pointer;//指針段int count; //內核計數段int attribute; //文件屬性段:SHARED等等int memAttribute; //內存屬性段:MOVABLE和FIXED等等...};

事實上,Windows內存管理器管理的其實都是句柄,通過句柄來管理指針,Windows的系統整理內存時檢測內存屬性段,如果是可以移動的就能夠移動邏輯地址,移動完后將新的地址更新到對應句柄的指針段中,當要使用MOVABLE地址時的時候必須Lock住,這時候計數加1,內存管理器檢測到計數》0便不會移動邏輯地址,這時候才能獲得固定的邏輯地址來操作物理內存,使用完后Unlock內存管理器又可以移動邏輯地址了,到此MOVABLE的內存訪問為什么不會亂這個問題就解決了。

下面再說一說,FIXED的內存為什么說就是指向分配內存塊的指針。我們看上面的通用句柄定義,可以發現HANDLE的句柄定義一直是void指針,其他的特殊句柄在嚴格類型檢查的時候定義為結構體指針,為什么不把二者定義為一樣的呢。查看MSDN關于GlobalAlloc的敘述對于GMEM_FIXED類型“Allocates fixed memory. The return value is a pointer.”,這里返回的是一個指針,為了驗證這個說法,我寫了一小段程序

01//GMEM_FIXED02hGlobal = GlobalAlloc(GMEM_FIXED, (lstrlen(szBuffer)+1) * sizeof(TCHAR));03pGlobal = GlobalLock(hGlobal);04lstrcpy(pGlobal, szBuffer);05_tprintf(TEXT("pGlobal和hGlobal%sn"), pGlobal==hGlobal ? TEXT("相等") : TEXT("不相等"));06GlobalUnlock(hGlobal);07_tprintf(TEXT("使用句柄當做指針訪問的數據為:%sn"), hGlobal);08GlobalFree(hGlobal);復制代碼//GMEM_FIXEDhGlobal = GlobalAlloc(GMEM_FIXED, (lstrlen(szBuffer)+1) * sizeof(TCHAR));pGlobal = GlobalLock(hGlobal);lstrcpy(pGlobal, szBuffer);_tprintf(TEXT("pGlobal和hGlobal%sn"), pGlobal==hGlobal ? TEXT("相等") : TEXT("不相等"));GlobalUnlock(hGlobal);_tprintf(TEXT("使用句柄當做指針訪問的數據為:%sn"), hGlobal);GlobalFree(hGlobal);

運行結果為

01pGlobal和hGlobal相等02使用句柄當做指針訪問的數據為:Test text復制代碼pGlobal和hGlobal相等使用句柄當做指針訪問的數據為:Test text

對比使用GMEM_MOVABLE程序為

01//GMEM_MOVABLE02hGlobal = GlobalAlloc(GMEM_MOVEABLE, (lstrlen(szBuffer)+1) * sizeof(TCHAR));03pGlobal = GlobalLock(hGlobal);04lstrcpy(pGlobal, szBuffer);05_tprintf(TEXT("pGlobal和hGlobal%sn"), pGlobal==hGlobal ? TEXT("相等") : TEXT("不相等"));06_tprintf(TEXT("使用句柄當做指針訪問的數據為:%sn"), hGlobal);07GlobalUnlock(hGlobal);08GlobalFree(hGlobal);復制代碼//GMEM_MOVABLEhGlobal = GlobalAlloc(GMEM_MOVEABLE, (lstrlen(szBuffer)+1) * sizeof(TCHAR));pGlobal = GlobalLock(hGlobal);lstrcpy(pGlobal, szBuffer);_tprintf(TEXT("pGlobal和hGlobal%sn"), pGlobal==hGlobal ? TEXT("相等") : TEXT("不相等"));_tprintf(TEXT("使用句柄當做指針訪問的數據為:%sn"), hGlobal);GlobalUnlock(hGlobal);GlobalFree(hGlobal);

運行結果為

01pGlobal和hGlobal不相等02使用句柄當做指針訪問的數據為:?pGlobal和hGlobal不相等使用句柄當做指針訪問的數據為:?

顯然,使用GMEM_FIXED和使用GMEM_MOVABLE得到的數據類型不是一樣的,我們有理由相信Windows在調用GlobalAlloc使用GEM_FIXED的時候返回的就是數據指針,使用Windows在調用GMEM_MOVABLE的時候返回的是指向結構體的句柄,這樣操作的原因相信是為了使用更加方便。那么這里我們就要修正一下前面的說法了:通用句柄HANDLE有時候是邏輯指針,大多數時候是結構體指針,特殊句柄如HMENU等是結構體指針。這樣第二個問題也解決了。

三、總結:

句柄是什么?Windows結構體里面句柄的作用

下面,我們再回頭看一看博文開頭說的敘述不當之處,說他們不當是因為不是完全錯誤:第一點,確實句柄有管理內存地址變動之用,但是并不只是這個作用,內核對象訪問級別、文件是否打開都是和他相關的;第二點,指向指針的指針,看得出來作者也是認真思考了的,但是他忽略了句柄包含的其他功能和管理內存地址的作用。

那么到這里對于句柄你應該非常理解了,在此基礎我們在Windows編程上是不是可以有一些啟發:

1、通用句柄HANDLE和特殊句柄一般情況下是可以相互轉換的,但是有時候會出錯。

2、如果不考慮跨平臺移植的話,應該多采用Windows SDK提供的內存管理函數,這樣可以獲得更好的內存管理。

3、C語言的內存分配函數的實現都是依靠使用GMEM_FIXED調用Windows SDK的內存分配函數的。

注意可能在新的VS2005等系列編譯器中看不到本文說的一些內容,因為在VC6時候有些代碼還不是那么完善,所以給了我們機會去挖掘潛在的內容。至于微軟苦心積慮不讓我們看到句柄的真實定義那是必然的,試想一下主要的內存對象結構都被摸清楚了,那么黑客們還不反了天了。

至此,用戶應該明白句柄是什么了吧,其實在不同的領域中,句柄的作用都是差不多的,可以作為一個標識的作用。

標簽: Windows系統
相關文章:
主站蜘蛛池模板: 国产精品女同一区二区 | 国产一区二区三区乱码 | 西西午夜 | 色综合久久中文综合网 | 欧美高清videos高潮hd | 国产又粗又大又爽视频 | 日韩有码在线视频 | 久久久久久亚洲精品成人 | 国产婷婷色一区二区三区 | 97久久精品亚洲中文字幕无码 | 性欧美牲交在线视频 | 亚洲人免费视频 | 激情午夜av | 日本天堂在线 | 五月激情婷婷丁香 | 丁香婷婷激情 | 美女黄网站成人免费视频 | 懂色av一区二区 | 成人av在线看 | 性欧美又大又长又硬 | 国产天码视频网站 | 免费看黄色a级片 | 国产午夜一级片 | 久久成人免费视频 | 国产毛多水多高潮高清 | 羞羞视频在线观看免费观看 | 欧美人妻aⅴ中文字幕 | 99精彩视频| 国产jk精品白丝av在线观看 | 69久久夜色精品国产69蝌蚪网 | 国产做爰xxxⅹ久久久精华液 | 级毛片内射视频 | 国产人成免费爽爽爽视频 | mm131尤物让人欲罢不能日本 | 欧美老女人性生活视频 | www.xxxx国产| 成人性生交大片免费看视频hd | 欧美三级午夜理伦三级小说 | 91爱爱视频 | 777777777少妇流水视频 | 91午夜少妇三级全黄 | 国产精品久久久久久久久久三级 | 亚洲啪啪少妇裸体艺术 | 色婷婷av一区二区三区之e本道 | 91风间由美一区二区三区四区 | 成人国产精品齐天大性 | 日本xxxx裸体xxxx视频大全 | 天堂视频免费在线观看 | 国产一区二区三区免费视频 | 欧美图片一区二区三区 | 国产乱淫av | 精品福利一区二区三区免费视频 | a毛片基地 | 日本大胆裸体做爰视频 | 99久热re在线精品99re8热视频 | 韩国女主播av | 这里只有精品免费视频 | 色爽爽爽爽爽爽爽爽 | 黄色av网站免费看 | 欧美日韩在线网站 | 久久精品欧美日韩精品 | 国产91在线看 | 国产精品女同 | 99国产视频| 毛片大片 | 日韩免费专区 | 日韩精品亚洲人成在线观看 | 91av免费看| 亚洲国产精品视频一区 | 中文字幕一区二区三区精彩视频 | 精品乱码一区二区三区四区 | 亚洲人成网站色www 久久在线视频免费观看 | 丰满少妇xbxb毛片日本视频 | 性色av无码不卡中文字幕 | 真人做爰免费毛片视频 | 日韩欧美成人精品 | 东南亚末成年videos | 一级一片免费观看 | 干美女视频 | 无码夜色一区二区三区 | 伊人久久无码中文字幕 | 日本美女一级片 | 最近高清中文字幕免费 | 天堂va蜜桃一区二区三区 | 台湾女老板性三级 | 亚洲精品国产精品乱码不卡√香蕉 | 久久99精品久久久久 | 91在线视频免费 | 一边摸一边抽搐一进一出视频 | 欧美成人午夜精品久久久 | 四虎网站免费观看视频 | 欧美巨大另类极品videosbest | 欧美孕妇变态重口另类 | 亚洲乱亚洲乱妇无码麻豆 | 亚洲国产中文字幕在线视频综合 | 国产丝袜在线观看视频 | 无码成人一区二区 | 国产激情精品一区二区三区 | 日韩欧美在线观看视频 | 乌克兰黄色片 | 九九久久精品无码专区 | 国产人人爱 | 成人毛片18女人毛片免费 | 色涩av| 欧美日韩字幕 | 成人久久久久 | 青柠影视在线观看免费高清中文 | 久久国产精品影视 | aaa大片十八岁禁止 aa爱做片免费 | 亚洲成a人片在线观看天堂无码 | 98国产精品综合一区二区三区 | 成人午夜看片 | 欧美亚洲韩国 | 成年人午夜免费视频 | 亚洲三级小说 | 少妇人妻互换不带套 | 狠狠影院 | 99国产精品久久久久久久久久 | 日本少妇做爰全过程二区 | 亚洲九九夜夜 | 亚洲精品专区 | 久久久www成人免费无遮挡大片 | 91亚洲狠狠婷婷综合久久久 | 国产人妻一区二区三区四区五区六 | 天天鲁夜夜免费观看视频 | 欧美疯狂做受xxxx富婆 | 亚洲精品视频一区二区 | 亚洲精品v天堂中文字幕 | 亚洲一区日韩精品 | 天天拍夜夜添久久精品 | 中文字幕日韩人妻不卡一区 | 欧美日韩高清一区 | 欧美三级免费观看 | 亚洲v国产v| 91精品老司机久久一区啪 | 国产精品久久久久久无码 | 国产伦精品视频一区二区三区 | 91视频久久 | 日韩成人在线视频 | 亚洲欧美精品午睡沙发 | 特黄少妇60分钟在线观看播放 | 国产传媒在线 | 九九99九九精彩6 | 国产精品久久久久久婷婷动漫 | 成人影视网址 | 少妇大叫太大太爽受不了 | 亚洲成a人蜜臀av在线播放 | 国产精品伦一区二区三级视频永妇 | 精品一区二区不卡无码av | 青草影院内射中出高潮 | 狠狠影院 | 国产人与禽zoz0性伦免费视频 | 91精品国产综合久久国产大片 | 精品一区二区三区欧美 | 91成年人网站 | 久久久区 | 国产做爰视频 | 伊人久久无码中文字幕 | 喷水白丝蜜臀av久久av | 亚洲视频中文字幕在线观看 | 欧美又粗又长又爽做受 | 亚洲一区在线视频 | 男女高潮又爽又黄又无遮挡 | 国产精品理伦片 | 国产情趣视频 | 国产露脸精品国产探 | 久久中文免费视频 | 污污的视频在线免费观看 | 亚洲 丝袜 另类 校园 欧美 | 国产成人精品一区二三区在线观看 | 国产精品国产精品国产专区不蜜 | 国产精品免费久久久久影院 | 日本做爰全过程免费的叫床 | 777精品国产乱码久777 | 成 人 网 站 免 费 av | 色多多导航 | 天天噜噜噜在线视频 | 黑料福利| 2024亚洲男人天堂 | 欧美gv在线观看 | 亚洲爱婷婷色婷婷五月 | 粉嫩一区二区三区四区公司1 | 一本色道久久hezyo无码 | 在线色图 | 国产精品久久久久乳精品爆 | 亚洲韩欧美第25集完整版 | 国产精品户外野外 | av福利在线免费观看 | 国产黄色大片网站 | 亚洲另类中文字幕 | 尤物视频在线观看免费 | 亚洲国产精品va在线 | 强开乳罩摸双乳吃奶羞羞www | 日本精品久久久久久久 | 精品成人一区二区 | 国产呻吟久久久久久久92 | 久久久亚洲欧洲日产国码αv | 中出 在线 | 大胆欧美熟妇xx | 午夜在线网址 | 国产91精品一区二区麻豆网站 | 中文字幕乱码一区av久久不卡 | 日韩精品av久久有码一区浪潮 | 国产精品乱码高清在线观看 | 麻花豆传媒mv在线观看网站 | 欧美高清精品一区二区 | 另类小说色综合 | 一级黄色片国产 | 无码无套少妇毛多18pxxxx | 日韩网站在线观看 | 天天做天天爱天天综合网2021 | 欧美一区免费观看 | 毛片内射久久久一区 | 少妇太紧太爽又黄又硬又爽小说 | 亚洲人成电影网站在线播放 | 国产日韩视频 | 亚洲97在线 | www亚洲成人 | 激情第四色 | 国产精品无码aⅴ嫩草 | 亚洲国产精品视频 | 国产精品呻吟久久av凹凸 | 欧美巨波霸乳影院 | 欧美 偷窥 清纯 综合图区 | 亚l州综合另中文字幕 | 在线第一页 | 免费久久精品视频 | 亚洲最新无码中文字幕久久 | www.色亚洲 | 日本精品中文字幕 | 又黄又爽又色的免费软件 | 成熟妇人a片免费看网站 | 牛牛视频精品一区二区不卡 | 永久免费的啪啪网站免费观看浪潮 | 国产网红女主播精品视频 | 国产精品51麻豆cm传媒的特点 | 免费啪视频在线观看 | 国产精品成久久久久三级6二k | 国产精品处女 | 无码国产精品一区二区vr老人 | 亚洲综合精品视频 | 丰满岳乱妇在线观看中字无码 | 亚洲熟妇色xxxxx亚洲 | 国产精品视频麻豆 | 欧美激情国产日韩精品一区18 | 成人黄色毛片 | 久久爱稳定资源365 久久爱综合 | 欧美性折磨bdsm激情另类视频 | 日本黄色xxxx| 亚洲乱码中文字幕在线 | 日韩欧美综合 | 久久综合色视频 | 国产中文网 | 一区自拍| 国产精品视频入口 | 国产精品婷婷 | 国产毛片久久久久久美女视频 | 欧美午夜精品一区二区三区 | 日韩成人精品 | 91亚洲日本aⅴ精品一区二区 | 亚洲午夜在线播放 | 国产成人影视 | 成人韩免费网站 | 每日更新在线观看av | 天天夜夜爽 | 狠狠干很很操 | av小说亚洲| 国产一区精品视频 | 国产精品777 | av在线导航 | 欧美三级欧美成人高清 | 国产午夜精品av一区二区 | 亚洲无吗在线观看 | 国产福利免费 | av香港经典三级级 在线 | 中文av字幕 | 丰满少妇夜夜爽爽高潮水网站 | 久久高清毛片 | 一级特黄色毛片 | 欧美国产日韩久久mv | 国产网红主播av国内精品 | 国产超碰| 全国最大的成人网 | www.激情五月 | 日韩欧美的一区二区 | av午夜影院| 中国一级黄色毛片 | 综合色婷婷一区二区亚洲欧美国产 | 国产精品99久久久久人中文网介绍 | 欧美三级韩国三级日本三斤 | 无码人妻精品一区二区三区免费 | 最新超碰 | 国产精品羞羞答答xxdd | 国产果冻豆传媒麻婆 | 四虎国产精品免费观看视频优播 | 男女啪啪猛烈无遮挡猛进猛出 | 日本乱轮视频 | 在线色综合| 丁香激情综合久久伊人久久 | 国产一级性生活片 | 超碰v | 中文字幕在线视频免费 | 9i看片成人免费 | 午夜精品久久久久久久99芒果 | 亚洲阿v天堂 | 色版视频在线观看 | 18精品爽视频在线观看 | 在线播放无码高潮的视频 | 91pony九色| 欧美一乱一交一性ed2k | 国产午夜片 | 韩国av不卡 | 伦理一级片 | 99精品国产综合久久久久五月天 | 一个人在线观看免费视频www | 好屌草这里只有精品 | 精品久久久久久久久久国产潘金莲 | 国语自产偷拍精品视频偷 | 日韩欧美视频在线播放 | 国模视频一区 | 日本麻豆一区二区三区视频 | 日韩经典第一页 | 中文字幕有码无码人妻av蜜桃 | 日批免费网站 | 自拍偷拍欧美亚洲 | av不卡在线免费观看 | 亚洲精品无码成人aaa片 | 久99热| 午夜一二区 | 无码播放一区二区三区 | 国产亚洲欧美日韩在线一区二区三区 | 日本精品视频免费 | 麻豆久久久9性大片 | 夫妇交换性三中文字幕 | 中国字幕一色哟哟 | 无尺码精品产品网站 | 夜夜春夜夜爽 | 亚洲精选在线观看 | 欧美亚洲视频在线观看 | 美国一级特a黄 | 日韩视频免费在线播放 | 午夜福利理论片高清在线观看 | 国产午夜亚洲精品理论片色戒 | 毛片毛片女人毛片毛片 | 亚洲国产精品久久网午夜 | 人人妻人人澡人人爽超污 | 国产色站 | 亚洲黄色小视频在线观看 | 国产亚洲精品精品国产亚洲综合 | 韩国无码无遮挡在线观看 | 啪啪av | 91精品国产91久久久久久久久 | 国产精品一区二区在线观看网站 | 亚洲gv猛男gv无码男同 | 国产爆乳美女娇喘呻吟 | 人妻中出无码一区二区三区 | 无码人妻丰满熟妇区96 | 久久久久久久女国产乱让韩 | 最新黄色网址在线观看 | www国产亚洲精品久久网站 | 久久国产欧美日韩 | 小拗女一区二区三区 | 放荡闺蜜高h苏桃情事h | 欧美午夜精品 | 中国女人内谢69xxxxxa片 | 亚洲国产欧美另类 | 在线观看91精品国产网站 | 精品在线视频一区 | 韩国三级 女的和老头做 | 欧美阿v高清资源不卡在线播放 | 欧美视频在线观看一区二区 | 国产裸体写真av一区二区 | 亚洲日韩精品无码专区加勒比 | 国产成人涩涩涩视频在线观看 | 新国产三级在线观看播放 | 国产精品欧美久久久久天天影视 | 欧美大波乳人伦免费视频 | 久欠精品国国产99国产精2021 | 国产免费自拍视频 | 精品一区二区三区免费观看 | 国模冰莲大胆自慰难受 | 国产精品视频一区二区免费不卡 | 桃色五月 | 2022久久国产露脸精品国产 | 欧美日韩一区二区成人午夜电影 | 亚洲婷婷在线 | 中国少妇xxxⅹ性xxxx | 亚洲人成手机电影网站 | 日韩av网址大全 | 精品国产一区二区在线 | 国产免费无码一区二区三区 | 亚洲午夜精品毛片成人播放器 | 亚洲女人天堂色在线7777 | 色婷婷影院| 91av视频在线播放 | 亚洲精品国产a久久久久久 51国偷自产一区二区三区 | 欧美aaaaaaaaaa| 国产精品一二三区成毛片视频 | 国产精品夜夜嗨视频免费视频 | 国产精品久久免费观看spa | 强行从后面挺进人妻 | 超碰不卡 | 一色屋精品久久久久久久久久 | 少妇羞涩呻吟乳沟偷拍视频 | 欧美一区二区三区粗大 | 免费的av在线 | 福利视频99| 久久亚洲国产成人影院 | 少妇与子乱毛片 | 欧美伦理片 | 成人性生交大片免费看视 | 国产av激情无码久久 | 一个人看的www日本高清视频 | 日韩精品一区二区三区第95 | 精品人妻中文无码av在线 | 五月激情五月婷婷 | 黄色一区二区三区四区 | 天天人人综合 | 日日干夜夜撸 | 亚洲精品国产偷自在线观看 | 在线aa| 国产福利一区二区三区在线观看 | 性做久久久久久久 | 免费视频爱爱太爽了激情 | 久久精品欧美日韩 | www国产国人免费观看视频 | av色哟哟| 亚洲第一大网站 | 国产精品亚洲а∨无码播放不卡 | 成人爽a毛片一区二区免费 成人爽爽爽 | 女教师高潮黄又色视频 | 国产色视频播放网站www | 欧美综合激情网 | 九九国产精品视频 | 无码少妇精品一区二区免费动态 | 久久久久久久久久久大尺度免费视频 | 亚洲小视频网站 | 天天看黄色片 | 国产精品日产欧美久久久久 | 日日干天天操 | 国产八十老太另类视频 | 怡红院av亚洲一区二区三区h | 韩国和女邻居做爰2三级 | 黄桃av无码免费一区二区三区 | 久章草在线精品视频免费观看 | 久久99精品国产麻豆不卡 | 欧美激情伊人 | 一女被多男玩喷潮视频 | 中文字幕免费中文 | 99久久精品免费看国产免费软件 | 天生舞男在线 | 三级第一页 | 国产精品3p视频 | 久久久久亚洲精品无码网址 | 精品国产一区二区三区四区五区 | 97精品国产97久久久久久免费 | 亚洲aaa视频 | 人人超碰97 | 激情久久一区 | 国产精品一区二区久久久久 | 97视频免费观看 | 国产乱国产乱老熟300部视频 | 中文字幕欧美久久日高清 | 一级特黄录像免费观看 | 精品无人区一区二区 | 亚洲精品人| 可以看的av网站 | 中文字幕免费在线观看视频 | 中文字幕在线欧美 | 91综合中文字幕乱偷在线 | 中文字幕在线观看免费 | av片网站| tube少妇高潮 | 一本一本久久a久久综合精品 | 亚洲乱码国产乱码精品天美传媒 | www.youjizz.com日本 | 日本色一区 | 黄a视频| 娇小萝被两个黑人用半米长 | 深夜福利啪啪片 | 人妻换人妻a片爽麻豆 | 精品国产成人 | 日韩一级淫片 | 日本公妇乱淫hd | 丁香六月色婷婷 | 风间由美一区二区三区 | 日本三级中文字幕在线观看 | 三级毛片视频 | 新久草在线视频 | 欧美又粗大人妖一进一出 | 欧美黄一级 | 国产99久久精品一区二区永久免费 | 乱人伦人妻中文字幕不卡 | 日韩一级在线观看视频 | 中文字幕第一页在线 | 欧美一区二区日韩国产 | a男人的天堂久久a毛片 | 亚洲一区二区蜜桃 | 国产精品久久久久久久久毛片 | 毛片网止| 92看看福利1000集合集免费 | 国产亚洲视频一区 | 亚洲色无码国产精品网站可下载 | 国产又色又爽又黄又免费 | 欧美综合自拍亚洲综合图片区 | 天天躁天天狠天天透 | 精品亚洲国产成人av | 国产精品成人一区二区三区夜夜夜 | 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | 国模精品一区二区三区 | av在线短片 | 少妇视频在线播放 | 国产精品精品久久久 | 国产美女在线精品免费观看 | 日韩黄色片子 | 狠狠狠狠狠 | 亚洲免费网站在线观看 | 毛片链接 | 国内露脸少妇精品视频 | 国产成人无码免费看片软件 | 中文字幕在线不卡 | 天堂网视频在线 | 奶大交一乱一乱一视一频 | 国产精品乱子伦免费视频 | 丰满肉嫩西川结衣av | 久久黄色小视频 | 香蕉精品视频在线观看 | 国产一区二区三区四 | 少妇捆绑紧缚av | 免费成人深夜夜行网站视频 | 久久99精品国产麻豆婷婷洗澡 | 天堂av无码av一区二区三区 | 欧美xxxxxx片免费播放软件 | 久久综合99re88久久爱 | 亚洲欧美天堂 | 97成人在线视频 | 日日碰狠狠躁久久躁 | 亚洲成人一区在线 | 久久亚洲精品中文字幕无男同 | 亚洲四区| 日本最大色倩网站www | 免费看毛片基地 | 奇米777狠狠色噜噜狠狠狠 | 欧美在线观看成人 | 中文字幕在线视频免费视频 | 少妇人妻偷人精品无码视频 | 黄色av免费观看 | 99久久精品国产第一页 | 欧美激情中文字幕 | 欧美一进一出抽搐大尺度视频 | 中文av一区二区三区 | 午夜性生活视频 | 欧美精品久久久久久久久大尺度 | 人人妻人人澡人人爽久久av | 亚洲永久精品在线观看 | 日韩成人小视频 | 五月综合久久 | aⅴ在线免费观看 | 天干天干天啪啪夜爽爽99 | 97夜夜澡人人爽人人喊91洗澡 | 欧美综合自拍亚洲综合图 | 久久久亚洲精品无码 | 午夜免费学生在线观看av | 国产传媒在线 | 色播久久人人爽人人爽人人片av | 91成熟丰满女人少妇 | 级r片内射在线视频播放 | 免费观看成人毛片 | 亚洲欧美日韩国产成人精品影院 | 国产精品欧美久久久久久 | wwwwww日本| 亚洲国产91 | 无码av最新无码av专区 | hitomi一区二区三区精品 | 麻豆一区二区三区精品视频 | 国产精品高潮呻吟三区四区 | 亚洲欧美一区二区三区四区 | 久久免费精彩视频 | 国产7777777 | 亚洲精品无码永久在线观看性色 | 婷婷开心激情综合五月天 | 久久女女 | 国产在aj精品 | 日本免费高清视频 | 亚洲激情中文字幕 | 好吊色国产欧美日韩免费观看 | 成熟女人牲交片免费观看视频 | 国产精品人人爽人人做av片 | 久久男人av资源网站无码软件 | 国内精品第一页 | 男女性杂交内射妇女bbwxz | 黄色大全免费看 | 亚洲精品成人悠悠色影视 | 欧美精品一区二区三区在线四季 | 欧美成人免费一区二区 | 依人在线| 少妇激情一区二区三区视频小说 | 欧美成人一区二免费视频 | 国产无套粉嫩白浆内精在线网站 | 国产在线精品无码二区 | 国产aaaaaa| 欧美人与野鲁交xxx视频 | 午夜大片免费看 | 二区三区偷拍浴室洗澡视频 | 亚洲一二三四视频 | 中文字幕欧美久久日高清 | 亚洲成人基地 | 超碰人人做 | av鲁丝一区鲁丝二区鲁丝三区 | 久久久888| 992tv成人国产福利在线 | 91在线看视频| 乱中年女人伦av三区 | 黄色大视频 | 偷拍亚洲综合20p |