File operations on a Windows Driver (character device)

Alessio Faina
Tue May 19 15:37:00 GMT 2015

Well.....I wrote and answered myself the question you pointed out that
is residing on stackoverflow....
It was my first option I thought of to pass the pointer to the virtual
address to the userland application but
I've been asked to mantain the architecture using open(), ioctl(),
mmap() etc.... so I don't know, it's a kind of
jolly to be played in case I won't be able to use the posix
architecture....but reading on forums/mailing lists...
I think I will be forced to use the kind of implementation I've
described in the SO question.
It seems that no-one ever have got the need to do something like I'm
trying to do.

2015-05-19 9:52 GMT+02:00 Mark Geisert <>:
> Alessio Faina writes:
>> Ok thanks, I've been able to find the character device under
>> "/proc/sys/DosDevices/Global/deviceName"; now I'm stuck with the mmap
>> implementation; when I do mmap in the userland program it returns me
>> errno 19 (#define ENODEV      19  /* No such device */) obviously because
>> I haven't set anything in the kernel module; there's a way to make visible a
>> portion of memory to be used by the mmap in the kernel? The memory is Non
> Paged
>> and allocated with a ExAllocatePoolWithTag in 'win terms'.
> Does
> help to answer your question?  If it does, you'll still have to decide
> whether to translate the Windows calls there into Cygwin calls or instead
> just localize the Windows calls in one user-level module and leave
> everything else to Cygwin.
> ..mark
> --
> Problem reports:
> FAQ:         
> Documentation:
> Unsubscribe info:

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list