Re: IOCTL and name events stuff




<Eran.Yasso@xxxxxxxxx> wrote in message
news:1180724005.429613.179300@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Jun 1, 7:25 pm, "Ben Voigt [C++ MVP]" <r...@xxxxxxxxxxxxx> wrote:
<Eran.Ya...@xxxxxxxxx> wrote in message

news:1180673356.280645.207080@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Hi all,

I need to write a GUI app which do the followings:
1. My app waits for events from other app(actually this is a network
adapter driver) running in kernel. The driver writes to file and
signal my app to read the file.

No problem. Named events are placed in a global namespace (ignoring
terminal services, but you can still access the global namespace even
from
there).

2. My app also need o communicate this the driver using IOCTL.

Yuck. IOCTL requires passing buffers around... C# may not be your best
choice there.



Can i do it in C#? can C# wait for events signaled from app written in
C\C++ app running in on kernel and sends messages to device using
IOCTL?

How complicated is it going to be? I'm quite noob in C# programming.
should I consider duing it in C|C++ which I am quite noob as well?

I would suggest C++/CLI. The syntax is quite close to C# as far as
interacting with the .NET framework, creating forms and buttons and so
forth. But it also allows seamless access to the Windows API. At the
very
least, you should be able to reuse the header files provided by the
kernel
component, instead of having to transcribe everything into C# (constants,
function prototypes, structure definitions, etc).





TIA,- Hide quoted text -

- Show quoted text -

Hello Ben,

I thanks you for the reply.

Correct me if I am wrong. deviceIoControl is function to communicate
devices for IOCTL ?
You think that it is best to use VC++ instead of C#?

In Visual Studio 2005, the C++ compiler can use both .NET and all Windows
functions directly. That makes it really useful for communicating with
drivers. You can still do your GUI in C# if you want, the functions you
write in C++/CLI will show up in your C# program just like the .NET-provided
ones.


Also, when you mean that named event are in global name space what do
you mean? shouldn't I import Kernel32.dll for that?

Most of .NET simply calls a related function built into Windows.

Here are the docs for the Windows function, CreateEvent:
http://msdn2.microsoft.com/en-us/library/ms682396.aspx
You might need OpenEvent instead:
http://msdn2.microsoft.com/en-us/library/ms684305.aspx


thanks again.



.


Quantcast