all groups > c# > may 2007 >
You're in the

c#

group:

IOCTL and name events stuff


IOCTL and name events stuff Eran.Yasso NO[at]SPAM gmail.com
5/31/2007 9:49:16 PM
c#:
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.
2. My app also need o communicate this the driver using IOCTL.

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?

TIA,
Re: IOCTL and name events stuff Moty Michaely
6/1/2007 12:00:00 AM
[quoted text, click to view]

Hi Eran,

I am not familiar with the device control API but I don't think there
should be a problem importing Device Control API in C# (As long as
it's used in user mode of course).

If you are familiar with the API, maybe this post can help you:
http://www.thescripts.com/forum/thread268027.html

By the way, you can also post your question at
microsoft.public.development.device.drivers newsgroup.

Hope this helps.
Cheers,
Moty
Re: IOCTL and name events stuff Moty Michaely
6/1/2007 12:00:00 AM
[quoted text, click to view]

Hi,

True, but it worths to try :).

Moty
Re: IOCTL and name events stuff Eran.Yasso NO[at]SPAM gmail.com
6/1/2007 1:58:07 AM
[quoted text, click to view]

Hello Moti and thanks for the reply.

I post it here because it's a C# specific question and I'm not sure if
I get replys specific to C#.
Re: IOCTL and name events stuff Ben Voigt [C++ MVP]
6/1/2007 11:25:22 AM

[quoted text, click to view]

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

[quoted text, click to view]

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

[quoted text, click to view]

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).

[quoted text, click to view]

Re: IOCTL and name events stuff Eran.Yasso NO[at]SPAM gmail.com
6/1/2007 11:53:25 AM
[quoted text, click to view]

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#?

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

thanks again.
Re: IOCTL and name events stuff Ben Voigt [C++ MVP]
6/8/2007 12:18:22 PM

[quoted text, click to view]

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.

[quoted text, click to view]

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

[quoted text, click to view]

AddThis Social Bookmark Button