ZwOpenFile ShareAccess has no effect on disk drives

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?


void OpenTest(UNICODE_STRING *Name)
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);

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.