隔離擴展和設備驅動程序的配置的制作方法

            文檔序號:6569455閱讀:268來源:國知局
            專利名稱:隔離擴展和設備驅動程序的配置的制作方法
            隔離擴展和設備驅動程序的配置
            背景
            諸如操作系統的軟件系統一般伴隨有用于執行各種任務的軟件模塊的預 定義集合。這些模塊彼此相關聯,因為它們均是同一預定義集合的一部分。
            然而,通常需要附加的功能和/或定制。換言之,功能被"擴展"。 一般, 軟件系統通過允許動態添加新軟件模塊或進程來允許擴展。這些添加通常被稱 為"擴展"或"插件"。常規系統中擴展或插件的常見示例包括但不限于操
            作系統的設備驅動程序、數據庫中擴展的存儲過程、web瀏覽器中的插件和 ActiveXTM控件、web服務器中的ISAPI內容和過濾器擴展、用戶交互外殼的 外殼擴展等。由擴展添加的功能范圍遍及硬件驅動程序的更新版本的簡單支持 到對電子郵件客戶端中工作流工具的病毒掃描器。然而,用于集成擴展的常規 方法是有問題的。
            例如,常規操作系統("OS")通過將一組可執行指令加載到內核保護 域中來加載擴展。 一旦驅動程序被安裝到該地址空間中時,常規內核不能阻止 所加載的擴展訪問計算系統中的任何(或所有)硬件。因此,惡意制作或惡意 的擴展可能會在OS內核中造成破壞。
            設備驅動程序是在操作系統中找到的一類擴展。設備驅動程序是將操作系 統擴展成訪問特定的一個或一類設備的軟件模塊。例如,IDE驅動程序允許操 作系統訪問附連于IDE存儲控制器的磁盤驅動程序。設備驅動程序執行重要功 能,從諸如特定廠商的存儲控制器等與特定硬件對話的機械提取操作系統或應 用程序所理解的常見功能,諸如讀寫磁盤存儲塊。盡管設備驅動程序通常訪問 物理設備,但本領域的技術人員可以認識到,設備驅動程序也可提供對虛擬資 源的訪問,或可分層以添加附加的功能——諸如位于存儲控制器的設備驅動程 序上方的壓縮驅動程序。
            設備驅動程序的復雜程度在最近的十年來顯著增長,因為用戶開始期望諸 如熱交換和電源管理等豐富的特征。眾多常規操作系統以各種方式響應,但就其核心而言,這些系統擁有與它們在十年前擁有的相同的驅動程序模型。
            與擴展一樣,常規操作系統("OS")通過將可執行指令加載到內核保 護域中來加載設備驅動程序。 一旦驅動程序被安裝到該地址空間中,常規內核 就不能阻止所加載的驅動程序訪問計算系統中的任何(或所有)硬件。
            而且,由于這些驅動程序一般用低級原語編寫以直接訪問硬件,常規內核 很少驗證驅動程序僅使用適當的硬件資源。相反,常規內核信任驅動程序將僅 訪問它聲稱服務的設備的硬件。而且,通常常規內核不能保證驅動程序被正確 配置、驅動程序將與被分配給活動進程的存儲器或甚至與被分配給常規內核內 其它組件的存儲器相關。
            因此,常規驅動程序是OS中的最不可靠的組件之一。某些報告指出,在
            最流行的常規OS中85%所診斷出的崩潰是因驅動程序而引起的。其它報告指 出,較不流行的常規OS的驅動程序與內核中的其它可執行指令相比,包含隱 錯的可能性高七倍。
            概述
            本文中描述了用于描述和/或解決軟件系統的應用程序、擴展、設備驅動 程序和其它組件的配置要求的一個或多個實現。
            提供該概述是為了以簡化的形式介紹將在以下在詳細描述中進一步描述 的一些概念。該概述不旨在標識所要求保護的主題的關鍵特征或本質特征,也 不旨在用于幫助確定所要求保護的主題的范圍。
            附圖簡述
            貫穿附圖,使用相同的標號來指示同樣的元素和特征。


            圖1是支持本文中描述的一個或多個實現的操作系統體系結構的操作場
            旦 眾o
            圖2是支持本文中描述的一個或多個實現的操作系統體系結構的框圖。 圖3是設備驅動程序進程內的對象及其與圖2中所示的操作系統體系結構 的其它部分的關系的框圖。
            圖4是本文中所述的另一方法實現的流程圖。詳細描述
            以下描述示出了用于描述和/或解決軟件系統的應用程序、擴展、設備驅 動程序和其它組件的配置要求的技術。
            常規擴展(例如,設備驅動程序)包括用于對計算資源——諸如輸入/輸
            出(I/O)、存儲器、視頻、聲音、中斷請求(IRQ)線或其它硬件——的直接 訪問的可執行指令。與常規擴展不同,根據本文中描述的一個或多個實現創建 的擴展(例如,設備驅動程序)經由一個或多個局部訪問對象來訪問計算資源, 這些對象是提供至計算資源的通路或橋梁的對象(即,具有一個或多個數據結 構的可執行指令)。
            采用一個或多個所述實現,擴展包含指定其配置要求(包括其對這些資源 的需求在內)的嵌入元數據。操作系統(OS)基于這些元數據確定擴展的計算 資源需求。OS提供必需的可執行指令(按局部訪問對象的形式)來分配所需 資源并將擴展連接至其進程外的計算資源。
            這種新的工作劃分向擴展的主機(一個或多個實施例中針對設備驅動程序 的的OS)提供了驗證所有配置要求并控制擴展對I/O或IPC資源的所有訪問 的能力。
            軟件隔離進程
            在計算機科學領域,更具體地在操作系統領域,術語"軟件進程"(或簡
            稱為"進程")是公知的。應用程序通常由一個或多個進程組成。操作系統(os)
            意識到并實際上可管理和監督運行在計算機上的一個或多個單獨的進程。 此處,進程包含可執行指令。程序模塊也包含可執行指令。 一個或多個進
            程可基于程序模塊執行。
            此處,擴展可被描述為程序模塊。而且,設備驅動程序是擴展的一個示例。
            此處所述的一個或多個實施例可經由隔離進程實現。在圖1的上下文中描述了
            隔離進程的上下文。
            此處描述了在允許和/或支持軟件隔離進程(SIP)抽象模型的配置的OS 模型中操作一個或多個實現。SIP封裝程序或系統,并提供信息隱藏、故障隔離和強接口。根據所述實現,SIP在OS和應用程序軟件中貫穿使用。
            圖1示出了 SIP構造的操作場景。它將進程構造體系結構100示為在計算 機120上存儲和/或執行的操作系統100的一部分。如圖1所示,進程構造體系 結構100可以是操作系統的一部分。或者,進程構造體系結構100的全部或部 分可與操作系統分開,但仍與操作系統協同工作。
            進程構造體系結構100在計算機的工作存儲器中根據由擴展組件集編輯
            的組成組件動態集構造進程。 一旦經構造之后,活動進程的可執行指令就是固 定的。 一旦被固定,活動進程就不常運行新的處理器可執行指令。為了這樣做, 進程一般用作為其一部分的新可執行指令重新構造,或創建新添的進程。 組成和擴展組件的動態集一般被表現為存儲在計算機存儲中的加載模塊
            集。進程構造體系結構100按照允許關于要執行進程的一個或多個各種屬性(例
            如,完整性、安全性、可靠性、可用性、資源使用分析、完整性分析和/或穩定 性)并為要執行的各種期望優化來分析的方式構造進程。
            計算機120包括計算機存儲設備122 (例如,硬盤驅動程序、RAID系統 等),它存儲一組加載模塊124和工作存儲器130。在圖l的示例中,進程構 造體系結構100構造存儲在工作存儲器130中的進程140。如此處所述地,進 程140是根據加載模塊124構造的,加載模塊124是由進程的擴展組件編輯的 進程的組成組件的表現。
            進程140具有進程清單142,它定義了進程140的最終內容。這些最終內 容的一部分包括由進程的擴展組件編輯的進程的組成組件。如此所述,進程清 單142與其描述組成的進程(諸如進程140)直接相關聯。
            在構造進程時,進程構造體系結構100可采用以下功能組件中的一個或多 個進程清單合成器150、鍵入碼表示創建器152、鍵入碼表示更新器154、優 化器156、鍵入碼表示轉換器158、進程間干擾消除器160以及固定身份創建 器162。盡管圖l將這些功能組件示為彼此分開,但這些功能組件中的一個或 多個的功能可被組合。
            "Inter-Process Communications Employing Bi-directional Message Conduits (采用雙向消息管道的進程間通信)"申請公開了支持可在SIP (以及os)之 中使用的進程間通信的OS模型的各組件。采用SIP,內核外的所有可執行指令在一SIP中執行,并通過強類型的通
            信通道與其它SIP通信。SIP是封閉的環境,它不允許數據共享或動態代碼加 載。SIP在眾多方面不同于常規OS進程。
            新內核(支持此處所述的實現,并由操作系統210表示)幾乎全部由安全 可執行指令和系統的其余部分組成,它在SIP中執行,由可驗證的安全可執行 指令組成,包括設備驅動程序、系統進程和應用程序。盡管所有不受信任的可 執行指令必須是可驗證安全的,但新內核和運行時系統中被稱為可信庫的部分 卻不是可驗證安全的。語言安全保護該可信庫免于不受信任的可執行指令的破 壞。而且,每一SIP的完整性依賴于指令安全以及進程不會保持對另一進程的 對象空間的引用的系統范圍不變性。
            進程間通信
            在至少一個所述實現中,SIP通過在通道上發送消息來排他地通信。通道
            是兩個進程之間雙向、行為類型的連接。消息是交換堆中從發送進程傳輸到接 收進程的值或消息塊的帶標簽集合。通道由契約定類型,契約指定消息的格式 和沿通道的有效消息序列。
            SIP通過調用契約的靜態NewChannd (新建通道)方法來創建通道,該 方法在其輸出參數中返回通道的兩個端點一一不對稱地被定為導出方和導入 方類型。
            SIP可通過現有的通道將端點中任一個或兩個端點傳遞給其它進程。接收 端點的進程具有至保存另一相應端點的進程的通道。例如,如果應用程序進程 想要與系統服務通信,則應用程序創建兩個端點并向系統名服務器發送包含一 個端點的請求,該服務器將端點轉發給服務,從而建立進程與服務之間的通道。
            通道上的發送是異步的。接收同步阻塞,直到特定的消息到達。使用語言 特征,線程可等待沿通道的一組消息中的第一個,或可等待來自不同通道的特 定的一組消息。當在通道上發送數據時,所有權從可能不會保留對消息的引用 的發送進程傳遞給接收進程。該所有權不變性由語言和運行時系統實施,并服 務于三個目的。第一是為防止進程之間的共享。第二是通過消除消息的指針混 疊來便于靜態程序分析。第三是通過提供可由復制或指針傳遞來實現的消息傳遞語義來允許實現的靈活性。 隔離可擴展性
            軟件創建者很少能預見其系統或應用程序的用戶所要求的全部功能。代替 嘗試以單一系統滿足每個人,最不平凡的軟件提供通過加載附加的可執行指令
            來擴充其功能的機制。例如,某些常規的市面上可購買的個人計算機操作系統
            支持超過100,000個第三方設備驅動程序,這使得OS能夠控制幾乎任何硬件
            設備。類似地,無數的因特網瀏覽器附件和擴展擴充了用于網頁的瀏覽器界面 和組件。甚至開放源項目提供"插件"機制,盡管這些項目潛在可修改,這是 因為擴展與新軟件版本相比更易于開發和分發。
            擴展通常由被動態加載至擴展的父親的地址空間內的可執行指令組成。采 用對父親的內部接口和數據結構的直接訪問,擴展可提供豐富的功能。然而, 這種靈活性是有大代價的。擴展是軟件可靠性、安全性和后向兼容性問題的主 要原因。盡管擴展可執行指令通常是不受信任、未經驗證、有缺陷或甚至是惡 意的,但它們在沒有任何硬件接口、邊界或主機與擴展之間的區分的情況下被 直接加載到程序的地址空間中。
            擴展通常是不可兼容性、不良功能或其它錯誤的源頭。而且,因為擴展缺 乏硬件接口,它可能變得依賴于其父親實現的細節,這限制了程序的將來版本 的發展,并要求大量的測試來避免不可兼容性。
            可執行指令的動態加載對性能和正確性造成其次的較不明顯的負擔。可動 態加載可執行指令的系統是其中難以或不可能對系統的狀態、不變性或有效轉
            換作出可靠假設的開放環境。考慮JavaTM虛擬機(JVM),其中在任何時候, 中斷、異常或線程切換可執行加載新文件、覆蓋類和方法體以及修改全局狀態 的指令。 一般而言,除了在環境不會在兩個可執行指令之間任意改變的不可靠 假設下以外,不存在分析在這樣的環境中運行的程序的可行方法。
            由本文中所述的一個或多個實現采用的新方法是禁止可執行指令的動態 加載并將動態創建的擴展隔離在其自己的環境中。遵循這些原則的以往的嘗試 未被廣泛使用,因為隔離機制具有性能和可編程性問題,這使得它們與在沒有 隔離的情況下運行的風險相比較不吸引人。最普遍的隔離機制是傳統的os進程,但其高昂的成本限制了它的可用性。
            現代處理器上的存儲器管理硬件向進程提供硬件邊界并保護處理器狀態,但它
            對進程間控制和數據傳輸強加了高昂的懲罰。在現代x86處理器上,進程之間 的切換可能會花費數百到數千個循環,不包括TLB和高速緩存重新填充未命 中。
            為可擴展性設計了更新的系統,諸如JavaTM虛擬機(JVM)和Microsoft 通用語言運行時(CLR),它們因此使用語言安全而非硬件作為隔離運行在同 一地址空間中的計算的機制。然而,安全語言本身可能是隔離的不充分保證。 共享數據提供計算的對象空間之間的路徑,在此點上反射API提供破壞數據抽
            象和信息隱藏的機制。因此,這些系統需要復雜的安全機制和策略,諸如JVM 精細粒度訪問控制或CLR的代碼訪問安全來控制對系統機制和接口的訪問。
            此外,共享運行時系統并在同一進程內執行的計算在發生故障時不被隔 離。當運行在JVM中的計算發生故障時,整個JVM進程一般被重新啟動,因 為難以隔離和丟棄被破壞的數據并找到沒有錯誤的一點來重啟發生故障的計 算。
            本文中所述的至少一個實現采用SIP來將系統組件的可執行指令封裝在 封閉環境中。對系統或應用程序的擴展在新的SIP中運行,并通過提供有限且 適當功能的通道與父親通信。如果擴展發生故障,則其SIP終止,這允許OS 回收資源并通知通信伙伴。由于這些伙伴未與擴展共享狀態,因此錯誤恢復是 局部的,且通過通道的明確協議來促進。
            本文中所述的一個或多個實現提供編譯時反射(CTR),它提供當編譯文 件來生成新的可執行指令時執行的功能。在運行時執行的正常反射具有對運行 時值的訪問權,且比CTR更普遍。然而,在眾多情況中,所需的新可執行指 令在執行之前己知。在這些情況中,CTR在編譯期間產生新的可執行指令。
            支持隔離設備驅動程序的配置的計算機體系結構
            某些常規設備驅動程序在沒有將驅動程序的可執行指令與內核的可執行 指令隔離的機制的情況下被加載到內核的地址空間以及硬件的保護域中。然 而, 一個或多個所述實現描述了支持隔離設備驅動程序的操作系統。圖2描述了支持隔離擴展和設備驅動程序的配置以及本文中所述的一個
            或多個實現的示例性操作系統(OS)體系結構200。如所述的,示例性OS體 系結構200示出內核210、 一個或多個設備驅動程序220、 一個或多個文件系 統230以及一個或多個應用程序240。本領域的技術人員可以認識到,OS可包 括在SIP中運行的其它OS服務,如文件系統330。
            內核210是控制對硬件資源的訪問、分配和回收存儲器、創建和調度線程、 提供進程內線程同步和管理1/0的特權系統組件。
            內核210提供OS的核心功能。這例如包括管理存儲器和其它硬件資源、 進程創建和終止、進程間通信、通道操作、調度和I/0。該內核210的一些組 件包括IO管理器211、調度器212、頁管理器213、設備驅動程序協調器214 和硬件抽象層(HAL) 215。
            該示例性OS體系結構200中的可執行指令或者經驗證或者可信。由編譯 器檢査經驗證指令的類型安全和存儲器安全。不可驗證的指令必須為OS所信 任,且被限于HAL215、內核210以及可信運行時324、 334和344中的部分。 內核的大部分是可驗證安全的。
            內核和可信運行時外的所有可執行指令用安全語言,諸如C弁或Java編寫, 翻譯成安全中間語言(諸如Microsoft⑧中間語言(MSIL)),然后由一個或 多個其它后端編譯器編譯成處理器可執行指令。
            可信運行時系統模糊了內核指令與SIP指令之間的分界線。可信運行時包 含可信但不可驗證的可執行指令。保護運行時可執行指令以免受SIP指令的影 響,因為SIP指令的經驗證類型安全阻止它們除通過安全接口以外與運行時系 統及其數據結構交互。在眾多情況中,后端編譯器可安全地將來自可信運行時 的指令內聯到SIP的其它可執行指令中,從而將傳統上在內核中運行的操作安 全地移入用戶進程中。
            設備驅動程序220的可執行指令包括由設備驅動程序的編程員編寫的指令 加上來自一個或多個類庫222及其可信運行時224的可執行指令。類似地,如 所述的,文件系統230包括來自類庫232及其可信運行時234的可執行指令。 而且,如所述的,應用程序240包括來自類庫242及其可信運行時244的可執 行指令。圖3描繪了與示例性設備驅動程序進程300內的配置有關的對象,及其與
            本文中所述的一個或多個實現所支持的示例性操作系統(OS)體系結構200 的其它部分的關系。如所述的,示例性OS體系結構200示出了OS內核210、 示例性設備驅動程序進程300以及硬件和其它計算資源350。
            OS內核310包括啟用進程間消息傳遞的一個或多個通道312。如所述的, 硬件和其它計算資源350包括I/O端口 352 (也被稱為I/O寄存器)、I/O存儲 器354、 DMA控制器356和中斷請求(IRQ)線358。當然,這些僅是一些硬 件和其它計算資源的示例。其它實現可包括其它常見和不常見的硬件,以及其 它計算資源。實現也可包括一個以上的I/O端口 352、 I/O存儲器354、 DMA 控制器356或中斷請求線358。某些實現可能不全包括這些類型的硬件資源。
            示例性設備驅動程序進程300包含實現設備驅動程序的功能的對象,即設 備驅動程序對象326。設備驅動程序進程300也包含可信運行時224、零個或 多個類庫222和配置對象328。
            設備驅動程序對象326是可信程序模塊的一個示例。與常規方法不同,未 給予設備驅動程序的可執行代碼自由的支配。然而,其動作也不能被監督或檢 査。相反,采用本文中所述的一個或多個實現,給予不可信設備驅動程序對計 算資源的有限集合的自由但間接的訪問權。
            可信運行時224包括居中調停對硬件和IPC資源的訪問權的訪問對象。這 些訪問對象包括(作為示例而非限制)1oPort332、 1oMemory334、 IoDma336、 Iolrq 338和端點340。可信運行時224中的訪問對象用作用于以下資源的通路
            oPort 332+1/0端口 352;
            IoMemory 334+存儲器354;
            IoDma 336+DMA通道356;
            k)Irq338+IRQ線358; *端點340+通道處理器312。
            與常規設備驅動程序不同,包含設備驅動程序對象326的可執行指令的文 件不包括配置設備驅動程序或直接訪問諸如350處所示的硬件和其它計算資源 的可執行指令。相反,設備驅動程序對象326中的可執行指令僅經由訪問對象 332、 334、 336、 338和340訪問硬件和其它計算資源,這些訪問對象的可執行指令被包含在可信運行時224內。
            創建配置對象328以及訪問對象332、 334、 336、 338和340的可執行指 令未被包括在由設備驅動程序程序員提供的文件中。相反,設備驅動程序程序 員嵌入配置需求作為附連于設備驅動程序的可執行指令的元數據。采用一個或 多個所述實現,用于創建配置對象328和訪問對象332、 334、 336、 338和340 的可執行指令是分開的,并與其余的設備驅動程序對象的可執行指令分開設 置。
            在一個或多個實現中,創建配置對象328的可執行指令由操作系統提供。 在一個實現中,這些可執行指令在安裝時使用編譯時反射(CTR)模板生成。 CTR模板處理作為元數據嵌入在設備驅動程序中所編碼的配置對象的描述內 的配置要求。在另一實現中,CTR模板處理清單,其部分是根據包含設備驅動 程序對象326的可執行指令的文件中的配置元數據創建的。在另一實現中,可 信運行時224中的可執行指令通過解釋配置元數據或設備驅動程序清單來創建 配置對象。
            示例性OS體系結構200在單獨的軟件隔離進程(SIP)中運行每一設備 驅動程序(諸如驅動程序220)。示例性OS體系結構200使用語言安全來驗 證沒有SIP能夠寫另一SIP的頁。封裝在SIP中,各個驅動程序可被按需停止 和重新啟動,而無需減慢整個操作系統。
            示例性OS體系結構200的程序在安裝時被靜態鏈接至可信運行時。盡管 針對類型安全而靜態驗證了程序,但每一可信運行時是其系統的可信計算庫 (TCB)的組件。可信運行時中的可執行指令保持進程隔離,從而允許進程在 主機處理器的特權/管理員模式中運行,而不能夠影響其它進程的存儲器和硬件 資源。在一個所述實現中,在由設備驅動程序編程員提供的可執行指令中不允 許可規避類型安全的動態反射或其它機制。
            設備驅動程序的可信運行時提供了抽象與硬件的通信的安全環境。通過由 驅動程序運行時展示的訪問對象保護用于處理中斷請求、訪問固定存儲器、訪 問I/0端口 (也被稱為I/0寄存器)以及控制直接存儲器訪問控制器(DMA) 的處理器可執行指令。
            所有的進程間通信(IPC)是通過強類型的雙向通道的。這些通道具有正好兩個端點。通道上的消息受限于值類型,且這些消息的格式由契約定義。契 約也用作指定通道上發送的消息的有效序列的通道協議,且包括發起通信的信 號交換步驟。應用程序遵循契約與否可被靜態驗證。
            某些端點具有公共名以便允許客戶機容易連接。這是通過單根、全局可訪
            問名空間來達成的。全局名空間服務器管理名空間,并允許名字到通道端點、 目錄和符號鏈接的映射。名空間不附連于持久后備存儲。相反,系統策略允許 某些應用程序(諸如文件系統)創建名空間內的虛擬子樹,并將內容映射到這 些樹中。這允許傳統文件系統的等效實現,區別在于文件訪問是通過通道抽象 進行的。
            示例性OS體系結構200具有用于將應用程序(諸如240)作為第一類實 體對待的抽象,這允許操作系統推出應用程序并提供保證。設備驅動程序是該 抽象的子類。而且,設備驅動程序安裝是由OS對應用程序執行的第一類操作。
            在示例性OS體系結構200中,設備驅動程序聲明其I/O和IPC配置要求。 在常規方法中,配置要求是不可發現的。此處,配置要求被編碼在設備驅動程 序的可執行指令的同一文件中。所編碼的配置要求可例如為更易于處理起見而 被轉換成聲明配置要求的獨立的規范。
            配置要求在編譯時、安裝時、引導時和執行時可驗證。實際上,將配置要 求編碼到設備驅動程序的同一文件中將其轉變成自描述產物。給定設備驅動程 序的MSIL程序集,OS可完全推出必須滿足以便設備驅動程序能正確運作的 配置前提(以及對軟件和硬件資源兩者的依賴性)。
            采用應用程序抽象和驅動程序配置聲明,示例性OS體系結構200可提供 關于由設備驅動程序使用的I/0和IPC資源的保證。例如,OS可通過將新設 備驅動程序所需的資源集與所有其它設備驅動程序使用的資源集進行比較并 檢查諸如I/0端口或I/0存儲器的范圍的資源重疊(從而是沖突),來在驅動 程序執行之前檢測配置沖突。在優選實施例中,在安裝時檢測配置沖突,且僅 在新設備驅動程序與包括所有之前安裝的設備驅動程序在內的系統的其余部 分之間不存在沖突時才允許安裝。
            作為另一示例,OS可通過從每一設備驅動程序中提取其配置依賴性,然 后對列表排序使得沒有設備驅動程序在其依賴對象之一之前初始化來創建有效的總引導次序——初始化設備驅動器的次序。有效總系統引導次序的自動創 建是優于以往系統的顯著的進步,在以往的系統中,或者引導次序是在開發時 硬編碼到OS中或者引導次序是由管理員手動更新的。作為從聲明性配置要求 得到的保證的最后一個示例,OS能夠生成與驅動程序的配置和資源的獲取相關的驅動程序初始化的所有可執行指令。因此,OS可保證,驅動程序僅使用所聲明的資源,且資源是在遵循系統策略的情況下獲取的。這些能力增加了系 統的可靠性和可維護性,而在運行時性能上沒有顯著代價。設備驅動程序協調與常規方法不同,本文中所述的一個或多個實現的設備驅動程序協調器214阻止驅動程序訪問不適當的存儲器位置或其它硬件資源。相反,設備驅動 程序協調器僅允許驅動程序訪問適當的存儲器位置和其它硬件資源。而且,代 替驅動程序直接訪問硬件和資源(這是常規方法允許的),內核210審査驅動 程序對硬件和資源的訪問。本文中所述的一個或多個實現具有由三個層組成的輸入/輸出(I/O)系統 HAL 214、 I/O管理器211和驅動程序220。 HAL 214是抽象對計算機硬件的訪 問的可信可執行指令的小型庫。例如,在一個實施例中,HAL實現用于操縱 硬件的四個訪問對象用于訪問I/O端口 352 (也被稱為I/O寄存器)的IoPort 對象332、用于訪問I/O存儲器354的IoMemory對象334、用于訪問DMA控 制器356的IoDma對象336、用于訪問中斷請求線358的Iolrq對象338。在一 個實施例中,HAL314也包括控制定時器、中斷控制器和實時時鐘硬件的可執 行指令。I/O管理器211負責初始化設備驅動程序并將應用程序連接至設備驅 動程序220。內核210或者直接使用設備驅動程序220配置元數據,或者使用每一設備 驅動程序的清單(例如圖1中所示的進程清單142)來正確配置設備驅動程序 220并連接執行所需的資源。一旦啟動之后,內核210就對系統進行即插即用 配置。內核210使用引導加載器從BIOS中獲取的信息以及來自諸如PCI總線 等總線的信息來枚舉設備、啟動適當的設備驅動程序、以及傳遞封裝對設備硬 件的訪問的這些驅動程序對象。16每一驅動程序220用安全可執行指令編寫,且在其自己的進程中運行。驅 動程序排他地通過通道與系統的其它部分通信,包括網絡堆棧和文件系統。當驅動程序啟動時,I/O管理器211提供如由設備驅動程序220的清單所需的I/O 訪問對象332、 334、 336和338以便與設備硬件352、 354、 356和358通信。所有這些訪問對象提供在直接訪問硬件的存儲器映射位置之前檢查每一引用 的安全接口。在使用軟件隔離的一個實施例中,I/O訪問對象的整個可執行指令被包含 在可信運行時324內,并在設備驅動程序進程300內運行。由可信運行時224 中的1/0訪問對象332、 334、 336和338中的可執行指令執行確保對硬件的訪 問有效的檢查。在使用硬件隔離的另一實施例中,處理器的進程隔離硬件被編 程來允許設備驅動程序僅訪問I/O端口空間或I/O存儲器空間中該驅動程序被 準許訪問的特定區域。在使用硬件隔離的實施例中,配置進程隔離硬件的可執 行指令駐留在OS內核210內。驅動程序配置一個或多個實現使用編碼在系統組件中的元數據中的配置要求來描述系 統各部分、解釋它們如何組合并指定它們與系統的其它部分的行為交互。元數 據聲明性地對系統的每一組件及其配置要求加上標簽,諸如內核、應用程序或 設備驅動程序。配置要求包括關于依賴性、導出服務和資源要求的信息。工具 在系統執行之前使用這種元數據來驗證系統組件的可執行指令被正確配置。該 元數據在系統執行期間使用以正確配置系統的每一組件,使得它可按其程序員 所期望地執行。系統元數據被歸檔在被稱為清單的一個或多個系統存儲中。頂層系統清單 指向描述各個組件(諸如設備驅動程序)的清單。通過這些清單,諸如引導加 載器或系統驗證器的軟件可發現系統的每一組件。系統清單足以允許對系統的離線分析。采用本文中所述的實現,管理員能 夠僅使用硬件設備的描述和系統清單來發現對眾多"設備驅動程序"相關問題 的回答。這樣的問題例如包括系統是否會對特定硬件引導、哪些驅動程序和 服務將初始化、以及哪些應用程序可運行?規范可運行系統映像包含作為元數據嵌入的整個系統的配置要求。使用元數 據, 一個或多個所述實現維持三個不變性。第一,OS將永遠不會安裝因與另 一驅動程序或系統的另一部分沖突的配置要求而不能成功啟動的設備驅動程 序。第二, OS將永遠不會啟動因配置沖突或缺少資源而不能成功運行的設備 驅動程序。第三,設備驅動程序不能在運行時使用未在其配置要求中聲明的資 源。當可能時,本文中所述的一個或多個實現使用高級語言的自定義元數據屬 性來將配置要求插入源代碼,使得僅必須維護一個源文檔。自定義屬性可附連 于源代碼實體,諸如類、方法或字段聲明。編譯器將屬性編碼到包含得到的中 間語言可執行指令的文件中。編譯器、鏈接器、安裝工具和驗證工具可讀取用 可執行指令編碼的元數據,盡管它們未執行指令。作為示例,以下源代碼示出用于聲明視頻設備驅動程序(諸如,S3 Trio64 )的配置要求的某些屬性[DriverCategory]
            class s3TrioCoirMg : Dr"ivercategoryDeclarat"ion
            //來自PCI配置的硬件資源 loMemoryRange textBuffer; ioMemoryRange fontBuffer; ioPortRange control; loPortRange advanced; ioPortRange gpstat;
            〃通道 TRef<Extensi onContract. Exp: Start> "i osys; TRef<ServiceProviderContract.Exp:Start> video;和[Signature (簽名)]屬性聲明該模塊 為PCI視頻設備的特定類的設備驅動程序。DriverCategory表示實現特定硬件 的設備驅動程序的應用程序的類別。其它類別包括用于實現軟件服務的應用程序的ServiceCategory (服務類別)、用于web服務器擴展的WebAppCategory (web應用程序類別)。[IoMemoryRange (Io存儲器范圍)]屬性聲明frameBuffer (幀緩沖器)是 從設備的PCI配置空間中的第一條目得到的。幀緩沖器的該位置是在配置硬件 時確定的,且硬件參數,諸如存儲器區域的大小,必須可與屬性中的配置值兼 容。[IoFixedMemoryRange (Io固定存儲器范圍)]和[IoFixedPortRange (Io固 定端口范圍)]屬性指定驅動程序或者需要用于存儲器映射訪問的固定范圍的 地址空間或者用于訪問設備寄存器的固定范圍的I/O端口 。在此實施例中,IoDmaRange (IoDMA范圍)、IoIrqRange (Io中斷請求 范圍)、IoMemoryRange (Io存儲器范圍)和IoPortRange (Io端口范圍)對 象是連續訪問對象的集合的容器,且可分別與1oDma、IoIrq、IoMemory和IoPort 訪問對象互換使用。[ExtensionEndpoint (擴展端點)]屬性聲明,驅動程序必須配備通道端點 來與設備程序的父進程通信。在諸如S3,Trio64TM的設備驅動程序中,I/O系 統是父進程。[ServiceEndpoint (服務端點)]屬性聲明驅動程序必須配備有至系統目錄 服務的通道端點,且使用視頻驅動程序的應用程序將通過該端點被目錄服務綁 定至設備驅動程序。編譯時在編譯時,高級語言編譯器將自定義屬性作為元數據嵌入到包含設備驅動 程序的中間語言可執行指令的文件中。使用中間語言元數據訪問庫, 一個或多 個所述實現可從中間語言文件中檢索所嵌入的元數據,而不執行文件中所包含 的可執行指令。在鏈接時,清單創建工具從中間語言文件中讀取自定義屬性元數據來創建 應用程序清單。應用程序清單是枚舉應用程序的組件和配置要求的XML文件。 應用禾呈序清單在"Self-Describing Artifacts and Application Abstractions (自描述 產物和應用程序抽象)"中更詳細描述。以下XML包含視頻設備驅動程序(諸如S3TMTrio64 視頻設備驅動程序)的清單信息的部分<marHfest> application identity="S3THo64" /> <assemblies> <assembly filename=''s3Trio64.exe" /> <assembly fi1ename="Namespace.Contracts.dl1"versionJ'l.0,0.2299" /> <assemb1y f"ename-"lo.Contracts.d"M" vers"ion="l.0.0.2299" /><assemb1y filename=''corlib.cn"r version="l.0.0.2299" /> <assembly filename=''Corlibsg.dll" version="l.0.0.2299" /> <assemb1y filename="system.compi1er.Runtime.dll"version="l.0.0.2299" /> <assembly fi 1 ename="MS. Si ngsharp. Runt"ime. dl 1"version=''l.0.0.2299" /> <assembly filename-"lLHelpers.dll'' version="l.0.0.2299" /> <assembly filename=''OS.Vl."MT' version="l.0.0.2299" /> </assemblies> <d門,ve rCat ego ry> <device signature=7pci/03/00/S333/8811" /> <ioMemoryRange index="0" baseAddress="0xf8000000"rangel_ength="0x400000" /> <ioMemoryRange baseAddress="0xb8000" rangel_ength="0x8000"f"ixed=''True" /> <ioMemoryRange baseAddress="0xa0000" rangel_ength="0x8000"fixed="True" /> <ioPortRange baseAddress=''0x3c0" rangei_ength=''0x20"fixed="True" /> <ioPortRange baseAddress="0x4ae8" rangel_ength="0x2"fixed="True" /> <ioPortRange baseAddress="0x9ae8" rangel_ength="0x2"f"ixed="True" /> <extension startstateid="3" contractName="MS.OS-.Extending.ExtensionContract" endpointEnd="Exp"assemb1y=''Namespace-Contracts" /> <serviceProvider startstateid="3" contractName=" MS.os- lo.VideoDevi ceContract" endpoi ntEnd="Exp"assembly="lo.Contracts" /> </driverCategory></man"ifest>
            安裝時
            采用本文中所述的一個或多個實現,系統保證不會安裝不能啟動的設備驅 動程序。為此,系統在設備驅動程序安裝之前驗證設備驅動程序的整個配置要 求可被滿足。
            應用程序是支持本文中所述的一個或多個實現的OS中的第一類抽象。該 概念在"Self-Describing Artifacts and Application Abstractions"中更詳細描述。 在一個實施例中,為了被執行, 一組可執行指令由安裝程序添加到應用程序以 根據應用程序的配置要求來初始化應用程序。在替換實現中,根據應用程序的 配置要求初始化應用程序的可執行指令被包含在可信運行時中,并通過解釋應 用程序的配置元數據來創建配置對象和訪問對象。
            安裝程序從應用程序清單中的元數據開始。安裝程序驗證,應用程序的每 一程序集存在且是類型和存儲器安全的。它也驗證,所有通道契約被正確實現。
            一旦這些內部特性被解決并驗證,安裝程序就接著試圖解決和驗證所有外 部依賴性。例如,安裝程序確保設備驅動程序使用的任何硬件資源不會與任何 其它驅動程序所需的硬件資源沖突。安裝程序也驗證應用程序所使用的每個類 型的通道的存在。如果應用程序導出通道,則安裝程序驗證,所導出的通道不 與另一應用程序沖突。當沖突發生時,系統清單中的策略解決沖突。例如,清 單可聲明僅一個設備驅動程序可提供視頻控制臺契約。其它視頻驅動程序的安 裝可被禁止,或在引導時僅激活單個視頻驅動程序。
            編譯時反射(CTR)用于生成可信可執行指令來為系統資源初始化應用程 序的配置對象和訪問對象。在一個實施例中,CTR模板在安裝時處理執行應用 程序清單中所指定的程序集中的屬性程序元素。
            通過將系統清單元數據更新為包括新應用程序或設備驅動程序來完成安 裝進程。
            在至少一個實現中,整個安裝進程離線進行,安裝僅在下一系統引導時才 變為可見。或者,整個安裝進程可在線執行和/或部分在線執行。運行時
            在運行時,元數據驅動內核、設備驅動程序、服務和應用程序的初始化。 引導加載器讀取系統清單的一部分來確定應加載哪些內核、設備驅動器和服 務。這些加載和啟動執行的次序不在任何地方指定;相反,系統從所指定的依 賴性來推斷次序。
            隨著每一應用程序被啟動,內核驗證并解決所有元數據依賴性,并在內核
            中建立進程配置記錄。使用CTR發射到應用程序內的可信可執行指令解析配 置記錄來創建配置對象328并創建訪問對象332、 334、 336、 338、 340以便訪 問外部資源。編譯時反射(CTR)為配置對象428生成可執行指令。
            回到S3TMTrio64TM設備驅動程序的示例,驅動程序配置記錄中的內核記 錄記錄了用于frameBuffer、 textBuffer (文本緩沖器)和fontBuffer (字體緩沖 器)的IoMemoryRange對象的需求。內核也記錄用于控制、高級和gpstat I/O 端口的IoPortRange對象。內核創建將設備驅動程序連接至I/O子系統的通道 以及將驅動程序連接至名空間的第二通道。通道端點被添加到驅動程序的配置 記錄。
            當設備驅動程序開始執行時,可信運行時中的可執行指令在驅動程序的對 象空間中創建適當的IoMemoryRange和IoPortRange訪問對象。因為這些僅可 由可信運行時構造,所以設備驅動程序僅可訪問在其配置元數據中聲明并由內 核I/O子系統檢査過沖突的I/O資源。
            在配置元數據中聲明通道端點確保三個特性。第一,SIP的可執行指令可 被靜態驗證以確保它們僅通過完全聲明的通道、嚴格遵循通道契約來通信。第 二,應用程序不需包含全局名。例如,S3TMTri064TM視頻設備驅動程序不知道 系統名空間中的/dev/video名。相反,驅動程序使用局部名,S3Trio64Config. video來指示具有給定契約(ServiceProviderContract (服務提供者契約))的 通道。I/O名空間的整個布局可在不影響視頻驅動程序中的單行源代碼的情況 下改變。第三,應用程序可以是遵循至少可能的特權的原則裝入"沙箱"的, 以移除當前系統中的差錯和安全易受攻擊性的源。例如,盡管S3TMTrio64M驅 動程序保存連接至系統目錄服務的端點,但驅動程序沒有能力創建新名字或連接至任何其它系統進程。
            隔離設備驅動程序的方法實現
            圖4示出了用于任何擴展(諸如設備驅動程序)的初始化的方法400。采 用該方法400, OS從設備的驅動程序清單中讀取元數據來創建設備驅動程序對 象。該方法400由如圖1中所示的各種組件中的一個或多個執行。而且,該方 法400可用軟件、硬件、固件或其組合執行。
            在圖4的402,操作系統(OS)獲取不可信程序模塊(諸如設備驅動程序)。 OS從設備驅動程序的清單中確定一組所要求或請求的計算資源。此處,計算 資源可包括虛擬資源(諸如通道)或硬件資源(諸如多個I/0端口或I/0存儲 器)或其它這樣的資源。
            OS通過讀取設備驅動程序的清單來作出該判斷。或者,OS可分析設備驅 動程序的可執行指令。或者,OS可從可執行指令或相關聯的數據結構提取元 數據。
            在404, OS確定是否有資源已經被分配給OS或另一設備驅動程序。如果 是,則進程在406異常中止。本發明的替換實施例可在異常中止后繼之以附加 策略,諸如在系統資源被釋放時重啟初始化進程、與當前所有者協商來釋放資 源、請求用戶許可停止沖突的驅動程序、向設備驅動程序作者通知潛在錯誤的 資源請求等。
            而且,此處OS可作出關于設備驅動程序和所請求的計算資源的其它判斷。 OS確認設備驅動程序被允許訪問所請求的計算資源并以它所請求的方式訪問 資源。
            在408, OS記錄對設備驅動程序的資源分配。
            在410, OS提供要由設備驅動程序對每一所要求或請求的資源使用的可 信局部訪問對象。可信運行時對象(圖3中描繪)是局部訪問對象的示例。
            OS執行的"提供"在此處可包括簡單地采用已經預先設定和固定的可執 行指令(和數據),它們是局部訪問對象。這可包括生成對特定需求和條件定 制的新指令(可能基于模板)。或者,OS可在之間做些事。例如,它可配置 或略微更改現有的可執行指令,這些指令是局部訪問對象。實際上,OS可將可信局部訪問對象的可執行指令(或數據)插入或鏈接 到不可信設備驅動程序,使得設備驅動程序可經由所插入或鏈接的局部訪問對 象獲取訪問權。在412, OS針對所要求的資源使用該組局部訪問對象來初始化設備配置 對象。配置對象可包括在清單中指定的附加設置。附加設置的示例可以是表明 用戶優選數據/時間格式的排序擴展的設置。在414, OS啟動設備驅動程序可執行指令的執行。初始化設備驅動程序 的可執行指令由OS或安裝系統而非設備驅動程序編程員提供。在416,執行設備驅動程序通過局部訪問對象來訪問所請求的計算資源。 而且,執行設備驅動程序僅可訪問所請求的計算資源(沒有其它)且僅經由所 鏈接或插入的局部訪問對象。結論本文中所述的技術可用眾多方式實現,包括(但不限于)作為一個或多個 計算機網絡的一部分或其組合的程序模塊、通用或專用計算系統、網絡服務器和裝備、專用電子和硬件、固件。盡管用結構特征和/或方法步驟專用的語言描述了一個或多個上述實現, 但可以理解,其它實現可無需此處所述的特定的示例性特征或步驟而實現。相 反,特定的示例性特征和步驟被公開為一個或多個實現的優選形式。在某些情 況中,可略去或簡化公知特征以闡明示例性實現的描述。而且,為易于理解起 見,某些方法步驟被描繪為分開的步驟;然而,這些分開描繪的步驟不應被解 釋為在其實現時必然次序相關。
            權利要求
            1.一個或多個具有處理器可執行指令的處理器可讀介質,所述指令在由處理器執行時,執行包括以下步驟的方法獲取設備驅動程序(300),其中所述設備驅動程序(300)是一組可執行指令;確定執行所述設備驅動程序(300)的所述一組可執行指令所需的一組計算資源(312和350);提供一個或多個局部訪問對象(332、333、336、338和340)以供所述設備驅動程序(300)用于訪問所需的一組計算資源(312和350),所述一個或多個局部訪問對象(332、333、336、338和340)中的每一個包括可執行指令;啟動所述設備驅動程序(300)的所述一組可執行指令和所述一個或多個局部訪問對象(332、333、336、338和340)的可執行指令的執行。
            2. 如權利要求1所述的一個或多個介質,其特征在于,所述確定動作包 括獲取與所述設備驅動程序(300)相關聯的處理器可讀清單(142),所述 設備驅動程序清單(142)指定執行所述設備驅動程序(300)的所述一組可執 行指令所需的所述一組計算資源(312和350)。
            3. 如權利要求1所述的一個或多個介質,其特征在于,所述方法還包括 確認所述設備驅動程序(300)被授權來訪問所需的一組計算資源(312和350)。
            4. 如權利要求1所述的一個或多個介質,其特征在于,所述提供動作還 包括生成一個或多個局部訪問對象(332、 333、 336、 338和340)以供所述 設備驅動程序(300)用來訪問所需的一組計算資源(312和350),所述局部 訪問對象由操作系統提供。
            5. —個或多個具有處理器可執行指令的一個或多個處理器可讀介質,所 述指令在由處理器執行時,執行包括以下步驟的方法獲取包括一組可執行指令的不可信程序模塊(300),且所述不可信程序 模塊(300)被配置成訪問一個或多個計算資源(312和350);確定所述不可信程序模塊(300)的一個或多個目標計算資源(312和350), 其中所述一個或多個目標計算資源(312和350)是所述不可信程序模塊(300)在所述不可信程序模塊(300)的所述一組可執行指令被執行時將設法訪問的 計算資源(312和350);向所述不可信程序模塊(300)提供一個或多個可信局部訪問對象(332、 333、 336、 338和340),使得所述不可信程序模塊經由所提供的一個或多個 可信局部訪問對象(332、 333、 336、 338和340)獲取對所述一個或多個目標 計算資源(312和350)的訪問權。
            6. 如權利要求5所述的一個或多個介質,其特征在于,所述可信局部訪 問對象(332、 333、 336、 338和340)中的每一個與一個或多個計算資源(312 和350)相關聯,且所述可信局部訪問對象(332、 333、 336、 338和340)中 的每一個包括一組可執行指令。
            7. 如權利要求5所述的一個或多個介質,其特征在于,所述可信局部訪 問對象(332、 333、 336、 338和340)中的每一個與一個或多個計算資源相關 聯,所述可信局部訪問對象(332、 333、 336、 338和340)中的每一個包括可 執行指令,且所述提供還包括配置所述一個或多個可信局部訪問對象(332、 333、 336、 338和340)的可執行指令以經由所述一個或多個可信局部訪問對 象(332、 333、 336、 338和340)所配置的可執行指令向所述不可信程序模塊(300)提供對所述一個或多個目標計算資源(312和350)的訪問權。
            8. 如權利要求5所述的一個或多個介質,其特征在于,所述不可信程序 模塊(300)是設備驅動程序(300)。
            9. 一個或多個具有處理器可執行指令的處理器可讀介質,所述指令在由 處理器執行時,執行包括以下步驟的方法獲取包括一組可執行指令的不可信程序模塊(300),且所述不可信程序 模塊(300)被配置成訪問一個或多個計算資源(312和350);確定所述不可信程序模塊(300)的一個或多個目標計算資源(312和350), 其中所述一個或多個目標計算資源(312和350)是所述不可信程序模塊(300) 在所述程序模塊的所述一組可執行指令被執行時將設法訪問的計算資源(312 和350);向所述不可信程序模塊(300)提供一個或多個可信局部訪問對象(332、 333、 336、 338和340),使得所述不可信程序模塊經由所提供的一個或多個可信局部訪問對象(332、 333、 336、 338和340)獲取對所述一個或多個目標 計算資源(312和350)的訪問權,所述一個或多個可信局部訪問對象(332、 333、 336、 338和340)與所述一個或多個目標計算資源(312和350)相關聯;許可所述程序模塊訪問僅可經由與所述一個或多個目標計算資源(312和 350)相關聯的一個或多個可信局部訪問對象(332、 333、 336、 338和340) 來訪問所述一個或多個目標計算資源(312和350)。
            10.如權利要求9所述的一個或多個介質,其特征在于,所述不可信程序 模塊(300)是設備驅動程序(300)。
            全文摘要
            本文中描述的是用于描述和/或解決軟件系統的應用程序、擴展、設備驅動程序(300)和其它組件的配置要求的一個或多個實現。
            文檔編號G06F15/16GK101297280SQ200680040116
            公開日2008年10月29日 申請日期2006年10月16日 優先權日2005年10月26日
            發明者B·斯汀斯嘉德, B·齊爾, C·霍伯利特澤, D·R·泰迪蒂, G·C·亨特, J·R·勞瑞斯, M·A·范德瑞, M·卡賓, M·埃肯, M·斯帕爾斯, M·阿巴迪, N·墨菲, O·霍德森, P·巴罕姆, S·P·萊維, T·沃伯 申請人:微軟公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品