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);
}