git://git.jankratochvil.net
/
reactos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
09bfbee
)
IopCreateFile(): Fix semantics of volume mounting (Vpb vs. Device etc.)
author
short
<>
Fri, 4 Apr 2003 21:36:07 +0000
(21:36 +0000)
committer
short
<>
Fri, 4 Apr 2003 21:36:07 +0000
(21:36 +0000)
ntoskrnl/io/create.c
patch
|
blob
|
history
diff --git
a/ntoskrnl/io/create.c
b/ntoskrnl/io/create.c
index
83e1941
..
cf0553d
100644
(file)
--- a/
ntoskrnl/io/create.c
+++ b/
ntoskrnl/io/create.c
@@
-114,6
+114,7
@@
IopCreateFile(PVOID ObjectBody,
FileObject->Flags = FileObject->Flags | FO_DIRECT_DEVICE_OPEN;
FileObject->FileName.Buffer = 0;
FileObject->FileName.Length = FileObject->FileName.MaximumLength = 0;
FileObject->Flags = FileObject->Flags | FO_DIRECT_DEVICE_OPEN;
FileObject->FileName.Buffer = 0;
FileObject->FileName.Length = FileObject->FileName.MaximumLength = 0;
+ FileObject->Vpb = DeviceObject->Vpb;
}
else
{
}
else
{
@@
-126,6
+127,7
@@
IopCreateFile(PVOID ObjectBody,
&& (DeviceObject->DeviceType != FILE_DEVICE_MAILSLOT))
{
CPRINT("Device was wrong type\n");
&& (DeviceObject->DeviceType != FILE_DEVICE_MAILSLOT))
{
CPRINT("Device was wrong type\n");
+ KeBugCheck(0);
return(STATUS_UNSUCCESSFUL);
}
return(STATUS_UNSUCCESSFUL);
}
@@
-144,12
+146,20
@@
IopCreateFile(PVOID ObjectBody,
Status);
return(Status);
}
Status);
return(Status);
}
+ if (!DeviceObject->Vpb)
+ KeBugCheck(0);
+ if (DeviceObject->Vpb->DeviceObject->Vpb)
+ KeBugCheck(0);
+ DeviceObject->Vpb->DeviceObject->Vpb=DeviceObject->Vpb;
+ DeviceObject->Vpb->Flags |= VPB_MOUNTED;
}
}
+
DeviceObject = DeviceObject->Vpb->DeviceObject;
DPRINT("FsDeviceObject %lx\n", DeviceObject);
}
RtlCreateUnicodeString(&(FileObject->FileName),
RemainingPath);
DeviceObject = DeviceObject->Vpb->DeviceObject;
DPRINT("FsDeviceObject %lx\n", DeviceObject);
}
RtlCreateUnicodeString(&(FileObject->FileName),
RemainingPath);
+ FileObject->Vpb = NULL;
}
DPRINT("FileObject->FileName %wZ\n",
}
DPRINT("FileObject->FileName %wZ\n",
@@
-158,7
+168,6
@@
IopCreateFile(PVOID ObjectBody,
DPRINT("FileObject %x DeviceObject %x\n",
FileObject,
DeviceObject);
DPRINT("FileObject %x DeviceObject %x\n",
FileObject,
DeviceObject);
- FileObject->Vpb = DeviceObject->Vpb;
FileObject->Type = InternalFileType;
FileObject->RelatedFileObject = NULL;
FileObject->Type = InternalFileType;
FileObject->RelatedFileObject = NULL;