Re: CreateFile() returns ERROR_ACCESS_DENIED to the user



Don,

Actually, a simpler way is to use IoCreateDeviceSecure with a SDDL string
that allows geneal users access.

In this particular situation, such approach is more reasonable - I
admit. However, I think the OP may need to modify access to various
kernel objects on more than one occasion in his future career, so it
would be a good idea for him to learn how to do it. In fact, I just
wonder how he managed to write a driver, in the first place - he seems
to be struggling with the basic NT concepts.....


Anton Bassov


Don Burn wrote:
Actually, a simpler way is to use IoCreateDeviceSecure with a SDDL string
that allows geneal users access.


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
http://www.windrvr.com
Remove StopSpam from the email to reply



"anton bassov" <soviet_bloke@xxxxxxxxxxx> wrote in message
news:1163454664.839974.119450@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Do i must modify user rights or driver rights ????

In actuality, none of the above....

You have to modify not user rights and DEFINITELY not driver rights,
but access permission to your target device (i.e. its ACL) Check MSDN,
namely, GetSecurityInfo()/SetSecurityInfo(), plus SetEntriesInAcl(),
for more info

Anton Bassov

SteM wrote:
Thanks Anton,
my guess was that, at least, open, close and DeviceIoControl was allowed
....
How can i solve ?
Do i must modify user rights or driver rights ????

Thanks
--
SteM


"anton bassov" <soviet_bloke@xxxxxxxxxxx> ha scritto nel messaggio
news:1163436308.076405.201750@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi mate

This is just absolutely normal default behaviour - limited users have
no access to devices by default. If you want non-privileged users to
gain access to it, you have to EXPLICITLY allow the above (it is
understandable that it can be done only from the Admin account)

Anton Bassov


SteM wrote:
Hello,
I've written a small wdm driver for Win2000 to access an old custom
hw
on
parallel port.
The accesses are via a couple of DeviceIoControl() custom commands.
It works fine, does exactly what i intended; however, it only works
if I
am
logged in as Administrator (or equivalent).
If I log in as a regular user (Power User) the call to CreateFile
fails
with
ACCESS_DENIED.

// Open driver
rv = CreateFile (
ifDetail->DevicePath,
0, // Desidered access
0, // Share mode
NULL, // Security attrb
CREATE_NEW, // How to create
FILE_FLAG_DELETE_ON_CLOSE, // File attribute
NULL // Template file
);

if (rv==INVALID_HANDLE_VALUE)
{
......



Thanks in advance for any pointers...
--
SteM



.



Relevant Pages

  • Re: CreateFile() returns ERROR_ACCESS_DENIED to the user
    ... You have to modify not user rights and DEFINITELY not driver rights, ... The accesses are via a couple of DeviceIoControl() custom commands. ...
    (microsoft.public.win32.programmer.kernel)
  • Re: CreateFile() returns ERROR_ACCESS_DENIED to the user
    ... Don Burn (MVP, Windows DDK) ... Windows 2k/XP/2k3 Filesystem and Driver Consulting ... You have to modify not user rights and DEFINITELY not driver rights, ... The accesses are via a couple of DeviceIoControl() custom commands. ...
    (microsoft.public.win32.programmer.kernel)
  • Re: Copying a kernel routine
    ... OH, lets see, you are going to modify the page table, but not the internal ... If you need a kernel like routine, design your own, but of course as I said ... Windows 2k/XP/2k3 Filesystem and Driver Consulting ...
    (microsoft.public.development.device.drivers)
  • Re: IST in C# application
    ... The current driver is doing that with ... you have to use DeviceIoControl() API to ... I do not want to handle the IRQ source identification in the ISR (to ... it is not a standard way to handle interrupts ...
    (microsoft.public.windowsce.platbuilder)
  • [PATCH 1/2] User access to internal clocks
    ... This driver is for user level programs to interact with system clocks. ... It allows to read and modify rates and parents, ... struct clk *clk; ...
    (Linux-Kernel)