Driver-Driver and Driver-Application Communication
Everybody knows how an application communicates with a driver: call CreateFile to open a handle to the PDO, and use ReadFile(Ex), WriteFile(Ex) and DeviceIoControl to read data, write data or send a control code.
However, what about the opposite? How does a driver send data to an application (whenever it wants)? And how do drivers exchange data? These types of questions come very often in OSR's NTDEV list, so I found a list of resources that provide answers:
- Driver-Driver Communication
- Driver to Driver Communication: Explanation of the way that drivers exchange data between each other
- Buddy Drivers: An implementation of 2 drivers exchanging data
- Driver-Application Communication
- Peter Wieland has written this post on how the driver uses the Push or the Pull model to send data to an application
- Inverted Call Model: An implementation of Peter's model that shows how the driver sends data to the application
- Sharing memory between drivers and applications: Why, when and how?
- Sharing events between user-mode and kernel-mode
- OSR's thread on Driver-Application communication: Many driver developers write down their opinions on this issue
- Microsoft's documentation: How to use asynchronous events, in order to send data from a driver to an application
- UMDF drivers
- How an application communicates with a UMDF driver:Overview of the WDK sample that is located at %WinDDK%\src\umdf\usb\fx2_driver\final
Comments
Anonymous
November 19, 2007
I need a data to develop the driver on the windows.Anonymous
December 11, 2007
I AM FROM THE PHILIPPINES AND I WANT TO APPLY AS AN EVENTS DRIVER. THANK YOUAnonymous
December 12, 2007
Ilias - just a heads-up that we're going through and revising/updating some older articles from The NT Insider, and the update to "Sharing Memory Between Drivers and Applications" will be in the next issue (Nov/Dec, shipping in January). Link will remain the same. Dan.Anonymous
December 13, 2007
Thanks for the update Dan. I'll keep an eye on the NT Insider and go through the article, after the issue is published.Anonymous
November 19, 2008
hi i am new for the usb device driver coding. i dont know how to start writing the usb device driver coding. we developed the embedded device(POS). we have to retrive the data from POS device to PC through USB. to communicate with the PC i have to develop the driver. i am going to develop the driver in VB.net or C#.i am expecting some sample codings regarding usb device driver. please help me out. thanking youAnonymous
December 16, 2008
The comment has been removedAnonymous
April 23, 2010
ciao volevo sapere se sai dove trovare i driver per sd per una nashuatec dsm651 grazieAnonymous
December 31, 2011
menedez peripandez creapindower aspergasisosis..... graciuosis....Anonymous
April 27, 2015
Not everybody knows how to do application to driver communication, I am looking exactly for that information. >.>