精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在虛擬環境中使應用程序與Windows 7兼容

原創
云計算 虛擬化
完全支持 Windows 7 的 Microsoft Application Virtualization (App-V) 4.6 即將發布;很多計劃部署 Windows 7 的客戶都將 App-V 納入為他們的桌面轉換項目的組件。(操作系統部署常常會使“最新桌面”或“下一代桌面”計劃中的應用程序和基礎結構發生重大改變。)

完全支持 Windows 7 的 Microsoft Application Virtualization (App-V) 4.6 即將發布;很多計劃部署 Windows 7 的客戶都將 App-V 納入為他們的桌面轉換項目的組件。(操作系統部署常常會使“最新桌面”或“下一代桌面”計劃中的應用程序和基礎結構發生重大改變。)

當 IT 專業人員考慮同時對 App-V 和 Windows 7 進行投資時,幾乎總會提出以下問題:

◇ 聽說 App-V 是一個應用程序兼容性解決方案。這是否意味著它可以幫助我的應用程序與 Windows 7 兼容?

◇ 我是否需要對已為當前的 Windows XP 桌面創建的 App-V 程序包重新排序?

◇ 將 App-V 用作部署解決方案時,我該怎么做才能解決不兼容應用程序問題?

下面開始逐個探討這些問題。

Microsoft App-V 是不是應用程序兼容性解決方案?

Microsoft App-V 首先是應用程序管理和部署解決方案,它可為企業帶來明顯好處:降低打包成本,提高系統穩定性,通過動態訪問軟件資產為現在移動性很高的工作人員提供支持。但是,在營銷宣傳中,人們過多使用了應用程序兼容性這個術語,隨著時間的推移,該術語已被曲解為:App-V 可幫助解決應用程序與操作系統之間的兼容性問題。大多數情況下,它是無法解決這些問題的。(現在的例外情況主要是歷史原因造成的,不應夸大它的作用,因此,我在此不進行詳細介紹。)

對于客戶因此產生的混淆,我們在措辭上進行了一定的澄清;我們現在已不使用“應用程序兼容性”這個術語,而是直接談及基本優點:可以減少應用程序之間的沖突(請注意,我們有意避開了“兼容性”這個詞),因此,可以顯著減少回歸測試。

產品團隊對應用程序與操作系統兼容性的官方觀點如下:

從以前的討論可知,App-V 不是通用的應用程序與操作系統兼容性解決方案;不過,如果應用程序兼容性填充程序允許某個應用程序以本機方式(非虛擬化)在給定 Windows 版本上運行,則在大多數情況下,對于大多數填充程序而言,該應用程序將在對填充的應用程序虛擬化之后與 App-V 一起運行。因此,一般而言,只要填充的應用程序能夠以本機方式在目標操作系統版本上運行,App-V 就支持應用程序使用填充程序(這些填充程序是作為 Microsoft 的應用程序兼容性工具的組成部分提供的)。

因此,很顯然,App-V 無意作為應用程序與操作系統兼容性解決方案。(我們將在本文后面部分討論如何將填充程序與 App-V 結合起來。)讓我們看一看應用程序虛擬化對操作系統兼容性產生的其他影響。

#p#

Microsoft App-V 是不是程序包兼容性解決方案?

當我們談及應用程序兼容性時,自然要將程序包兼容性與運行時兼容性區分開。事實上,我們所建議的應用程序兼容性測試過程(如我在 2009 年 6 月的規劃您的應用程序兼容性項目文章中的圖 3 所示)將安裝測試與運行時測試區分開。讓我們從產品團隊官方指南開始:

通常,可以在一個操作系統上排序,然后在另一個操作系統上運行虛擬化應用程序;但是,這種方案既取決于應用程序,也取決于操作系統,未必適用于所有應用程序/操作系統組合,因為 App-V 不是通用的操作系統兼容性解決方案。如果遇到問題,客戶可能需要在運行 App-V 客戶端的操作系統環境中進行排序,以便解決這些問題。

這聽起來并不怎么樣,官方觀點基本上是“視情況而定”。但是,當您要考慮衡量風險時,請比較現在所使用的三種基本安裝技術:

Setup.exe:這種方式將運行任意代碼,從而該任意代碼將與應用程序本身的任意代碼面臨相同的潛在運行時問題,因此必須徹底進行測試。

Windows Installer:這種方式也運行代碼來執行安裝,但所運行的代碼大部分是結構化的聲明代碼。只有自定義操作的命令性代碼是任意的,因此,除了規則中的可量化變化之外(這些規則會影響針對數據庫運行的代碼以及自定義操作中的任意代碼的處理),有望獲得更好(不過仍不完美)的兼容性,需要的測試也會更少。

Microsoft App-V:這種方法根本不必運行代碼。它只是在一個作為虛擬文件系統的數據 Blob 上進行復制,然后說“好的,您的虛擬文件系統在這里。”這樣,您主要關注的問題不是應用程序是否會安裝(復制一個數據 Blob 畢竟真的很容易),而是應用程序的運行時兼容性。因此,在所有三種技術中,這種方式的安裝測試是最短的。那真是太好了!

因此,盡管沒有官方說法表示程序包會全部正常運行,但這種信息流傳開來的主要原因似乎是,很多人都將安裝問題與運行時問題混為一談。一般而言,如果投資于 Microsoft App-V,就有望大大降低應用程序安裝測試的預計成本。

#p#

應用程序與 Microsoft App-V 一起打包時,如何解決運行時兼容性問題?

還記得支持聲明中誘人的說法嗎?“App-V 將支持應用程序使用填充程序(這些填充程序是作為 Microsoft 的應用程序兼容性工具的組成部分提供的)....”實際上如何去實現這一點?這兩種程序是否基本上兼容?

令人高興的是,答案是肯定的。事實上,可以通過幾種不同的方式做到這一點。

填充程序簡要介紹

對于不熟悉填充程序的人來說,填充程序是 Microsoft 很少使用的四字母單詞之一,它不是某種縮寫詞。它以英語單詞“shim”(墊片)進行比喻,這是一個工程術語,用于描述插在兩個物體之間,使它們更好地配合在一起的木片或金屬片。在我們的特定環境下,兩個物體就是應用程序和 Windows,而墊片材料是使兩者更好地一起發揮作用的附加代碼,如圖 1 和 2 所示。
 

 

圖 1 應用填充程序之前,應用程序與 Windows 直接交互。

 

圖 2 應用填充程序之后,應用程序與 Windows 間接交互;填充程序代碼注入后,它可以修改向 Windows 發出的請求和/或來自 Windows 的響應。

填充程序的作用是通過 API 偵聽實現的。Windows API 是使用 DLL 集合實現的。每個針對 Windows 構建的應用程序都導入這些 DLL,并在內存中維護一個由所有這些功能的地址構成的表。因為 Windows 功能的地址位于一個表中,所以,填充程序引擎直接用填充程序 DLL 的地址替換該地址。應用程序通常不知道要將請求發送到填充程序 DLL 而不是發送到 Windows 本身,Windows 也不知道請求是來自應用程序以外的源(因為填充程序 DLL 只不過是應用程序進程內的另一個 DLL)。

例如,一個十分常用的填充程序是版本欺騙填充程序。為了實現此填充程序,將偵聽幾個用于確定運行應用程序的 Windows 版本的 API。通常,這種信息將傳遞給 Windows 本身,后者會如實應答。但在應用填充程序之后,這些 API 將被偵聽。這樣,將返回一個不同的 Windows 版本(例如,Windows XP 而不是 Windows 7),而不是將請求傳遞給 Windows。如果應用程序編寫為只在 Windows XP 上運行,這樣可以騙過應用程序,使它認為自己正在正確的操作系統上運行。(通常,這樣就可以解決應用程序兼容性問題!)

使用填充程序,可以采用很多技巧。例如, 

◇ ForceAdminAccess 填充程序嘗試使應用程序確信當前用戶是本地管理員組的成員,即使他并不是該組成員。(如果您不是本地管理員,很多應用程序會徹底失敗,不過,您可以使用其他一些技巧(如 UAC 文件和注冊表虛擬化)來解決初始檢查所引起的問題。)實現這種檢查的方法可以非常簡單。例如,此填充程序從 shell32.dll 偵聽 API IsUserAnAdmin。所填充的功能的完整源代碼(與實際 API 相比,具有極好的性能特性)只返回 TRUE。

◇ WrpMitigation 填充程序使應用程序安裝程序相信,它們可以寫入受 Windows 資源保護 (WRP) 功能保護的文件。如果嘗試寫入受保護的文件,該填充程序首先創建一個新的臨時文件,一旦句柄關閉就將其標記為已刪除,然后將句柄返回到該臨時文件,就好像它是實際受保護的文件。應用程序將舊版本 kernel32.dll 或 shell32.dll(或者在將其打包時它所選擇的任何其他文件)安裝到臨時文件中,但隨后該臨時文件消失,受保護文件的經過修補的最新匹配版本保留在文件系統中。這樣,WRP 仍可確保您不會在自己的計算機上最終得到來自 Windows 95 的舊版本 shell32.dll,但在使用此填充程序時,安裝程序不會因 ACCESS_DENIED 而失敗。

◇ CorrectFilePaths 填充程序可將文件從一個位置重定向到另一個位置。因此,如果應用程序嘗試寫入 c:\myprogramdir(不會使用 UAC 文件和注冊表虛擬化對它進行自動修復),則可以將在運行時修改的文件重定向到基于每個用戶的位置。這樣,您可以以標準用戶的身份運行而不必放寬訪問控制列表 (ACL) 限制,因為您知道,安全人員不愿意放寬 ACL。

◇ 有數百個通用填充程序可用來解決應用程序兼容性問題,利用這些修補程序可節省大量的成本。例如,客戶常常在以下情況下使用填充程序:

◇ 供應商已停止經營,因此無法獲得更新版本。如果您無法承擔從新供應商處獲得另外的應用程序或自己構建新版本的費用,這樣可以為您爭取一些時間。

◇ 應用程序不是十分重要,不值得投資于更新版本(伴隨著支持聲明),但您的用戶樂于使用它,所以您不介意他們是否運行不受支持的版本。

◇ 應用程序是內部開發的,但您不想非要等到團隊發布完全更新的版本。相反,您愿意采用臨時性修補程序,允許開發團隊在應用程序的下一次計劃發布時發布永久性修補程序。通過這種方法,就不再需要停止所有應用程序開發活動,可以投入時間和資源來修復兼容性 Bug。您可以使用臨時性修補程序,并允許團隊發布包含開發過程中已實現的新功能的修補程序。

利用填充程序解決應用程序兼容性問題,可以顯著節省成本,大大加速 Windows 7 的部署。

#p#

在企業環境中管理填充程序的方法

在我于 2007 年 11 月發表的在企業環境中管理填充程序白皮書中,概括了在決定如何在組織中將填充程序作為應用程序兼容性解決方案進行管理時,大多數人會選擇的兩種主要方式。簡單地說,它們是:

集中管理的單個填充程序數據庫 通過這種方式,可以部署集中管理的單個填充程序數據庫,這種數據庫包含所有需要使用填充程序的應用程序的條目。這之后,發現其他應用程序需要使用修補程序時,可向中央數據庫推出更新。這就是 Microsoft 所使用的方法。在發布 Windows 7 時,我們提供了一個系統填充程序數據庫,它可以對數千個應用程序進行修復,在我們發現其他需要修復的應用程序時,則通過 Windows Update 向該數據庫發布更新。您也可以這樣做:將一個填充數據庫放到主映像中,通過系統管理軟件(如 System Center Configuration Manager)進行更新。

基于每個應用程序的填充程序數據庫 另外,您也可以直接向應用程序部署應用程序修補程序。如果只有一兩個應用程序需要修補程序,某些客戶會選擇這種方式,因為在小型環境中,與設置一個用于管理中央數據庫的進程相比,這種方式成本更低。基于每個應用程序的填充程序數據庫的一個明顯缺點是,如果存在問題,更新填充程序數據庫將會很困難。不過,App-V 沒有這個缺點,現在,您可以對基于每個應用程序的數據庫進行更新,然后將更新后的版本傳送給用戶。(不過,您將會看到,這引入了另外一個更加明顯的缺點。)

Microsoft App-V 的軟件部署方法拓寬了在企業范圍內部署應用程序修補程序的選擇,您可以選擇一種最適合組織中現有進程模型的方法。

#p#

使用集中管理的單個填充程序數據庫來填充 App-V 應用程序

從策略角度看,要部署集中管理的單個填充程序數據庫并由使用 App-V 進行排序的應用程序選擇該數據庫,您必須做什么?很簡單,按常規方法安裝即可!使用 App-V 安裝的應用程序的啟動方式與應用程序的常規啟動方式大致相同,這種應用程序使用應用了填充程序的加載程序機制。它們只是通過代理進程來啟動。具體地說,sfttray.exe(而不是資源管理器)負責啟動新的進程。因此,進程樹如圖 3 所示。
 

圖 3 代理進程樹

應用程序啟動時,它像任何其他應用程序一樣運行加載程序。Microsoft Application Virtualization 客戶端接口層 (sftintf.dll) 調用 CreateProcessW,后者調用內部的 API CreateProcessInternalW。填充程序引擎是在 CreateProcessInternalW API 中調用的,填充程序與該進程綁定。

那么,這就相當容易了。還有什么問題嗎?是的,有一個。它不能很好地處理提升。例如,您不能簡單地要求對某個應用程序進行提升(使用 RunAsAdmin 填充程序),也不能對需要使用 ElevateCreateProcess 進行提升的應用程序的問題進行修復。為什么呢?原因是氣泡圖。

例如,我們來看一個嘗試自行啟動一次自動更新的應用程序(遺憾的是,這是一個十分常見的任務)。在以本機方式運行時,它產生了一個問題,即它使用了無法調用提升的 CreateProcess API。它隨后返回錯誤 -1073740756 – STATUS_ELEVATION_REQUIRED。ElevateCreateProcess 填充程序捕獲這個返回值,然后調用應用程序信息服務來提供提升。但該服務無法找到要提升的應用程序,因為該服務位于氣泡圖之外!

因此,只要應用程序不需要提升,在已創建一個進程的情況下,部署單個填充程序數據庫解決方案就十分容易,您只需繼續做相同的事情。

#p# 

使用基于每個應用程序的填充程序數據庫來填充App-V 應用程序

通過部署填充程序來解決應用程序兼容性問題的另一種方法是隨應用程序部署填充程序。在 MSI 環境中,通常將 .sdb 文件包括在安裝程序中,然后加入一個自定義操作,該自定義操作針對它所放置的 .sdb 文件調用 sdbinst。這樣,會將自定義填充程序數據庫作為安裝程序的一部分來安裝。(如果您隨后需要對該應用程序的填充程序進行更新,則需要找到所有已安裝的客戶端,并運行一個腳本來安裝更新,這會使事情變得有些復雜。)

您可以使用 App-V 完成幾乎相同的工作。您可將填充程序數據庫 (.sdb) 文件包括在序列本身之中,這樣 .sdb 文件就位于氣泡圖內。首先,對需要使用填充程序的應用程序進行排序,以便其正常運行。然后,將自定義填充程序數據庫放入 system32 中。

(盡管我通常會建議人們絕不要將任何內容放到 system32 中,除非您的工資單是由 Steve Ballmer 簽發的,并且您的上級包括 Steven Sinofsky;在這種特定情況下,我才會選擇這樣做,因為這樣可簡化腳本編寫,system32 將在您的路徑中,并且不會在生產系統的 system32 中實際留下任何內容,就像是在虛擬文件系統的 system32 中那樣)。

做完這項工作后,我將編輯 .sprj 文件。我瀏覽到“虛擬文件系統”選項卡,然后單擊“視圖”|“虛擬文件系統”|“添加”。然后,我瀏覽到放置 .sdb 文件的位置 (c:\windows\system32\appshim.sdb),并單擊“確定”。此時,該 .sdb 文件將位于氣泡圖內,并在安裝 softgrid 軟件包時進行安裝。因為該文件是容器的一部分,所以它將作為應用程序的一部分進行傳送(可在更新應用程序時進行更新)。

當然,要使用應用程序修補程序,只是將 .sdb 文件放到文件系統中還不夠,還必須安裝這些修補程序。不過,填充程序數據庫必須安裝在 App-V 氣泡圖的外面。如果將填充程序數據庫安裝在氣泡圖內,則在創建進程之前,不會發現虛擬化的 .sdb 文件;創建進程之后,填充程序找到該文件并針對它進行操作已經太晚。您需要使填充程序數據庫在創建進程時能夠被氣泡圖外面的加載程序訪問。

令人高興的是,App-V 包含一個將腳本作為應用程序啟動進程的一部分來運行的機制。如果您使用最喜歡的文本編輯器來查看應用程序的 OSD 文件,就會發現只能對 XML 進行編輯。<SOFTPGK> 元素包含一個 <IMPLEMENTATION> 元素、一個 <DEPENDENCY> 元素、一個 <PACKAGE> 元素、一個 <ABSTRACT> 元素、一個 <MGMT_SHORTCUTLIST> 元素和一個 <MGMT_FILEASSOCIATIONS> 元素。<DEPENDENCY> 元素是您需要編輯的元素,您將添加子 <SCRIPT> 元素,以便安裝自定義填充程序數據庫。下面是一個腳本示例,該腳本可在應用程序啟動時安裝自定義填充程序數據庫,并在應用程序退出時將其刪除(因此,這是一種可清理其身后內容的 JIT 安裝,是 App-V 的一個重要目標):
 

 

通過該腳本,您可從 App-V 氣泡圖的外面調用填充程序數據庫安裝程序 (sdbinst.exe),但要使用位于 App-V 氣泡圖內部的 .sdb 的一個參數,該 .sdb 隨后將作為應用程序部署序列的一部分進行部署。因此,應用程序修補程序的部署和更新十分容易,就像它們是該應用程序的任何其他部分一樣。

自定義填充程序數據庫的安裝過程要求擁有管理員權限;在運行時進行安裝這是否會發生問題?您不希望您的用戶擁有管理員權限,您的用戶也不希望每次啟動應用程序時都不得不單擊 UAC 對話框。令人高興的是,您無需那樣做;對 sdbinst.exe 的調用會自動提升。安裝填充程序的進程樹如圖 4 所示。

 

圖 4 填充程序安裝進程樹

將創建一個命令 Shell,該命令 Shell 隨后調用 sdbinst.exe 來安裝自定義填充程序數據庫。在調用應用程序信息服務(提供提升的服務)之前,會失敗兩次,其錯誤為 STATUS_ELEVATION_REQUIRED。上述服務調用 consent.exe,后者對策略進行檢查以確定是否應提升應用程序。策略(在虛擬環境中)返回“是”而無需提示用戶;consent.exe 批準提升,并創建 sdbinst.exe 的一個提升實例,該實例將安裝自定義填充程序數據庫。但是請務必注意,不提示就提升的策略只有在您能提升的情況下才會無提示運行。如果您是標準用戶,則每次啟動應用程序都會出現一條需要管理員憑據的提示,每次關閉應用程序也是如此。因為在標準用戶環境中人們非常不希望出現這種情況,所以,只有在已部署本地管理員用戶的情況下,這種方法才有效。我們希望只有極少的用戶需要應用這種方法!

#p#

結論

Microsoft Application Virtualization 是一個功能強大的應用程序管理和部署工具。如果在 Windows 7 遷移計劃中使用該工具,有可能降低安裝測試過程中的成本(不過,成本不會降到 0)。

繼續利用大多數同樣的過程,還可以使用填充程序解決應用程序兼容性問題。如果要在組織范圍內部署單個填充程序數據庫,要進行的轉換任務很少,只需小心避免提升填充程序(與在 App-V 環境中通常應避免提升的情況大體一樣)。如果要部署基于每個應用程序的填充程序,可以使用一些適當的方式來打包和部署應用程序的填充程序數據庫,不過,這種情況下,有一個顯著的缺點,即無法合理地以非管理員用戶的身份運行應用程序。因此,強烈建議(就像在基于 MSI 的應用程序部署中那樣)盡量以集中管理的單個數據庫的形式部署填充程序,這種情況下,可以使用現有的系統管理軟件進行部署。如果采用這種方式,將來在您的用戶中,以非管理員身份運行的用戶的比重會越來越大。

Chris Jackson(“應用程序兼容性專家”)是 Microsoft 的首席顧問,也是 Windows 應用程序體驗 SWAT 團隊的技術主管。Jackson 是在 Windows 應用程序兼容性領域享有盛名的專家,他根據多年與企業客戶和獨立軟件供應商合作的實際經驗,負責創建在 Microsoft 內部和外部使用的技術文檔、培訓和服務項目。可通過 Jackson 的廣受歡迎的博客與他聯系。

原文地址

本文來源:微軟TechNet中文站

 

 

 

責任編輯:王勇 來源: 微軟TechNet中文站
相關推薦

2009-08-14 09:14:13

Windows 7兼容性修復程序

2009-09-22 12:17:59

ibmdwLotus

2021-07-30 20:25:04

pipxPython編程語言

2021-09-07 10:24:36

Vue應用程序Web Workers

2011-05-27 08:48:13

Android HTML

2009-06-19 13:45:53

Java應用程序Jfreechart

2013-10-09 11:15:49

Ubuntu應用程序

2009-11-23 19:52:55

ibmdwFlex

2022-08-30 20:00:37

零信任Linkerd

2010-11-03 15:10:04

SilverlightSilverlightWindows Pho

2011-03-21 09:05:40

IronRubyWindows Pho

2011-07-18 10:00:47

iPhone iOS Visual Stu

2010-12-01 09:01:31

獨立存儲Windows Pho

2012-06-07 09:15:14

ibmdw

2022-02-20 20:09:38

BottlesLinuxWindows

2011-02-18 09:34:32

Windows 7 S

2011-08-10 10:48:48

2010-07-26 11:02:46

2016-09-06 09:48:38

LinuxWindows切換

2011-04-01 13:20:40

Windows Pho應用程序
點贊
收藏

51CTO技術棧公眾號

国产欧美日韩精品一区二区三区| av大大超碰在线| 久久婷婷影院| 日韩中文在线中文网三级| 国产三级生活片| a黄色片在线观看| 不卡一二三区首页| 欧美一级片免费在线| 日本欧美一区二区三区不卡视频| 国产精品亚洲欧美一级在线| 五月天亚洲精品| 亚洲国产精品久久久久婷婷老年| av手机免费看| 久久亚洲风情| 欧美激情亚洲综合一区| 97在线观看免费视频| 国产欧美88| 日本高清视频一区二区| 蜜臀av性久久久久蜜臀av| 黄频在线免费观看| 激情文学综合丁香| 欧美一级片在线播放| 欧美日韩精品一区二区三区视频播放 | 综合激情五月婷婷| 色哟哟一区二区在线观看 | 国产精品日韩欧美一区| 久久久精品久久久| 51妺嘿嘿午夜福利| 欧美wwwwww| 日韩精品一区二区三区视频播放| 久久久精品麻豆| 日本不卡网站| 亚洲国产精品久久久男人的天堂 | 很黄很黄激情成人| 色噜噜狠狠狠综合曰曰曰| av网站免费在线播放| 香蕉大人久久国产成人av| 欧美日韩日日摸| 无码精品国产一区二区三区免费| www.51av欧美视频| 亚洲影院理伦片| 天天爱天天做天天操| 调教视频免费在线观看| 国产欧美日韩视频一区二区| 欧美国产一区二区在线| 亚洲女人18毛片水真多| 国产精品一级黄| 亚洲在线观看视频网站| 国产精品久久综合青草亚洲AV| 蜜臀久久久久久久| 国产精品极品在线| 人妻中文字幕一区二区三区| 日韩精品高清不卡| 国产精品91免费在线| 国产成人精品777777| 在线成人h网| 91精品国产乱码久久久久久久久| 国产乡下妇女做爰毛片| 伊人久久亚洲热| 7777精品久久久久久| 日韩欧美一区二区一幕| 在线视频日韩| 日韩美女福利视频| 中国一级片黄色一级片黄| 免费在线成人网| 91精品视频专区| 精品人妻无码一区二区三区蜜桃一| 国产在线精品不卡| av一区二区三区四区电影| 亚洲国产精品成人久久蜜臀| 高清在线不卡av| 久久精品综合一区| 大片免费播放在线视频| 国产精品久久久久久福利一牛影视| 亚洲一区二区四区| 特级毛片在线| 高潮白浆女日韩av免费看| aa免费在线观看| 久久人人视频| 欧美成人三级电影在线| 亚洲欧美视频在线播放| 日韩专区精品| 欧美激情视频免费观看| 亚洲av中文无码乱人伦在线视色| 日韩av网站在线观看| 91精品国产综合久久男男| 国产激情视频在线播放| 丁香一区二区三区| 日产精品久久久一区二区| 久操免费在线| 欧美视频在线免费| 成人日韩在线视频| 久久精品66| 这里只有精品在线播放| 久久久久久免费观看| 噜噜噜躁狠狠躁狠狠精品视频| 成人综合网网址| 先锋av资源站| 自拍偷拍亚洲欧美日韩| 欧美日韩黄色一级片| 狂野欧美性猛交xxxx| 亚洲国内精品在线| 亚洲欧美精品久久| 在线亚洲免费| 999在线观看免费大全电视剧| 九色在线免费| 午夜精品久久久久久久99黑人| 97中文字幕在线| videos性欧美另类高清| 日韩一级黄色片| 国产精成人品免费观看| 欧美午夜国产| 国产主播精品在线| 三级视频在线播放| 亚洲一级在线观看| 麻豆三级在线观看| 天天躁日日躁狠狠躁欧美| 免费av一区二区| 自拍偷拍福利视频| 久久蜜桃一区二区| 国产日韩欧美精品在线观看| 亚洲午夜国产成人| 国产亚洲精品久久久优势 | 亚洲成av人片| 中文字幕第一页在线视频| 国产一区二区精品久| 77777少妇光屁股久久一区| 性做久久久久久久| 亚洲免费在线看| 57pao国产成永久免费视频| 亚洲免费专区| 久久免费视频观看| www视频在线| 亚洲色图第一区| 手机免费av片| 色呦哟—国产精品| 国产精品十八以下禁看| 猫咪在线永久网站| 色综合中文字幕国产| 国产又粗又长又爽| 日韩午夜精品| 国产一区自拍视频| 6699嫩草久久久精品影院| 精品成a人在线观看| 免费视频网站www| 国产一区二区0| 欧美人与动牲交xxxxbbbb| 深夜福利一区| 欧美激情第1页| 亚洲精品国产手机| 亚洲超碰精品一区二区| a天堂视频在线观看| 99视频一区| 精品视频一区在线| 国产高清不卡| 亚洲网站在线播放| 中文字幕777| 国产精品欧美一级免费| 久久成年人网站| 影音先锋日韩在线| 粉嫩av四季av绯色av第一区| 大黄网站在线观看| 亚洲成人中文字幕| 国产污视频网站| 国产精品区一区二区三区| 国产女女做受ⅹxx高潮| 成人精品影视| 国产精品男人爽免费视频1| 欧美成人xxx| 欧美久久免费观看| 免费看一级一片| 91在线观看免费视频| 男人插女人下面免费视频| 日韩欧美高清在线播放| 7777奇米亚洲综合久久| www.8ⅹ8ⅹ羞羞漫画在线看| 亚洲精品永久免费| 一级特黄色大片| 亚洲午夜久久久久| 99久久人妻无码精品系列| 狠狠色丁香久久婷婷综合_中| 91看片淫黄大片91| 日韩精品导航| 成人免费福利视频| 51av在线| xvideos亚洲人网站| 性生交大片免费看女人按摩| 一本大道久久精品懂色aⅴ| 国产又黄又粗又猛又爽的| 成人午夜av影视| 人人爽人人av| 狠狠爱www人成狠狠爱综合网| 日本精品一区二区三区视频| 视频在线观看免费影院欧美meiju| 欧美在线免费观看| 久久久久久久久免费视频| 日韩成人在线视频观看| 97免费观看视频| 疯狂做受xxxx高潮欧美日本| caoporn91| 国产天堂亚洲国产碰碰| 日韩女优在线视频| 国产小视频你懂的| 亚洲色偷偷综合亚洲av伊人| 99re只有精品| 福利电影一区| 久久精品人人爽| 日韩一卡二卡在线| 欧美日韩国产一级| 久久国产视频一区| 亚洲免费看片| 成人黄色大片在线观看| 两根大肉大捧一进一出好爽视频| 999国产精品| 精品欧美一区二区在线观看视频 | 午夜国产精品视频| 日韩aⅴ视频一区二区三区| eeuss鲁片一区二区三区| 国产欧美日韩精品在线观看| 成人线上视频| 欧美激情在线观看| www在线免费观看视频| 一区二区日韩精品| 青青草在线视频免费观看| 精品久久人人做人人爰| 国产精品视频a| 欧美日韩一区小说| 精品视频一二三区| 欧美午夜视频在线观看| 日韩精品一区二区不卡| 亚洲最新视频在线播放| 永久看片925tv| 综合久久综合久久| yy111111少妇影院日韩夜片| 国产激情视频在线观看| 日韩在线观看免费av| avtt亚洲| 中文字幕日韩av综合精品| 韩国三级在线观看久| 精品无人国产偷自产在线| 神马午夜一区二区| 亚洲精品一区二区三区福利 | 久青草免费视频| 一区二区欧美国产| 欧美成人一区二区三区高清| 一区二区三区四区视频精品免费| 日韩欧美国产成人精品免费| 亚洲婷婷国产精品电影人久久| 99热这里只有精品4| 亚洲欧洲精品一区二区三区| 成年人二级毛片| 自拍偷拍欧美精品| 欧美激情一区二区视频| 亚洲一区二区在线视频| 日韩 国产 在线| 欧美日韩中国免费专区在线看| 国产香蕉视频在线| 色偷偷88欧美精品久久久| 亚洲欧美日韩激情| 欧美日韩日日夜夜| 国产熟女精品视频| 精品国产免费一区二区三区四区| 日韩中文字幕观看| 亚洲精品自拍视频| yourporn在线观看中文站| 色小说视频一区| 影音先锋在线视频| 9.1国产丝袜在线观看 | 18videosex性欧美麻豆| 欧美黄色免费网站| 不卡一二三区| 成人精品久久久| 成人动态视频| 欧美久久综合性欧美| 午夜精品毛片| 男人添女荫道口图片| 日韩av网站在线观看| 男女视频在线观看网站| 不卡的av网站| 少妇视频在线播放| 亚洲一区二区精品3399| 欧美日韩一级黄色片| 欧美丰满嫩嫩电影| 香港三日本三级少妇66| 色悠悠久久88| av最新在线| 国产在线999| 欧美电影在线观看免费| 成人手机视频在线| 国产日韩欧美一区| 亚洲一二三av| 2欧美一区二区三区在线观看视频| 少妇视频一区二区| 天涯成人国产亚洲精品一区av| 伊人久久亚洲综合| 亚洲激情自拍图| www红色一片_亚洲成a人片在线观看_| 97国产成人精品视频| 四虎永久精品在线| 牛人盗摄一区二区三区视频| 911精品美国片911久久久| 日韩av片在线看| 国产精品一二三四区| 91麻豆制片厂| 岛国av一区二区在线在线观看| 国产欧美久久久| 亚洲最大中文字幕| 成人超碰在线| 亚洲综合中文字幕68页| 欧美熟乱15p| av动漫在线观看| 岛国精品一区二区| 日本中文在线视频| 欧美午夜精品一区| 日本在线一二三| 久久久久国产精品免费| 国产人与zoxxxx另类91| 色婷婷精品国产一区二区三区| 国产一区白浆| 日韩精品人妻中文字幕有码| 一区二区三区在线视频观看| 夜夜狠狠擅视频| 国产一区二区三区免费视频| 三妻四妾完整版在线观看电视剧| 成人动漫视频在线观看免费| 97精品一区二区| 香港日本韩国三级网站| 久久精品视频网| 成人免费毛片男人用品| 日韩电视剧免费观看网站| 成人影院在线播放| 国产精品国产一区二区| 欧美.日韩.国产.一区.二区| 污视频在线观看免费网站| 国产精品久久久久国产精品日日| 这里只有精品999| 一本色道久久88综合亚洲精品ⅰ| 在线精品亚洲欧美日韩国产| 久久久久一区二区| 亚洲一区二区毛片| 成年人网站免费看| 色综合中文综合网| 可以直接在线观看的av| 国产精品电影久久久久电影网| 免费看av成人| 成人黄色一区二区| 久久精品男人的天堂| 波多野结衣一本一道| 国产一区二区三区高清在线观看| 亚洲第一会所001| 亚洲精品高清视频| 久久精品国产999大香线蕉| 午夜精品久久久久99蜜桃最新版| 欧美日韩亚洲高清一区二区| 青青青青在线| 999视频在线观看| 在线成人亚洲| 插吧插吧综合网| 欧美午夜精品理论片a级按摩| 黄色一级大片在线免费看产| 91在线精品播放| 亚洲黄页一区| 中文字幕丰满乱子伦无码专区| 日本道精品一区二区三区| 午夜不卡视频| 高清国产一区| 一本一本久久| a级黄色免费视频| 制服丝袜av成人在线看| av白虎一区| 日本一区美女| 国产乱一区二区| 国产精品第9页| 中文字幕欧美精品日韩中文字幕| 国产在线视频欧美一区| 免费毛片网站在线观看| 国产无人区一区二区三区| 国产免费不卡视频| 国自在线精品视频| 欧美日韩伦理| 2025中文字幕| 91成人免费电影| 亚洲无线看天堂av| 欧美综合激情| 国产馆精品极品| 中文字幕高清在线免费播放| 久久色在线播放| 日韩有码av| 一级黄色高清视频| 狠狠色香婷婷久久亚洲精品| 久久bbxx| 日韩av一区二区三区在线| 国产精品一级片| 中文字幕在线观看免费| 久久免费观看视频| 日韩毛片视频| 国产交换配乱淫视频免费| 日韩视频一区在线观看| 欧美日韩尤物久久| 久久久久久免费看|