專利名稱:基于wddm的屏幕獲取方法及帶多顯示器的計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及屏幕獲取技術(shù),尤其涉及一種基于Vista顯示驅(qū)動(dòng)模式(WDDM, Windows Vista Display Driver Model)的基于WDDM的屏幕獲取方法及帶多顯 示器的計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,通過截取計(jì)算機(jī)桌面圖像,壓縮后在其他計(jì)算機(jī)、 遠(yuǎn)程終端或遠(yuǎn)程顯示設(shè)備(如網(wǎng)絡(luò)投影機(jī))上顯示,以實(shí)現(xiàn)桌面共享、遠(yuǎn)程監(jiān) 控及維護(hù)等應(yīng)用越來越多。以NT技術(shù)中的XP操作系統(tǒng)桌面圖像獲取為例, 現(xiàn)有技術(shù)是加載XP顯示驅(qū)動(dòng)模式(XDDM, XP Display Driver Model)過濾/ 映象顯示驅(qū)動(dòng)程序,如鏡像Mirror或設(shè)備驅(qū)動(dòng)接口 DDI,實(shí)時(shí)映象當(dāng)前顯示屏 的各個(gè)更新,然后將映象后的數(shù)據(jù)進(jìn)行壓縮以并流的形式記錄下來,并通過 TCP/IP技術(shù)等傳送到遠(yuǎn)端顯示終端上進(jìn)行顯示,從而達(dá)到遠(yuǎn)端共享或監(jiān)控目 的。
伴隨著Vista的上市,微軟在Vista及其以后操作系統(tǒng)中,采用了一種不同 于XP顯示驅(qū)動(dòng)模式(XDDM, XP Display Driver Model)全新桌面顯示架構(gòu) WDDM,在WDDM顯示架構(gòu)下,操作系統(tǒng)支持內(nèi)容保護(hù)與Aero效果的桌面顯 示。針對(duì)Vista的桌面獲取存在以下問題,若想使獲取的桌面圖像支持Aero效 果,需要截取顯示適配器處理后的顯示圖像數(shù)據(jù),而Vista中的顯示圖像數(shù)據(jù)均 是加密了的數(shù)據(jù),非指定的顯示終端無法顯示這些顯示圖像。而如果直接截取 顯示適配器處理前的數(shù)據(jù),將不支持Aero效果,遠(yuǎn)程用戶體驗(yàn)將大打折扣?,F(xiàn) 有技術(shù)中的屏幕圖像獲取技術(shù)并不適合操作系統(tǒng)Vista。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于WDDM的屏幕獲取方法 及帶多顯示器的計(jì)算機(jī)系統(tǒng),能實(shí)現(xiàn)Vista屏幕圖像的完整獲取并支持遠(yuǎn)程Aero 效果的顯示。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的 一種基于WDDM的屏幕獲取方法,包括 圖像顯示處理引擎輸出顯示圖像繪制指令;
過濾驅(qū)動(dòng)解析所述顯示圖像繪制指令,根據(jù)顯示適配器的注冊(cè)能力判斷所 述顯示適配器能否執(zhí)行所述顯示圖像繪制指令,在所述顯示適配器能執(zhí)行所述 顯示圖像繪制指令時(shí),將所述顯示圖像繪制指令傳送至所述顯示適配器;
所述顯示適配器根據(jù)所述顯示圖像繪制指令生成顯示圖像數(shù)據(jù)并回傳至所 述過濾驅(qū)動(dòng);
所述過濾驅(qū)動(dòng)緩存所述顯示圖像數(shù)據(jù)。
其中,該方法還包括
所述過濾驅(qū)動(dòng)將緩存的所述顯示圖像數(shù)據(jù)輸出到指定的備用顯示設(shè)備的輸 入端口 。
其中,所述過濾驅(qū)動(dòng)加載在圖像顯示處理引擎與顯示適配器之間,所述顯 示適配器向所述過濾驅(qū)動(dòng)注冊(cè)其能力信息,所述過濾驅(qū)動(dòng)接管所述圖像顯示處 理引擎的圖像繪制指令輸出。
其中,所述過濾驅(qū)動(dòng)將緩存的所述顯示圖像數(shù)據(jù)輸出到指定的備用顯示設(shè) 備的輸入端口,具體為
判斷當(dāng)前緩存的待輸出顯示圖像數(shù)據(jù)與前一 已輸出顯示圖像數(shù)據(jù)比較是否 有更新,在更新時(shí)將更新部分輸出到指定的備用顯示設(shè)備的輸入端口 。
一種帶多顯示器的計(jì)算機(jī)系統(tǒng),包括
一主機(jī);
至少二顯示器,所述至少二個(gè)顯示器都與所述主機(jī)連接;
5其中,所述主機(jī)中包括:圖像顯示處理引擎,連接于過濾加載單元,用于
向所述過濾加載單元輸出顯示圖像繪制指令;過濾加栽單元, 一端連接于所述圖像顯示處理引擎,另一端連接于顯示適配器,用于在接收到所述顯示圖像繪制指令時(shí)根據(jù)顯示適配器的注冊(cè)能力判斷所述顯示適配器能否執(zhí)行所述顯示圖像繪制指令,在所述顯示適配器能執(zhí)行所述顯示圖像繪制指令時(shí),將所述顯示圖像繪制指令傳送至所述顯示適配器;緩存所述顯示適配器發(fā)送的所述顯示圖像數(shù)據(jù);顯示適配器,連接于所述過濾加載單元,根據(jù)接收的所述顯示圖像繪制指令生成顯示圖〗象數(shù)據(jù)并回傳至所述過濾加載單元。
其中,所述至少二個(gè)顯示器都與所述主機(jī)連接,具體為所述至少二個(gè)顯示器中至少一個(gè)連接于所述主^L中的顯示適配器的顯示圖形數(shù)據(jù)輸出接口 ,其余的所述至少二個(gè)顯示器中至少一個(gè)連接于所述主機(jī)中的過濾加載單元的顯示圖形數(shù)據(jù)輸出接口 。
本發(fā)明針對(duì)現(xiàn)有屏幕獲取技術(shù)不能應(yīng)用于Vista操作系統(tǒng)的缺點(diǎn),釆用在顯示適配器與圖像顯示處理引擎之間加載過濾驅(qū)動(dòng),由過濾驅(qū)動(dòng)接管顯示適配器的能力注冊(cè),并代圖像顯示處理引擎發(fā)出顯示圖像繪制指令,顯示適配器完成屏幕顯示圖像生成后,發(fā)送至過濾驅(qū)動(dòng)進(jìn)行緩存,再轉(zhuǎn)發(fā)到遠(yuǎn)端的備用圖像顯示終端顯示。本發(fā)明過濾驅(qū)動(dòng)輸出的屏幕顯示圖像數(shù)據(jù)與顯示適配器輸出的屏幕顯示圖像數(shù)據(jù)完全相同,因此過濾驅(qū)動(dòng)輸出的屏幕顯示圖像數(shù)據(jù)支持Vista的Aero效果,遠(yuǎn)端顯示終端能達(dá)到本地顯示終端一樣的顯示效果,并且,屏幕顯示圖像是在顯示適配器輸出數(shù)據(jù)之前獲取的,無需遠(yuǎn)端顯示終端進(jìn)行解密處理。本發(fā)明實(shí)現(xiàn)筒單,所截取的屏幕顯示圖像與本地顯示終端的圖像質(zhì)量相同。
圖1為本發(fā)明基于WDDM的屏幕獲取方法的流程圖2為本發(fā)明帶多顯示器的計(jì)算機(jī)系統(tǒng)的組成結(jié)構(gòu)示意圖。
具體實(shí)施例方式
以下結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
圖1為本發(fā)明基于WDDM的屏幕獲取方法的流程圖,如圖1所示,本發(fā)明基于WDDM的屏幕獲取方法包括
步驟101:顯示適配器與圖像顯示處理引擎之間加載過濾驅(qū)動(dòng)。這里,圖像顯示處理引擎可為才喿作系統(tǒng)的內(nèi)核服務(wù),顯示適配器為顯示卡及其驅(qū)動(dòng)等具有顯示圖像處理能力的軟硬件結(jié)合體。
首先加載過濾驅(qū)動(dòng),使該過濾驅(qū)動(dòng)接管操作系統(tǒng)中內(nèi)核服務(wù)Dxgkml.sys的注冊(cè)接口。內(nèi)核服務(wù)Dxgkrnl.sys是操作系統(tǒng)完成圖像顯示管理的系統(tǒng)文件,其參與系統(tǒng)所有的圖像生成管理。其次加載顯示驅(qū)動(dòng),由于過濾驅(qū)動(dòng)接管了內(nèi)核服務(wù)Dxgkml.sys的注冊(cè)接口 ,因此,所述顯示驅(qū)動(dòng)將應(yīng)向內(nèi)核服務(wù)Dxgkrnl.sys注冊(cè)的操作系統(tǒng)要求的設(shè)置/命令接口,注冊(cè)到所述過濾驅(qū)動(dòng)中,最后由所述過濾驅(qū)動(dòng)將過濾驅(qū)動(dòng)注冊(cè)的設(shè)置/命令接口再注冊(cè)到內(nèi)核服務(wù)Dxgkml.sys。這樣,即在顯示驅(qū)動(dòng)與內(nèi)核服務(wù)之間架設(shè)了一個(gè)代理方,由過濾驅(qū)動(dòng)協(xié)調(diào)顯示驅(qū)動(dòng)與內(nèi)核服務(wù)之間的指令交互,從而完成屏幕顯示圖像的生成。
步驟102:圖像顯示處理引擎輸出顯示圖像繪制指令;過濾驅(qū)動(dòng)解析所述顯示圖像繪制指令,根據(jù)顯示適配器的注冊(cè)能力判斷所述顯示適配器能否執(zhí)行所述顯示圖像繪制指令,在所述顯示適配器能執(zhí)行所述顯示圖像繪制指令時(shí),將所述顯示圖像繪制指令傳送至所述顯示適配器。操作系統(tǒng)接收到用戶的屏幕顯示圖像繪制指令后,通過內(nèi)核服務(wù)Dxgkml.sys發(fā)送至過濾驅(qū)動(dòng),過濾驅(qū)動(dòng)接收到顯示圖像繪制指令后,進(jìn)行解析,根據(jù)顯示驅(qū)動(dòng)向過濾驅(qū)動(dòng)注冊(cè)的各種能力來判斷顯示驅(qū)動(dòng)是否支持當(dāng)前的顯示圖像繪制指令,如果支持,則返回可執(zhí)行顯示圖像繪制指令消息,如果不支持,則返回不可執(zhí)行顯示圖像繪制指令消息。當(dāng)接收到顯示驅(qū)動(dòng)不支持當(dāng)前的顯示圖像繪制指令時(shí),內(nèi)核服務(wù)Dxgkml.sys向用戶反饋該不支持消息。在顯示驅(qū)動(dòng)能執(zhí)行所述顯示圖像繪制指令時(shí),將所述顯示圖像繪制指令傳送至所述顯示適配器。步驟103:所述顯示適配器根據(jù)所述顯示圖像繪制指令生成顯示圖像數(shù)據(jù)并回傳至所述過濾驅(qū)動(dòng)。顯示顯示適配器接收到所述顯示圖像繪制指令后,執(zhí)行該顯示圖像繪制指令,完成顯示圖像的繪制,并將繪制完成的顯示圖像數(shù)據(jù)發(fā)送給過濾驅(qū)動(dòng)。
步驟104:所述過濾驅(qū)動(dòng)緩存所述顯示圖像凄史據(jù)并轉(zhuǎn)送到遠(yuǎn)程顯示終端的相應(yīng)數(shù)據(jù)輸入端口。過濾驅(qū)動(dòng)緩存步驟103中所生成的待顯示的屏幕圖像數(shù)據(jù),傳送至顯示適配器加密后直接由本地顯示終端進(jìn)行顯示。同時(shí),將緩存的數(shù)據(jù)通過設(shè)定的傳送通道發(fā)送到遠(yuǎn)端顯示終端的對(duì)應(yīng)數(shù)據(jù)輸入端口 ,由遠(yuǎn)端顯示終端顯示該屏幕圖像。這樣,即實(shí)現(xiàn)了本地屏幕圖像的遠(yuǎn)端顯示,實(shí)現(xiàn)圖像共享/監(jiān)控等。過濾驅(qū)動(dòng)緩存的屏幕顯示圖像數(shù)據(jù)與顯示顯示適配器輸出的屏幕顯示圖像數(shù)據(jù)完全相同,因此所緩存的屏幕圖像數(shù)據(jù)完全支持Aero效果,由于所緩存并轉(zhuǎn)發(fā)遠(yuǎn)端的屏幕圖像數(shù)據(jù)并未經(jīng)顯示適配器的加密處理,因此遠(yuǎn)端顯示終端無需解密即可正常顯示。
作為一種優(yōu)化的手段,步驟104中過濾驅(qū)動(dòng)緩存顯示圖像數(shù)據(jù)后,判斷該顯示圖像數(shù)據(jù)是否有更新,若更新則轉(zhuǎn)發(fā)更新后的顯示圖像數(shù)據(jù),若無更新則不轉(zhuǎn)發(fā)所緩存的顯示圖像數(shù)據(jù)。當(dāng)然,在檢測(cè)到顯示圖像數(shù)據(jù)更新后,也可僅將更新區(qū)域的數(shù)據(jù)轉(zhuǎn)發(fā)到遠(yuǎn)端顯示終端指定端口 。
圖2為本發(fā)明帶多顯示器的計(jì)算機(jī)系統(tǒng)的組成結(jié)構(gòu)示意圖,如圖2所示,本發(fā)明帶多顯示器的計(jì)算機(jī)系統(tǒng)包括一主機(jī)IO和至少二顯示器11,顯示器11都與所述主機(jī)10連接。也就是說,本發(fā)明的至少二顯示器中,有至少一個(gè)是本地的顯示器,有至少一個(gè)是遠(yuǎn)端顯示器。
其中,所述主機(jī)10中包括圖像顯示處理引擎101,連接于過濾加載單元102,用于向所述過濾加載單元102輸出顯示圖像繪制指令;過濾加載單元102,一端連接于所述圖像顯示處理引擎101,另一端連接于顯示適配器103,用于在接收到所述顯示圖像繪制指令時(shí)根據(jù)顯示適配器103的注冊(cè)能力判斷所述顯示適配器103能否執(zhí)行所迷顯示圖像繪制指令,在所述顯示適配器103能執(zhí)行所述顯示圖像繪制指令時(shí),將所述顯示圖像繪制指令傳送至所述顯示適配器103;緩存所述顯示適配器103發(fā)送的所述顯示圖像數(shù)據(jù);顯示適配器103,連接于所述過濾加載單元102,根據(jù)接收的所述顯示圖像繪制指令生成顯示圖像數(shù)據(jù)并回傳至所述過濾加載單元102。
過濾加載單元102即為設(shè)置在圖像顯示處理引擎101與顯示適配器103之間的代理,過濾加載單元102接管顯示適配器103的能力注冊(cè),同時(shí)接收?qǐng)D像顯示處理引擎101的顯示圖像繪制指令,并下發(fā)給顯示適配器103。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖像顯示處理引擎101可由操作系統(tǒng)的內(nèi)核服務(wù)Dxgkrnl.sys來實(shí)現(xiàn),顯,適配器103可由顯示卡及其驅(qū)動(dòng)來實(shí)現(xiàn)。
本發(fā)明中,所述至少二個(gè)顯示器都與所述主機(jī)連接,具體為至少一個(gè)顯示器連接于所述主機(jī)10中的顯示適配器103的顯示圖形數(shù)據(jù)輸出接口 ,也即本地顯示輸出;至少一個(gè)顯示器連接于所述主機(jī)10中的過濾加載單元102的顯示圖形數(shù)據(jù)輸出接口,也即遠(yuǎn)端顯示輸出。
作為一種優(yōu)化的手段,過濾加載單元102緩存顯示圖像數(shù)據(jù)后,判斷當(dāng)前待顯示圖像數(shù)據(jù)與前一顯示圖像數(shù)據(jù)相比是否有更新,若更新則向遠(yuǎn)端圖像輸出端口轉(zhuǎn)發(fā)更新后的顯示圖像數(shù)據(jù),若無更新則不轉(zhuǎn)發(fā)所緩存的顯示圖像數(shù)據(jù)。當(dāng)然,在檢測(cè)到顯示圖像數(shù)據(jù)更新后,也可僅將更新區(qū)域的數(shù)據(jù)轉(zhuǎn)發(fā)到遠(yuǎn)端顯示終端指定端口 。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
9
權(quán)利要求
1、一種基于WDDM的屏幕獲取方法,其特征在于,該方法包括圖像顯示處理引擎輸出顯示圖像繪制指令;過濾驅(qū)動(dòng)解析所述顯示圖像繪制指令,根據(jù)顯示適配器的注冊(cè)能力判斷所述顯示適配器能否執(zhí)行所述顯示圖像繪制指令,在所述顯示適配器能執(zhí)行所述顯示圖像繪制指令時(shí),將所述顯示圖像繪制指令傳送至所述顯示適配器;所述顯示適配器根據(jù)所述顯示圖像繪制指令生成顯示圖像數(shù)據(jù)并回傳至所述過濾驅(qū)動(dòng);所述過濾驅(qū)動(dòng)緩存所述顯示圖像數(shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的基于WDDM的屏幕獲取方法,其特征在于,該 方法還包括所述過濾驅(qū)動(dòng)將緩存的所述顯示圖像數(shù)據(jù)輸出到指定的備用顯示設(shè)備的輸 入端口。
3、 根據(jù)權(quán)利要求l所述的基于WDDM的屏幕獲取方法,其特征在于,所 述過濾驅(qū)動(dòng)加栽在圖像顯示處理引擎與顯示適配器之間,所述顯示適配器向所 述過濾驅(qū)動(dòng)注冊(cè)其能力信息,所述過濾驅(qū)動(dòng)接管所述圖像顯示處理引擎的圖像 繪制指令輸出。
4、 根據(jù)權(quán)利要求2所述的基于WDDM的屏幕獲取方法,其特征在于,所 述過濾驅(qū)動(dòng)將緩存的所述顯示圖像數(shù)據(jù)輸出到指定的備用顯示設(shè)備的輸入端 口,具體為判斷當(dāng)前緩存的待輸出顯示圖像數(shù)據(jù)與前一 已輸出顯示圖像數(shù)據(jù)比較是否 有更新,在更新時(shí)將更新部分輸出到指定的備用顯示設(shè)備的輸入端口 。
5、 一種帶多顯示器的計(jì)算機(jī)系統(tǒng),其特征在于,該系統(tǒng)包括 一主機(jī);至少二顯示器,所述至少二個(gè)顯示器都與所述主機(jī)連接;其中,所述主機(jī)中包括圖像顯示處理引擎,連接于過濾加載單元,用于向所述過濾加載單元輸出顯示圖像繪制指令;過濾加載單元, 一端連接于所述 圖像顯示處理引擎,另一端連接于顯示適配器,用于在接收到所述顯示圖像繪 制指令時(shí)根據(jù)顯示適配器的注冊(cè)能力判斷所述顯示適配器能否執(zhí)行所述顯示圖 像繪制指令,在所述顯示適配器能執(zhí)行所述顯示圖^f象繪制指令時(shí),將所述顯示 圖像繪制指令傳送至所述顯示適配器;緩存所述顯示適配器發(fā)送的所述顯示圖 像數(shù)據(jù);顯示適配器,連接于所述過濾加載單元,才艮據(jù)接收的所述顯示圖像繪 制指令生成顯示圖像數(shù)據(jù)并回傳至所述過濾加栽單元。
6、根據(jù);f又利要求5所述的系統(tǒng),其特征在于,所述至少二個(gè)顯示器都與所 述主機(jī)連接,具體為所述至少二個(gè)顯示器中至少一個(gè)連"l矣于所述主沖幾中的顯示適配器的顯示圖 形數(shù)據(jù)輸出接口 ,其余的所述至少二個(gè)顯示器中至少一個(gè)連接于所述主機(jī)中的 過濾加載單元的顯示圖形數(shù)據(jù)輸出接口 。
全文摘要
本發(fā)明公開了一種基于WDDM的屏幕獲取方法,涉及屏幕獲取技術(shù),為解決當(dāng)前技術(shù)不適用Vista而提出,所采用的技術(shù)方案是圖像顯示處理引擎輸出顯示圖像繪制指令;過濾驅(qū)動(dòng)解析所述顯示圖像繪制指令,根據(jù)顯示適配器的注冊(cè)能力判斷所述顯示適配器能否執(zhí)行所述顯示圖像繪制指令,在所述顯示適配器能執(zhí)行所述顯示圖像繪制指令時(shí),將所述顯示圖像繪制指令傳送至所述顯示適配器;所述顯示適配器根據(jù)所述顯示圖像繪制指令生成顯示圖像數(shù)據(jù)并回傳至所述過濾驅(qū)動(dòng);所述過濾驅(qū)動(dòng)緩存所述顯示圖像數(shù)據(jù)。本發(fā)明同時(shí)公開了一種利用上述方法的帶多顯示器的計(jì)算機(jī)系統(tǒng)。本發(fā)明實(shí)現(xiàn)簡(jiǎn)單,所截取的屏幕顯示圖像與本地顯示終端的圖像質(zhì)量相同。
文檔編號(hào)G06F3/14GK101464785SQ20071017971
公開日2009年6月24日 申請(qǐng)日期2007年12月17日 優(yōu)先權(quán)日2007年12月17日
發(fā)明者飛 周, 孫成昆, 李洪偉, 焦悅光 申請(qǐng)人:聯(lián)想(北京)有限公司