- How GUI interacts with NDIS driver(CE)
- Posted by ganesan.nagrajan@gmail.com on November 23rd, 2004
Hi all
How do you commnunicate with an NDIS driver from a GUI.
NdisMRegisterDevice() is not suported in CE.
Thanks much
ganesan
- Posted by Pavel A. on November 24th, 2004
In CE, drivers are usermode DLLs and can call any Windows API
of course without blocking the driver thread.
--PA
<ganesan.nagrajan@gmail.com> wrote in message news:d4b11c04.0411231650.3693442d@posting.google.c om...
- Posted by Thomas F. Divine [DDK MVP] on November 24th, 2004
"Pavel A." <pavel_a@NOwritemeNO.com> wrote in message
news:eVe7cMc0EHA.3416@TK2MSFTNGP09.phx.gbl...
This is, of course, true. There is no "kernel-mode" in the Windows CE model.
"Driver" DLLs can call most "user-mode" functions fairly easily. For
example, there is nothing to prevent a CE "driver" from calling a Winsock
function (so nothing like TDI is needed...).
On the other hand, "driver" DLLs are loaded by the device.exe process. This
does introduce difficulties in debugging amd memory management. For example,
the eMbedded C++ debugger cannot set breakpoints in a "driver" DLL.
The Windows CE "Streams" XXX_IOControl interface is the closest CE
approximation to the "Big Windows" DeviceIoControl interface we all know (an
love...). The API is a lot simpler, and there is no notion of an "IRP".
Memory management is quite a bit different from the driver's perspective -
especially for asynchronous operations.
The Windows CE 4.2 NDISUIO driver sample provided with Platform Builder 4.2
illustrates using the streams interface with an NDIS driver.
Good luck,
Thomas F. Divine, Windows DDK MVP
http://www.rawether.net
- Posted by Arkady Frenkel on November 25th, 2004
Addition inside...
"Thomas F. Divine [DDK MVP]" <tdivine@NOpcausaSPAM.com> wrote in message
news:exV3g1c0EHA.3408@tk2msftngp13.phx.gbl...
And we can too in CE use DeviceIoControl which do call to driver's
XXX_IOControl
inside
Arkady
- Posted by ganesan.nagrajan@gmail.com on November 26th, 2004
I am so sorry guys!!!. I missed the important letters "IM"
I was trying to register a NDIS "IM" driver thru
NdisMRegisterDevice(), but only NIDS.H header shows this function.
None of the library(nids.lib etc.) has this function. Does any know,
if this function is supported in CE?
If NOT, how do we communicate "from" a user mode App "to" an NDIS "IM"
driver.?
Sorry again.
Thanx
Ganesan
"Arkady Frenkel" <arkadyf@hotmailxdotxcom> wrote in message news:<eOXjp7r0EHA.1420@TK2MSFTNGP10.phx.gbl>...
- Posted by Thomas F. Divine [DDK MVP] on November 26th, 2004
<ganesan.nagrajan@gmail.com> wrote in message
news:d4b11c04.0411251857.559fb5f7@posting.google.c om...
notion of IRPs.
You can, however, use the CE "Streams" interface, which includes the
XXX_IOControl functions, etc. to get similar functionality.
This does work for NDIS drivers - including NDIS protocol and NDIS IM
drivers.
Good luck,
Thomas F. Divine, Windows DDK MVP
http://www.pcausa.com