Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


ZwOpenFile ShareAccess has no effect on disk drives

RourkeRourke Member Posts: 53

Consider the below test. When opening a file, the 2nd ZwOpenFile returns STATUS_SHARING_VIOLATION as expected. When opening a disk, such as the below name, the 2nd ZwOpenFile succeeds. Why?

\??\SCSI#Disk&Ven_Msft&Prod_Virtual_Disk#000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

void OpenTest(UNICODE_STRING *Name)
{
IO_STATUS_BLOCK IoStatus;
OBJECT_ATTRIBUTES Attribs;
HANDLE Handle[2];
NTSTATUS NtStatus[2];

InitializeObjectAttributes(&Attribs, Name, OBJ_KERNEL_HANDLE | OBJ_CASE_INSENSITIVE, NULL, NULL);

NtStatus[0] = ZwOpenFile(&Handle[0], GENERIC_READ | GENERIC_WRITE, &Attribs, &IoStatus, FILE_SHARE_READ, FILE_NON_DIRECTORY_FILE);
NtStatus[1] = ZwOpenFile(&Handle[1], GENERIC_READ | GENERIC_WRITE, &Attribs, &IoStatus, FILE_SHARE_READ, FILE_NON_DIRECTORY_FILE);
}

Comments

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,493

    When you open a file on a filesystem, the operating system's filesystem code handles the security and the sharing checks. When you open a device object directly through its name, as you have above, it is entirely up to the driver to decide how and whether to handle the permission bits.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 15 Jun 2020 LIVE ONLINE
Writing WDF Drivers 22 June 2020 LIVE ONLINE
Internals & Software Drivers 28 Sept 2020 Dulles, VA