Notifying User Mode App from Video Miniport Driver

Very good day to all experts,

This is my very first post and need help regarding basic problem.

I am working on Video Miniport Driver for Vista which communicates with DxgKrnl like VidePort is XP. I want to inform my user mode app about some event from Miniport Driver. I can use Escape call from User mode app to get info to Miniport driver but that will require me to keep some user mode thread waiting or some thread polling. I want some asyncronous notification from Miniport Driver to User mode app. I am looking for DTM favourable way with which i can acheive this.

So my question is what all options do i have to notify my user mode app from Miniport driver.

I cant use shared events or some other dispatcher objects as MSFT call it ‘Out of Band Communication’ and is not recommended. Is it possible to use Pnp Events as way of communication.

I am not sure please suggest me some way of doing this.

Any help is appreciated.

Thanks,
-Dhiren

Hi,
I am sure there are lots of experts in this group. Can somebody please help me on this? Or this is not the right group for askiing questions on Video Drivers?

Thanks,
Dhiren

Use WMI , refer the R200Sample WDK Sample

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@yahoo.co.in
Sent: Tuesday, January 23, 2007 11:12 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Notifying User Mode App from Video Miniport Driver

Hi,
I am sure there are lots of experts in this group. Can somebody please help
me on this? Or this is not the right group for askiing questions on Video
Drivers?

Thanks,
Dhiren


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Hi Dhirendra,
There was some discussion on this some time back.
http://www.osronline.com/showthread.cfm?link=103638

Hope this will help you

On 1/23/07, Manohara.K wrote:
>
> Use WMI , refer the R200Sample WDK Sample
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of
> xxxxx@yahoo.co.in
> Sent: Tuesday, January 23, 2007 11:12 AM
> To: Windows System Software Devs Interest List
> Subject: RE:[ntdev] Notifying User Mode App from Video Miniport Driver
>
> Hi,
> I am sure there are lots of experts in this group. Can somebody please
> help
> me on this? Or this is not the right group for askiing questions on Video
> Drivers?
>
> Thanks,
> Dhiren
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Thanks guys for sharing your info with me
Hi Manohara,

WMI would be good useful for me but my problem is that mine is a miniport driver and i am not directly exposing handlers to various IRP’s. And to support WMI from driver i need to handle various minor codes for IRP_MJ_SYSTEM_CONTROL. I am not sure how i am going to indicate support for WMI. Also the port driver doesn’t provide any API’s to indicate WMI support.

Please let me know your thoughts.

Hi Narayan,

I look at that thread and it was about ‘inverted call’ technique. I don’t want to pend some user mode thread. That is my last resort if i am not able to find some asynchronous way.

Thanks,
-Dhiren

The “inverted call” technique does not pend the thread that initiates the request, unless that thread has issued the IRP synchronously. The thread usually asynchronously issues the request, the driver begins processing it, the thread continues doing whatever else it wants, then the driver completes the request, the thread is notified, and then the thread processes the result of the request. This is a very common design in Windows drivers.


From: xxxxx@lists.osr.com [xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.co.in [xxxxx@yahoo.co.in]
Sent: Tuesday, January 23, 2007 7:37 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Notifying User Mode App from Video Miniport Driver

Thanks guys for sharing your info with me
Hi Manohara,

WMI would be good useful for me but my problem is that mine is a miniport driver and i am not directly exposing handlers to various IRP’s. And to support WMI from driver i need to handle various minor codes for IRP_MJ_SYSTEM_CONTROL. I am not sure how i am going to indicate support for WMI. Also the port driver doesn’t provide any API’s to indicate WMI support.

Please let me know your thoughts.

Hi Narayan,

I look at that thread and it was about ‘inverted call’ technique. I don’t want to pend some user mode thread. That is my last resort if i am not able to find some asynchronous way.

Thanks,
-Dhiren


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

Hi Arlie,

I understood your concern. you are right… But what i understand about ‘inverted call’ (i might be wrong) is that entire magic is in ability to return the status of IRP as pending from driver. But miniport driver does not work directly with IRP’s. miniport just gets called for some control code. we either can say success or return some error code.

Arlie, is their a way i can send PnP notification from a graphics miniport driver or any other way.
Like i have one big doubt that can a graphics miniport driver fire a WMI as miniport doesnt directly say i am WMI aware and i can support WMI.

Thanks,
-Dhiren

xxxxx@yahoo.co.in wrote:

I understood your concern. you are right… But what i understand about ‘inverted call’ (i might be wrong) is that entire magic is in ability to return the status of IRP as pending from driver. But miniport driver does not work directly with IRP’s. miniport just gets called for some control code. we either can say success or return some error code.

But your miniport’s StartIO routine gets every important field from the
IRP: the control code, the STATUS_BLOCK, the input buffer, and the
output buffer. In practical terms, there isn’t anything that a WDM
driver can do with an IRP that you cannot also do in your miniport,
except pass it along to another driver.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,
Thanks for replyinh.

I am getting all these parameters but we dont get full IRP structure to miniport driver. So problem is if i return the status as pending that how am i going to complete the request later.

In order to call IoCompleteRequest later i need the IRP pointer in Miniport which i dont have.

Thanks,
Dhiren