Driver Problems? Questions? Issues?
Put OSR's experience to work for you! Contact us for assistance with:
  • Creating the right design for your requirements
  • Reviewing your existing driver code
  • Analyzing driver reliability/performance issues
  • Custom training mixed with consulting and focused directly on your specific areas of interest/concern.
Check us out. OSR, the Windows driver experts.

Monthly Seminars at OSR Headquarters

East Coast USA
Windows Internals and SW Drivers, Dulles (Sterling) VA, 13 November 2017

Kernel Debugging & Crash Analysis for Windows, Nashua (Amherst) NH, 4 December 2017

Writing WDF Drivers I: Core Concepts, Nashua (Amherst) NH, 8 January 2018

WDF Drivers II: Advanced Implementation Techniques, Nashua (Amherst) NH, 15 January 2018


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 9  
28 Nov 17 20:18
jiang weilin
xxxxxx@cvte.com
Join Date: 28 Nov 2017
Posts To This List: 5
How to implement virtual display adapter?

WDDM is kernel-display only driver , but it just works for actual physics display adapter . so , I develop a virtual PCI bus driver , and it create a virtual display adapter.while I load KMDOD sample for the virtual display adapter , the device manager report code (31) . My questions : 1. Virtual display adapter , a virtual hardware , can be achieved by this way (through virtual PCI bus)? 2. If it can be achieved by point 1, the PCI bus driver how to implement IRP_MN_QUERY_RESOURCE and IRP_MN_QUERY_RESOURCE_REQUIREDMENT ? Please advise, thanks.
  Message 2 of 9  
28 Nov 17 22:52
JiaBang Lin
xxxxxx@gmail.com
Join Date: 11 Sep 2009
Posts To This List: 27
How to implement virtual display adapter?

virtual PCI bus is pain in the ass. The system port driver (dxgkrnl.sys) checks the PCI device properties (such as interrupt line, PCI class/subclass code, memory bar,...etc) . It is very hard to cheat dxgkrnl.sys by emulating a PCI device. 2017-11-29 9:18 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: > WDDM is kernel-display only driver , but it just works for actual physics > display adapter . so , I develop a virtual PCI bus driver , and it create a > virtual display adapter.while I load KMDOD sample for the virtual display > adapter , the device manager report code (31) . > > My questions : > 1. Virtual display adapter , a virtual hardware , can be achieved by this > way (through virtual PCI bus)? > 2. If it can be achieved by point 1, the PCI bus driver how to implement > IRP_MN_QUERY_RESOURCE and IRP_MN_QUERY_RESOURCE_REQUIREDMENT ? <...excess quoted lines suppressed...> --
  Message 3 of 9  
28 Nov 17 23:50
jiang weilin
xxxxxx@cvte.com
Join Date: 28 Nov 2017
Posts To This List: 5
How to implement virtual display adapter?

thanks for your reply. 1) I think whatever PCI device information (such device id , hwid , resource , resource requirement etc) the system query must through the virtual PCI bus , so in the virtual bus driver, I can emulating PCI device information for its request. Am I wrong ? 2) Some software such "iDisplay" , it uses a iDisplayFilter.sys to filter all system device . In filtering the PCI root bus , the Filter driver create a virtual display adapter . My KMDOD sample can work with it . What do you think about this ?
  Message 4 of 9  
29 Nov 17 00:26
JiaBang Lin
xxxxxx@gmail.com
Join Date: 11 Sep 2009
Posts To This List: 27
How to implement virtual display adapter?

See my comment below. 2017-11-29 12:49 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: > thanks for your reply. > > 1) I think whatever PCI device information (such device id , hwid , > resource , resource requirement etc) the system query must through the > virtual PCI bus , so in the virtual bus driver, I can emulating PCI device > information for its request. > Am I wrong ? > > How do you emulate a "interrupt" ? If you can emulate interrupt, then you can continue with this path. 2) Some software such "iDisplay" , it uses a iDisplayFilter.sys to filter > all system device . In filtering the PCI root bus , the Filter driver > create a virtual display adapter . My KMDOD sample can work with it . > What do you think about this ? > > I have no idea about iDisplay. You have to try it on your own. > --- > NTDEV is sponsored by OSR > > Visit the list online at: <http://www.osronline.com/ <...excess quoted lines suppressed...> --
  Message 5 of 9  
29 Nov 17 01:32
jiang weilin
xxxxxx@cvte.com
Join Date: 28 Nov 2017
Posts To This List: 5
How to implement virtual display adapter?

Sorry, I am a beginnner . Can you tell me what is "Interrupt" ? thanks From: xxxxx@gmail.com Date: 2017-11-29 13:25 To: Windows System Software Devs Interest List Subject: Re: [ntdev] How to implement virtual display adapter? See my comment below. 2017-11-29 12:49 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: thanks for your reply. 1) I think whatever PCI device information (such device id , hwid , resource , resource requirement etc) the system query must through the virtual PCI bus , so in the virtual bus driver, I can emulating PCI device information for its request. Am I wrong ? How do you emulate a "interrupt" ? If you can emulate interrupt, then you can continue with this path. 2) Some software such "iDisplay" , it uses a iDisplayFilter.sys to filter all system device . In filtering the PCI root bus , the Filter driver create a virtual display adapter . My KMDOD sample can work with it . What do you think about this ? I have no idea about iDisplay. You have to try it on your own. --- NTDEV is sponsored by OSR Visit the list online at: <http://www.osronline.com/showlists.cfm?list=ntdev> MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at <http://www.osr.com/seminars> To unsubscribe, visit the List Server section of OSR Online at <http://www.osronline.com/page.cfm?name=ListServer> --- NTDEV is sponsored by OSR Visit the list online at: MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at To unsubscribe, visit the List Server section of OSR Online at
  Message 6 of 9  
29 Nov 17 01:38
JiaBang Lin
xxxxxx@gmail.com
Join Date: 11 Sep 2009
Posts To This List: 27
How to implement virtual display adapter?

Interrupt is a mechansm for the hardware to notify driver that there are something in the device that requires the driver to service. A normal GPU typically fires interrupt for VSYNC/DMA completion/.... Dxgkrnl.sys would definitely check if the device has interrupt capability or not. 2017-11-29 14:31 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: > Sorry, I am a beginnner . Can you tell me what is "Interrupt" ? thanks > > > *From:* xxxxx@gmail.com <xxxxx@lists.osr.com> > *Date:* 2017-11-29 13:25 > *To:* Windows System Software Devs Interest List <xxxxx@lists.osr.com> > *Subject:* Re: [ntdev] How to implement virtual display adapter? > See my comment below. > > 2017-11-29 12:49 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: <...excess quoted lines suppressed...> --
  Message 7 of 9  
29 Nov 17 08:32
jiang weilin
xxxxxx@cvte.com
Join Date: 28 Nov 2017
Posts To This List: 5
How to implement virtual display adapter?

Thank you very mush. It seem to be so difficult to do this. Are there any other way to emulate virtual monitor? > ?? 2017??11??29????14:xxxxx@gmail.com <xxxxx@lists.osr.com> ?????? > > Interrupt is a mechansm for the hardware to notify driver that there are something in the device that requires the driver to service. A normal GPU typically fires interrupt for VSYNC/DMA completion/.... Dxgkrnl.sys would definitely check if the device has interrupt capability or not. > > 2017-11-29 14:31 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: >> Sorry, I am a beginnner . Can you tell me what is "Interrupt" ? thanks >> >> >> From: xxxxx@gmail.com >> Date: 2017-11-29 13:25 <...excess quoted lines suppressed...> --
  Message 8 of 9  
29 Nov 17 21:25
JiaBang Lin
xxxxxx@gmail.com
Join Date: 11 Sep 2009
Posts To This List: 27
How to implement virtual display adapter?

Try Indirect Display Driver <https://docs.microsoft.com/en-us/windows-hardware/drivers/display/indirect-displ ay-driver-model-overview> 2017-11-29 21:30 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: > > Thank you very mush. > > It seem to be so difficult to do this. > Are there any other way to emulate virtual monitor? > > > ??? 2017???11???29??????14:xxxxx@gmail.com <xxxxx@lists.osr.com> ????????? > > Interrupt is a mechansm for the hardware to notify driver that there are <...excess quoted lines suppressed...> --
  Message 9 of 9  
30 Nov 17 05:39
jiang weilin
xxxxxx@cvte.com
Join Date: 28 Nov 2017
Posts To This List: 5
How to implement virtual display adapter?

Eh.. Indirect Display Driver is only support Windows 10 1607 or later . Anyway , this is another way to implement virtual monitor. Hey , I found your "virtual-display" project in Github which can be used in Win10 correctly . It is amazing . There is such a way to achieve virtual monitor . From: xxxxx@gmail.com Date: 2017-11-30 10:24 To: Windows System Software Devs Interest List Subject: Re: [ntdev] How to implement virtual display adapter? Try Indirect Display Driver 2017-11-29 21:30 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: Thank you very mush. It seem to be so difficult to do this. Are there any other way to emulate virtual monitor? 在 2017年11月29日,14:xxxxx@gmail.com <xxxxx@lists.osr.com> 写道: Interrupt is a mechansm for the hardware to notify driver that there are something in the device that requires the driver to service. A normal GPU typically fires interrupt for VSYNC/DMA completion/.... Dxgkrnl.sys would definitely check if the device has interrupt capability or not. 2017-11-29 14:31 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: Sorry, I am a beginnner . Can you tell me what is "Interrupt" ? thanks From: xxxxx@gmail.com Date: 2017-11-29 13:25 To: Windows System Software Devs Interest List Subject: Re: [ntdev] How to implement virtual display adapter? See my comment below. 2017-11-29 12:49 GMT+08:00 xxxxx@cvte.com <xxxxx@lists.osr.com>: thanks for your reply. 1) I think whatever PCI device information (such device id , hwid , resource , resource requirement etc) the system query must through the virtual PCI bus , so in the virtual bus driver, I can emulating PCI device information for its request. Am I wrong ? How do you emulate a "interrupt" ? If you can emulate interrupt, then you can continue with this path. 2) Some software such "iDisplay" , it uses a iDisplayFilter.sys to filter all system device . In filtering the PCI root bus , the Filter driver create a virtual display adapter . My KMDOD sample can work with it . What do you think about this ? I have no idea about iDisplay. You have to try it on your own. --- NTDEV is sponsored by OSR Visit the list online at: <http://www.osronline.com/showlists.cfm?list=ntdev> MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at <http://www.osr.com/seminars> To unsubscribe, visit the List Server section of OSR Online at <http://www.osronline.com/page.cfm?name=ListServer> --- NTDEV is sponsored by OSR Visit the list online at: MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at To unsubscribe, visit the List Server section of OSR Online at --- NTDEV is sponsored by OSR Visit the list online at: <http://www.osronline.com/showlists.cfm?list=ntdev> MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at <http://www.osr.com/seminars> To unsubscribe, visit the List Server section of OSR Online at <http://www.osronline.com/page.cfm?name=ListServer> --- NTDEV is sponsored by OSR Visit the list online at: MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at To unsubscribe, visit the List Server section of OSR Online at --- NTDEV is sponsored by OSR Visit the list online at: <http://www.osronline.com/showlists.cfm?list=ntdev> MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at <http://www.osr.com/seminars> To unsubscribe, visit the List Server section of OSR Online at <http://www.osronline.com/page.cfm?name=ListServer> --- NTDEV is sponsored by OSR Visit the list online at: MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at To unsubscribe, visit the List Server section of OSR Online at
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 21:42.


Copyright ©2015, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license