TWI397853B - 可支援多個顯示裝置的方法與系統 - Google Patents

可支援多個顯示裝置的方法與系統 Download PDF

Info

Publication number
TWI397853B
TWI397853B TW097150532A TW97150532A TWI397853B TW I397853 B TWI397853 B TW I397853B TW 097150532 A TW097150532 A TW 097150532A TW 97150532 A TW97150532 A TW 97150532A TW I397853 B TWI397853 B TW I397853B
Authority
TW
Taiwan
Prior art keywords
driver
display
request
wrapper
operating system
Prior art date
Application number
TW097150532A
Other languages
English (en)
Other versions
TW200928956A (en
Inventor
Jinliang Huang
Liang Tang
Original Assignee
S3 Graphics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by S3 Graphics Co Ltd filed Critical S3 Graphics Co Ltd
Publication of TW200928956A publication Critical patent/TW200928956A/zh
Application granted granted Critical
Publication of TWI397853B publication Critical patent/TWI397853B/zh

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/02Graphics controller able to handle multiple formats, e.g. input or output formats
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • G09G2370/045Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller using multiple communication channels, e.g. parallel and serial
    • G09G2370/047Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller using multiple communication channels, e.g. parallel and serial using display data channel standard [DDC] communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

可支援多個顯示裝置的方法與系統
本發明係有關於支援多個顯示裝置的方法與系統,且特別有關於微軟視窗作業系統顯示驅動器模型(WDDM)的架構下支援多顯示卡多螢幕(MAMM)功能的方法與系統。
隨著個人電腦的效能與使用者需求的增加,一台個人電腦上常常會同時運行多個應用程式,因此有時作業系統的視窗區域會顯得擁擠。針對這個問題,將一台個人電腦連接多個顯示螢幕成為趨勢。
最新版本的微軟視窗(Microsoft Windows)作業系統可支援多顯示卡多螢幕來解決上述問題,例如Windows XP作業系統的XP顯示驅動器模型(XP Display Driver Model,XDDM)和Windows Vista的Windows顯示驅動器模型(Windows Display Driver Model,WDDM)都支援多顯示卡多螢幕(Multiple-Adapter Multiple Monitor,MAMM)的功能。但是在Windows顯示驅動器模型架構下所有顯示卡必須被同一個驅動器所驅動。在所有顯示卡都是同一個供應者的情況下,由於供應者可調整自己的驅動器來驅動所有的顯示卡,可相對容易地達成目的。但是若在Windows Vista作業系統之下使用多個不同供應者的顯示卡則顯得相對困難,要求不同供應者合作以提供一個共同的驅動器也不切實際。因此對於Windows Vista作業系統而言,唯一的解決方法是使用XP顯示驅動器模型架構的驅動器來驅動不同供應者的多個顯示卡,因為XP顯示驅動器模型架構沒有單一驅動器的限制。但是XP顯示驅動器模型架構的驅動器並不支援最新的Windows顯示驅動器模型,而且也不支援某些最新的應用軟體,例如Direct X 10。
本發明提供可支援多個螢幕顯示裝置的方法與系統。其中一種於電腦系統可支援多顯示卡多螢幕的方法包含:初始化一個作業系統系統;自作業系統發送請求至一個驅動器封套器;藉由驅動器封套器判斷請求的辨識值;根據辨識值傳送請求至對應的顯示驅動器;以及由對應的顯示驅動器驅動對應的顯示裝置以執行請求。
根據本發明的一個實施例,此方法還包含藉由驅動器封套器回傳顯示驅動器的回應至作業系統。
根據本發明的一個實施例,初始化作業系統的步驟還包含:載入一個過濾驅動器;藉由過濾驅動器攔截來自顯示驅動器的一個輸入輸出請求;傳送關於顯示驅動器之辨識值的相關資訊給過濾驅動器;以及傳送驅動器封套器的辨識值資訊至作業系統。
根據本發明的一個實施例,此方法還包含儲存關於顯示驅動器之辨識值的相關資訊到驅動器封套器,其中請求之辨識值的判斷即是根據上述儲存的資料。
根據本發明的一個實施例,辨識值可為一個顯示驅動器介面函數位址、一個製造識別符或是型號識別符,其中電腦系統的每一個顯示裝置皆有獨特的辨識值。
根據本發明的一個實施例,每一個顯示驅動器對應至一或多個顯示裝置。
根據本發明的一個實施例,作業系統為微軟Windows Vista作業系統。
本發明還提供一種可支援多個顯示裝置的繪圖系統,此繪圖系統包含:一個第一顯示驅動器,用以驅動一個第一顯示裝置;一個第二顯示驅動器,用以驅動一個第二顯示裝置;一個作業系統的次系統,用以發送請求;以及一個驅動器封套器,用以根據請求的函數位址判斷並分派請求;其中當此函數位址被判斷為對應至第一顯示裝置時,傳送此請求至第一顯示驅動器;而當此函數位址被判斷為對應至第二顯示裝置時,傳送此請求至第二顯示驅動器。
根據本發明的一個實施例,此驅動器封套器更用以從第一顯示裝置和第二顯示裝置回傳對應於此請求的回應至作業系統的次系統。
根據本發明的一個實施例,其中第一顯示驅動器包含一個第一使用者模式驅動器和一個第一核心模式驅動器,第二顯示驅動器包含一個第二使用者模式驅動器和一個第二核心模式驅動器,而驅動器封套器包含一個對應於第一使用者模式驅動器和第二使用者模式驅動器的使用者模式驅動器封套器,以及一個對應於第一核心模式驅動器和第二核心模式驅動器的核心模式驅動器封套器。
根據本發明的一個實施例,使用者模式驅動器封套器分派來自作業系統的次系統的請求至第一使用者模式驅動器和第二使用者模式驅動器其中之一,而核心模式驅動器封套器分派來自作業系統的次系統的請求至第一核心模式驅動器和第二核心模式驅動器其中之一。
根據本發明的一個實施例,第一顯示驅動器還包含一個第一載入客戶顯示驅動器,第二顯示驅動器還包含一個第二載入客戶顯示驅動器,而驅動器封套器還包含一個對應於第一載入客戶顯示驅動器和第二載入客戶顯示驅動器的載入客戶顯示驅動器封套器。
根據本發明的一個實施例,載入客戶顯示驅動器封套器分派來自作業系統的次系統的請求至第一載入客戶顯示驅動器和第二載入客戶顯示驅動器其中之一。
本發明又提供一個具有多顯示卡多螢幕功能的電腦系統,此電腦系統包含:一個作業系統,用以發送請求;一個驅動器封套單元,耦接於作業系統並用以自作業系統接收請求;一個繪圖驅動單元,耦接於驅動器封套單元並包含使用者模式驅動器和核心模式驅動器,此繪圖驅動單元用以自驅動器封套單元接收請求以及處理請求。其中驅動器封套單元用以自作業系統分派請求至使用者模式驅動器,並自使用者模式驅動器回傳回應至作業系統,以及自作業系統分派請求至核心模式驅動器,並自核心模式驅動器回傳回應至作業系統。
根據本發明的一個實施例,此電腦系統還包含一個被繪圖驅動單元所驅動的繪圖硬體單元。此繪圖硬體單元包含複數個顯示裝置,每個顯示裝置被一個對應的使用者模式驅動器和一個對應的核心模式驅動器所驅動。驅動器封套單元分派請求給被指派來執行請求的顯示裝置所對應的使用者模式驅動器和核心模式驅動器。
根據本發明的一個實施例,驅動器封套單元自作業系統的一個繪圖應用程式介面分派請求至使用者模式驅動器,自作業系統的一個繪圖核心單元分派請求至核心模式驅動器。驅動器封套單元並保持請求的顯示驅動器介面函數位址與核心模式驅動器的對應關係。
根據本發明的一個實施例,此作業系統支援於Windows顯示驅動器模型下之作業系統的多顯示卡多螢幕功能。
於本發明的方法與系統中,驅動器封套單元作為作業系統與顯示驅動器之間的介面,期可隱藏顯示驅動器不回作業系統所知,並提供作業系統標準的顯示驅動器介面。從作業系統的角度來看,驅動器封套單元是用以自作業系統接收請求的唯一共同驅動器。驅動器封套單元自作業系統分派請求至顯示驅動器,並自顯示驅動器回傳回應至作業系統。本發明的驅動器封套單元可相容於來自不同供應者的顯示驅動器,因此使得Windows Vista作業系統的Windows顯示驅動器模型可支援多個不同供應者或不同型號的顯示卡,甚者,本發明不需額外對現存的顯示驅動器作修改。
為了讓本發明之目的、特徵、及優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式第1圖至第4圖,做詳細之說明。本發明說明書提供不同的實施例來說明本發明不同實施方式的技術特徵。其中,實施例中的各元件之配置係為說明之用,並非用以限制本發明。且實施例中圖式標號之部分重複,係為了簡化說明,並非意指不同實施例之間的關聯性。
第1圖繪示本發明一實施例可支援多個顯示裝置的繪圖系統。此繪圖系統至少包含一個應用程式單元10、一個作業系統20、一個驅動器封套單元30、一個繪圖驅動單元40以及一個繪圖硬體單元50。應用程式單元10耦接至作業系統20,而作業系統又耦接至驅動器封套單元30。驅動器封套單元30界於作業系統20與繪圖驅動單元40以作為介面,繪圖驅動單元40再耦接至繪圖硬體單元50。
繪圖硬體單元50可包含多個顯示裝置(未繪示),在顯示裝置來自不同供應者的情況下,每個顯示裝置分別耦接至對應的顯示驅動器(未繪示)。因此繪圖驅動單元40可包含多個分別連接至每個顯示裝置的顯示驅動器。如所前述,不同供應商的顯示裝置可能需要不同的驅動器使其可與作業系統正常運作。然而作業系統20在多個顯示驅動器同時存在的情況下,可能只能與其中一個互動。在此情況下,驅動器封套單元30運作為作業系統20與此多個顯示驅動器之間的介面,因此,顯示器封套單元30可被視為唯一存在於作業系統20的顯示驅動器。當作業系統20發出請求時,驅動器封套單元30傳送請求至繪圖驅動單元40中對應的顯示驅動器以處理此請求。
根據本發明的一個實施例,作業系統20發出包含一辨識值的請求,此辨識值指示該請求所指向的顯示裝置。換句話說,繪圖硬體單元50中的每個顯示裝置皆被指派一個獨特的辨識值。作業系統20可藉此辨識值指認連接於電腦系統的所有顯示裝置,並藉此發出請求給適當的顯示裝置。驅動器封套單元30從作業系統20接收請求,然後根據辨識值判斷該請求應該指向繪圖硬體單元50中的哪個顯示裝置。當驅動器封套單元30確認正確的顯示驅動器並傳送該請求後,顯示驅動器即可處理該請求以使對應的顯示裝置可回應作業系統20。
根據本發明的一個實施例,繪圖硬體單元50中的某些顯示裝置可對應至繪圖驅動單元40中同一個顯示驅動器。舉例而言,一部份的顯示裝置是來自相同的供應者,而其餘的顯示裝置分別來自不同的供應者。相同供應者的顯示裝置可被同一個驅動器所驅動,進而減少驅動器的數量。儘管如此,由相同驅動器所驅動的多個顯示裝置仍然分別擁有各別的辨識值。作業系統20發出請求之後,驅動器封套單元30根據辨識值傳送該請求至對應的驅動器。驅動器封套單元30可建立顯示裝置與顯示器之間的辨識值對照表,當接到請求時即可根據此對照表判斷其辨識值。
以上介紹了本發明的高階實施例,下面將詳述其方法與系統。第2圖繪示了本發明可支援多個顯示裝置的繪圖系統的實施例,可適用於例如Windows顯示驅動器模型架構。與第1圖相似,此繪圖系統包含應用程式單元10、作業系統20的次系統、驅動器封套單元30以及繪圖驅動單元40。電腦的繪圖系統通常包含了兩個主要的組成:使用者空間與核心空間,如虛線所劃分。核心空間可與繪圖硬體單元直接互動,然而使用者空間則與繪圖硬體單元隔離且無法直接對其作存取。
作業系統20的子系統至少包含Direct3D執行程式庫(Runtime Library)201、OpenGL執行程式庫202、Windows繪圖裝置介面(Graphics Device Interface)客戶動態連結程式庫(Dynamic Link Library,DLL)(GDI32 DLL)203和繪圖核心204。驅動器封套單元30至少包含使用者模式顯示(User-Mode Display,UMD)驅動器封套器301、OpenGL載入客戶顯示(Installed Client Display,ICD)驅動器封套器302和核心模式顯示(Kernel-Mode Display,KMD)驅動器封套器304。繪圖驅動單元40至少包含使用者模式顯示UMD驅動器401、載入客戶顯示ICD驅動器402和核心模式顯示KMD驅動器404。繪圖核心204、KMD驅動器封包器304和KMD驅動器封套器404位於核心空間,而其他元件則位於使用者空間之內。驅動器封套單元30可載入於作業系統20(例如微軟的Windows Vista),並運作為單一的共同顯示驅動器。UMD驅動器401、ICD驅動器402和KMD驅動器404可根據電腦所連接的繪圖硬體裝置來配置。UMD驅動器封套器301、ICD驅動器封套器302和KMD驅動器封套器304被配置為UMD驅動器401、ICD驅動器402和KMD驅動器404與作業系統20的次系統互動的介面
應用程式10可經由兩條路徑透過作業系統20發送請求至繪圖硬體單元50。作業系統包含諸如Direct3D(D3D,屬於DirectX系列)或者OpenGL等的繪圖應用程式介面來跟應用程式互動,其中DirectX是由微軟所研發。而OpenGL是由Silicon Graphics Inc.所研發的。來自DirectX介面的請求被傳送至D3D執行程式庫201再傳送至UMD驅動器封套器301,如上所述,UMD驅動器封套器301可作為作業系統20的D3D執行程式庫201與UMD驅動器401之間的介面。當UMD驅動器401處理完請求之後,路徑再回朔至UMD驅動器封套器301然後到DSD執行程式庫201,如此便完成此請求在使用者空間的處理。接著DSD執行程式庫201將請求從使用者空間傳送至核心空間,最終到達KMD驅動器401以驅動繪圖硬體單元50。KMD驅動器封套器304可當做繪圖核心204與KMD驅動器404之間的介面以傳遞此請求。
當請求來自OpenGL時,其傳遞路徑是由OpenGL執行程式庫202透過ICD驅動器封套器302、ICD驅動器402再到GDI32動態連結程式庫203。與UMD驅動器封套器301相同、ICD驅動器封套器302是做為OpenGL執行程式庫202和ICD驅動器402之間的介面。而GDI32程式庫203則是做為OpenGL和DirectX之間的介面以提供核心模式的存取。熟習此技藝者應可理解,OpenGL和DirectX為兩種不同的規格,OpenGL的請求(包括D3D)無法直接在DirectX的環境下被處理,因此需要透過例如GDI32動態連結程式庫203之類的介面來處理。與上述D3D請求的流程相似,GDI32動態連結程式庫203將請求自使用者空間傳送至核心空間的繪圖核心204,接著核心空間204再傳送請求至KMD驅動器封套器304和KMD驅動器404。
根據本發明的一個實施例,UMD驅動器401、ICD驅動器402和KMD驅動器404可分別包含多個驅動器對應至多個顯示裝置。舉例來說,當電腦系統連接兩個不同供應者的顯示裝置時,每個顯示裝置可各自對應至個別的UMD驅動器401、ICD驅動器402和KMD驅動器404,而不是共用相同的驅動器。但是電腦系統中僅會有一個UMD驅動器封套器301、一個ICD驅動器封套器302和一個KMD驅動器封套器304存在作業系統的次系統和顯示驅動單元40的多個驅動器之間。UMD驅動器封套器301、ICD驅動器封套器302和KMD驅動器封套器304根據請求的辨識值判斷請求所指向的顯示驅動器,此辨識值表示對應的顯示裝置,其內容可能是例如顯示裝置的顯示驅動器介面函數位址。
驅動器封套單元30僅提供作業系統20標準的顯示驅動器介面,請求的實際操作並非由驅動器封套單元30直接完成,而是由隱藏於其下的繪圖驅動單元40內的多個顯示驅動器。驅動器封套單元30對作業系統20隱藏顯示驅動器不為其所知,對作業系統20而言,驅動器封套單元30是唯一可接收請求的共同驅動器。驅動器封套單元30從作業系統20分派請求給顯示驅動器,再從顯示驅動器回傳回應給作業系統20,而且可相容於不同供應者的顯示裝置。依此方式,本發明的電腦系統可支援不同供應者的不同顯示裝置。
根據本發明的一個實施例,繪圖核心204可以是Windows DirectX繪圖核心,電腦系統可以配置為WDDM架構,並且支援OpenGL和/或DirectX。根據本發明的一個實施例,作業系統可以是Windows XP、Windows Vista或是任何其他可支援多顯示卡多螢幕的作業系統。
接著請參看第3圖,其繪示本發明一實施例中於核心空間內如何分派請求的流程圖。首先,繪圖核心204在接收到來自使用者空間的請求之後將請求傳送至KMD驅動器封套器304之內的一個KMD顯示驅動器介面單元305(步驟31)。接著KMD驅動器封套器304根據請求內的辨識值分派請求。此辨識值可以是對應之顯示裝置的顯示驅動器介面函數位址、製造識別值或型號識別值。於第3圖的實施例中,KMD驅動器404包含兩個具有不同辨識值的驅動器,一個是用以驅動顯示裝置A 505的KMD驅動器A 405,另一個是用以驅動顯示裝置B 506的KMD驅動器B 406。如果請求是指向顯示裝置A 505,KMD驅動器封套器304將請求分派至KMD驅動器A 405。相對地,如果請求是指向顯示裝置B 506,KMD驅動器封套器304將請求分派至KMD驅動器B 406(步驟S32)。顯示裝置A和B可以是可***主機板擴充槽的單獨顯示卡,主機板內置的顯示卡,或是其他類似的裝置。
接著,顯示驅動器A/B控制其對應的顯示裝置A/B已完成請求(步驟S33),並回傳回應至KMD驅動器封套器304(步驟S34),最後KMD驅動器封套器304回傳回應至穨核心204(步驟S35)。依此方式,對作業系統20而言,KMD驅動器封套器304即為顯示裝置A和顯示裝置B的單一共同驅動器。
UMD驅動器封套器301和ICD驅動器封套器302以予KMD驅動器封套器304相似的方式分派作業系統20的請求。熟習此技藝者應可根據對第1圖至第3圖的理解推論驅動器封套單元30的其他細部運作方式,在此將不贅述。
驅動器封套單元30在分派作業系統20的請求前必需先得知其後的顯示裝置的辨識值,此辨識值可以是例如顯示裝置的顯示驅動器介面函數位址。對使用者空間的UMD驅動器封套器301和ICD驅動器封套器302而言辨識值的取得相對地較為容易,其可呼叫系統函數以獲得顯示裝置的顯示驅動器介面函數位址,並藉此分派請求。但對於核心空間的KMD驅動器封套器304而言,要取得辨識值較為因難。
第4圖繪示本發明一實施例的核心空間獲取顯示驅動器介面函數位址的方法之流程圖。如上所述,在WDDM架構下,即便電腦系統連接了多個顯示裝置,作業系統20僅允許載入單一顯示驅動器來執行操作。在電腦系統啟動時,作業系統20會藉由呼叫登錄函數(entry function)載入某個顯示裝置的KMD驅動器。每個KMD驅動器皆有各自對應的登錄函數,此登錄函數會接續呼叫一個系統函數使KMD驅動器發送一個輸入輸出請求給繪圖核心204。為回應此輸入輸出請求,對應的顯示裝置的顯示驅動器介面函數位址會被傳送至繪圖核心204以進行初始化。如果作業系統20試圖載入第二個顯示裝置,但發現第二個顯示裝置是由另一個驅動器所驅動,此載入便會失敗使得第二個顯示裝置無法工作。為了解決這個問題,作業系統會載入一個過濾驅動器60來隱藏第二個驅動器,使其可正常驅動第二個顯示裝置。過濾驅動器60會攔截輸入輸出請求並回傳KMD驅動器封套器304的顯示驅動器介面函數位址給繪圖核心204,同時儲存顯示裝置真正的顯示驅動器介面函數位址到KMD驅動器封套器304。從作業系統20的角度來看,電腦系統是載入了對應至單一共同驅動器的多個顯示裝置,而此單一共同驅動器即是KMD驅動器封套器304。
再回到第4圖的流程,首先過濾驅動器60被附接至繪圖核心204使其可過濾並攔截KMD驅動器A 405和KMD驅動器B 406發出至繪圖核心204的輸入輸出請求。於本發明的一個實施例中,過濾驅動器60可藉由在啟動時呼叫特定系統函數而附接。於本發明的另一個實施例中,過濾驅動器60可以跟驅動器封套單元40一起被載入,或者單獨載入於繪圖核心204。
每個KMD驅動器皆有對應的登錄函數,當作業系統啟動時會載入KMD驅動器並呼叫其登錄函數,登錄函數接續呼叫一個系統函數以發送輸入輸出請求給繪圖核心204,進而傳送顯示裝置的顯示驅動器介面函數位址以達到初始化。由於過濾驅動器60已被附接用來過濾與攔截輸入輸出請求,當作業系統20試圖載入顯示驅動器A 405的時候,其顯示驅動器介面函數位址是被過濾驅動器60所接收(步驟S42)。
接著,過濾驅動器60傳送KMD驅動器封套器304的顯示驅動器介面函數位址給繪圖核心204,使KMD驅動器封套器304作為面對作業系統20的單一共同驅動器(步驟S43)。再來過濾驅動器60傳送顯示裝置A 505的顯示驅動器介面函數位址給KMD驅動器封套器304(步驟S44)。當此步驟完成後,KMD驅動器封套器304便可以分派請求給KMD驅動器A 405以驅動顯示裝置A 505,因為KMD驅動器封套器304已獲得了顯示裝置A 505的顯示驅動器介面函數位址。
如前所述,KMD驅動器B 406被隱藏以避免被作業系統20載入,相反地,KMD驅動器封套器304呼叫一個特定的系統函數來載入KMD驅動器B 406(步驟S45)。載入KMD驅動器B 406近似於載入KMD驅動器A 405的方式。過濾驅動器60攔截KMD驅動器B 406的輸入輸出請求並接收其顯示驅動器介面函數位址(步驟S46)。接著,過濾驅動器60傳送顯示裝置B 506的顯示驅動器介面函數位址到KMD驅動器封套器304(步驟S47)。當此步驟完成後,KMD驅動器封套器304便可以分派請求給KMD驅動器B 406以驅動顯示裝置B 506,因為KMD驅動器封套器304已獲得了顯示裝置A 506的顯示驅動器介面函數位址。
當所有顯示裝置的顯示驅動器介面函數位址都被傳送並儲存至KMD驅動器封套器304之後,過濾驅動器60即可被繪圖核心204解除附接(步驟S48)。第4圖的流程就此終結。
於本發明的一個實施例,KMD驅動器A 405和KMD驅動器B 406皆可對應至一或多個顯示裝置。於本發明的另一個實施例,繪圖核心204可以是Windows DirectX繪圖核心,電腦系統的配置為WDDM架構,作業系統可以是Windows XP、Windows Vista或任何其他支援多顯示卡多螢幕的作業系統。繪圖系統可支援OpenGL和/或DirectX。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可以包含於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可以透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10...應用程式單元
20...作業系統
30...驅動器封套單元
40...顯示驅動單元
50...繪圖硬體單元
60...過濾驅動器
201...D3D執行程式庫
202...OpenGL執行程式庫
203...GDI32動態連結程式庫
204...繪圖核心
301...UMD驅動器封套器
302...ICD驅動器封套器
304...KMD驅動器封套器
305...KMD顯示驅動器介面
401...UMD驅動器
402...ICD驅動器
404...KMD驅動器
405...KMD驅動器A
406...KMD驅動器B
505...顯示裝置A
506...顯示裝置B
第1圖繪示本發明一個實施例的可支援多個顯示裝置的繪圖系統的方塊圖。
第2圖繪示本發明一個實施例的可支援多個顯示裝置的繪圖系統的方塊圖。
第3圖繪示本發明一個實施例中於核心空間內如何分派請求的流程圖。
第4圖繪示本發明一個實施例的核心空間獲取顯示驅動器介面函數位址的方法之流程圖。
10...應用程式單元
20...作業系統
30...驅動器封套單元
40...顯示驅動單元
50...繪圖硬體單元
201...D3D執行程式庫
202...OpenGL執行程式庫
203...GDI32動態連結程式庫
204...繪圖核心
301...UMD驅動器封套器
302...ICD驅動器封套器
304...KMD驅動器封套器
305...KMD顯示驅動器介面
401...UMD驅動器
402...ICD驅動器
404...KMD驅動器

Claims (12)

  1. 一種於電腦系統可支援多顯示卡多螢幕的方法,其中該電腦系統具有多個顯示驅動器,包含:初始化一個作業系統系統;自該作業系統發送一個請求至一個驅動器封套器;藉由該驅動器封套器判斷該請求的一個辨識值;根據該辨識值傳送該請求至該些顯示驅動器中對應的一個第一顯示驅動器與一第二顯示驅動器;以及由對應的該第一顯示驅動器驅動對應的一個第一顯示裝置,並由對應的該第二顯示驅動器驅動對應的一個第二顯示裝置,以執行該請求,其中各該顯示驅動器對應多個顯示裝置,且各該顯示裝置皆有獨特的辨識值;其中該第一顯示驅動器包括一個第一使用者模式驅動器與一個第一核心模式驅動器,而該第二顯示驅動器包括一個第二使用者模式驅動器與一個第二核心模式驅動器,其中該驅動器封套器包含一個對應於該第一使用者模式驅動器和該第二使用者模式驅動器的使用者模式驅動器封套器,以及一個對應於該第一核心模式驅動器和該第二核心模式驅動器的核心模式驅動器封套器。
  2. 如專利範圍第1項所述的方法,還包含藉由該驅動器封套器回傳該第一顯示驅動器與該第二顯示驅動器的回應至該作業系統。
  3. 如專利範圍第1項所述的方法,其中初始化該作業系統的步驟還包含: 載入一個過濾驅動器;藉由該過濾驅動器攔截來自該第一顯示驅動器與該第二顯示驅動器的輸入輸出請求;傳送關於該第一顯示驅動器與該第二顯示驅動器的相關辨識值資訊給該過濾驅動器;以及傳送該驅動器封套器的該相關辨識值資訊至該作業系統。
  4. 如專利範圍第3項所述的方法,還包含儲存關於該第一顯示驅動器與該第二顯示驅動器之該相關辨識值資訊到該驅動器封套器。
  5. 如專利範圍第4項所述的方法,其中該請求的該辨識值的判斷即是根據上述儲存的該相關辨識值資訊。
  6. 如專利範圍第1項所述的方法,其中該辨識值可為一個顯示驅動器介面函數位址、一個製造識別符或是型號識別符。
  7. 如專利範圍第1項所述的方法,其中該作業系統為微軟Windows Vista作業系統。
  8. 一種可支援多個顯示裝置的繪圖系統,包含:多個繪圖硬體單元,包括:多個第一顯示裝置;以及多個第二顯示裝置;一個第一顯示驅動器,用以驅動至少一該些第一顯示裝置;一個第二顯示驅動器,用以驅動至少一該些第二顯示 裝置;一個作業系統的次系統,用以發送一個請求;以及一個驅動器封套器,用以根據該請求的一個函數位址判斷並分派該請求;其中當該函數位址被判斷為對應至該第一顯示裝置時,傳送該請求至該第一顯示驅動器;當該函數位址被判斷為對應至該第二顯示裝置時,傳送該請求至該第二顯示驅動器;其中該第一顯示驅動器包括一個第一使用者模式驅動器與一個第一核心模式驅動器,而該第二顯示驅動器包括一個第二使用者模式驅動器與一個第二核心模式驅動器,其中該驅動器封套器包含一個對應於該第一使用者模式驅動器和該第二使用者模式驅動器的使用者模式驅動器封套器,以及一個對應於該第一核心模式驅動器和該第二核心模式驅動器的核心模式驅動器封套器。
  9. 如專利範圍第8項所述的繪圖系統,其中該驅動器封套器更用以從該第一顯示裝置和該第二顯示裝置回傳對應於該請求的回應至該作業系統的次系統。
  10. 如專利範圍第8項所述的繪圖系統,其中該使用者模式驅動器封套器分派來自該作業系統的次系統的該請求至該第一使用者模式驅動器和該第二使用者模式驅動器其中之一,而該核心模式驅動器封套器分派來自該作業系統的次系統的該請求至該第一核心模式驅動器和該第二核心模式驅動器其中之一。
  11. 如專利範圍第8項所述的繪圖系統,其中該第一顯示驅動器還包含一個第一載入客戶顯示驅動器,該第二顯示驅動器還包含一個第二載入客戶顯示驅動器,該驅動器封套器還包含一個對應於該第一載入客戶顯示驅動器和該第二載入客戶顯示驅動器的載入客戶顯示驅動器封套器。
  12. 如專利範圍第11項所述的繪圖系統,其中該載入客戶顯示驅動器封套器分派來自該作業系統的次系統的該請求至該第一載入客戶顯示驅動器和該第二載入客戶顯示驅動器其中之一。
TW097150532A 2007-12-31 2008-12-24 可支援多個顯示裝置的方法與系統 TWI397853B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US1780607P 2007-12-31 2007-12-31

Publications (2)

Publication Number Publication Date
TW200928956A TW200928956A (en) 2009-07-01
TWI397853B true TWI397853B (zh) 2013-06-01

Family

ID=40742581

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097150532A TWI397853B (zh) 2007-12-31 2008-12-24 可支援多個顯示裝置的方法與系統

Country Status (3)

Country Link
US (1) US8365199B2 (zh)
CN (1) CN101446889B (zh)
TW (1) TWI397853B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110063304A1 (en) 2009-09-16 2011-03-17 Nvidia Corporation Co-processing synchronizing techniques on heterogeneous graphics processing units
US9111325B2 (en) * 2009-12-31 2015-08-18 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US8780122B2 (en) 2009-09-16 2014-07-15 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete GPU
US9524138B2 (en) 2009-12-29 2016-12-20 Nvidia Corporation Load balancing in a system with multi-graphics processors and multi-display systems
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
GB2478583B (en) * 2010-03-11 2012-05-09 Displaylink Uk Ltd Improvements relating to operating systems
CN102411484B (zh) * 2010-09-20 2015-01-28 联想(北京)有限公司 一种显示***中的图像显示方法和装置
US20130038800A1 (en) * 2010-10-04 2013-02-14 Ben Yoo Universal User Interface App and Server
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
CN102662620A (zh) * 2012-04-17 2012-09-12 宁波Gqy视讯股份有限公司 基于设备驱动程序的拼接屏控制方法及其装置
CN103425440B (zh) * 2012-05-14 2017-05-24 联想(北京)有限公司 一种显示方法及电子设备
GB2502121B (en) * 2012-05-17 2014-07-02 Displaylink Uk Ltd Operation of a display system
US9459910B1 (en) 2013-03-13 2016-10-04 Emc Corporation Controlling a layered driver
US9378046B1 (en) * 2013-03-13 2016-06-28 Emc Corporation Manipulating hardware using a layered device driver
US9436621B1 (en) 2013-03-13 2016-09-06 Emc Corporation Layered device driver
GB2513660B (en) * 2013-05-03 2018-11-14 Displaylink Uk Ltd System for connecting a display over a general-purpose data transport
CN109933434B (zh) * 2018-04-12 2021-06-18 威盛电子股份有限公司 电子装置及扩展***设备的方法
TWI720426B (zh) * 2018-04-12 2021-03-01 威盛電子股份有限公司 電子裝置及擴展周邊設備的方法
US10894476B2 (en) * 2018-11-06 2021-01-19 Honda Motor Co., Ltd. Display system in a vehicle and a method for control thereof

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991542A (en) * 1996-09-13 1999-11-23 Apple Computer, Inc. Storage volume handling system which utilizes disk images
US6222529B1 (en) * 1999-05-05 2001-04-24 Shareware, Inc. Method and apparatus for providing multiple sessions on a single user operating system
US20040212610A1 (en) * 2003-04-25 2004-10-28 Dell Products L.P. Method and apparatus for associating display configuration information with respective displays of an information handling system
US7020798B2 (en) * 2002-06-27 2006-03-28 Microsoft Corporation Detecting low-level data corruption
TWI259393B (en) * 2004-12-31 2006-08-01 Giga Byte Tech Co Ltd Display device having plural display cards and method for same
WO2006129676A1 (ja) * 2005-05-31 2006-12-07 Science Park Corporation 監視方法、監視システム、システム用のプログラム、及びプログラムを記録した記録媒体
US20060282577A1 (en) * 2005-06-08 2006-12-14 Feitian Technologies Co. Ltd. Universal serial bus data transport method and device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061770A (en) * 1997-11-04 2000-05-09 Adaptec, Inc. System and method for real-time data backup using snapshot copying with selective compaction of backup data
CN1667568A (zh) * 2004-03-09 2005-09-14 明基电通股份有限公司 接口装置和显示卡
CN100420300C (zh) * 2004-12-24 2008-09-17 北京中星微电子有限公司 一种多屏幕显示方法与装置
US20060242270A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Isolation of user-mode device drivers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991542A (en) * 1996-09-13 1999-11-23 Apple Computer, Inc. Storage volume handling system which utilizes disk images
US6222529B1 (en) * 1999-05-05 2001-04-24 Shareware, Inc. Method and apparatus for providing multiple sessions on a single user operating system
US7020798B2 (en) * 2002-06-27 2006-03-28 Microsoft Corporation Detecting low-level data corruption
US20040212610A1 (en) * 2003-04-25 2004-10-28 Dell Products L.P. Method and apparatus for associating display configuration information with respective displays of an information handling system
TWI259393B (en) * 2004-12-31 2006-08-01 Giga Byte Tech Co Ltd Display device having plural display cards and method for same
WO2006129676A1 (ja) * 2005-05-31 2006-12-07 Science Park Corporation 監視方法、監視システム、システム用のプログラム、及びプログラムを記録した記録媒体
US20060282577A1 (en) * 2005-06-08 2006-12-14 Feitian Technologies Co. Ltd. Universal serial bus data transport method and device

Also Published As

Publication number Publication date
US20090172707A1 (en) 2009-07-02
TW200928956A (en) 2009-07-01
CN101446889B (zh) 2011-08-17
CN101446889A (zh) 2009-06-03
US8365199B2 (en) 2013-01-29

Similar Documents

Publication Publication Date Title
TWI397853B (zh) 可支援多個顯示裝置的方法與系統
CN102567052B (zh) 启用配置有图形处理器的服务器的远程管理的技术
US11710266B2 (en) Rendering method and apparatus
US9354900B2 (en) Method and apparatus for presenting a window in a system having two operating system environments
CN102402462B (zh) 用于对启用gpu的虚拟机进行负载平衡的技术
US8407717B2 (en) Parallel processing method for dual operating system
US6512526B1 (en) User specific execution of programs
US7658323B2 (en) Point-of-service (POS) and POS application compatability
US5774720A (en) Personality neutral graphics subsystem
RU2595909C2 (ru) Способ и аппарат для отображения образа прикладного объекта
US20070296718A1 (en) Dynamic resizing of graphics content rendered by an application to facilitate rendering of additional graphics content
US20180074956A1 (en) Method, apparatus, and electronic device for modifying memory data of a virtual machine
CA2231382C (en) System and method for managing device driver logical state information in an information handling system
US20190325562A1 (en) Window rendering method and terminal
KR20080067633A (ko) 재부팅 없는 디스플레이 드라이버 업그레이드
US5887169A (en) Method and apparatus for providing dynamic entry points into a software layer
US11928476B2 (en) Virtualized transaction terminal platform
EP0474059A2 (en) User interface for operating a computer processor
US7944421B2 (en) Image display system, image display method, image display device, image data processor, program, storage medium, and image processing program distribution server
WO2012138046A1 (ko) 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
CN101091161A (zh) 用于协作访客固件的设备和方法
KR101249735B1 (ko) 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US9058759B2 (en) Virtual display device drivers compatible with windows display driver model
US9766918B2 (en) Virtual system device identification using GPU to host bridge mapping
US20130086592A1 (en) Correlation of resources