mirror of
https://github.com/reactos/reactos.git
synced 2025-07-29 03:51:41 +00:00
- Fix IopSecurityFile to send the IRP to the right device.
- Fix IoSetInformation to send the IRP to the right device. - After the major fix in 24996, the functions that had been written to work with the I/O bug stopped working (by sending the IRP to the wrong device object, which, due to the bug was the ""right"" object), this is now fixed and the bootcd works again. svn path=/trunk/; revision=25037
This commit is contained in:
parent
a75646d6df
commit
144e232b5f
2 changed files with 6 additions and 3 deletions
|
@ -655,7 +655,6 @@ IopDeleteFile(IN PVOID ObjectBody)
|
|||
/* Set up Stack Pointer Data */
|
||||
StackPtr = IoGetNextIrpStackLocation(Irp);
|
||||
StackPtr->MajorFunction = IRP_MJ_CLOSE;
|
||||
StackPtr->DeviceObject = DeviceObject;
|
||||
StackPtr->FileObject = FileObject;
|
||||
|
||||
/* Queue the IRP */
|
||||
|
@ -686,6 +685,8 @@ IopDeleteFile(IN PVOID ObjectBody)
|
|||
ObDereferenceObject(FileObject->CompletionContext->Port);
|
||||
ExFreePool(FileObject->CompletionContext);
|
||||
}
|
||||
|
||||
/* FIXME: Dereference device object */
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -839,7 +840,7 @@ IopSecurityFile(IN PVOID ObjectBody,
|
|||
IopUpdateOperationCount(IopOtherTransfer);
|
||||
|
||||
/* Call the Driver */
|
||||
Status = IoCallDriver(FileObject->DeviceObject, Irp);
|
||||
Status = IoCallDriver(DeviceObject, Irp);
|
||||
|
||||
/* Check if this was async I/O */
|
||||
if (LocalEvent)
|
||||
|
@ -1537,6 +1538,8 @@ IoCreateStreamFileObject(IN PFILE_OBJECT FileObject,
|
|||
&FileHandle);
|
||||
CreatedFileObject->Flags |= FO_HANDLE_CREATED;
|
||||
|
||||
/* FIXME: Reference VPB */
|
||||
|
||||
/* Close the extra handle and return file */
|
||||
NtClose(FileHandle);
|
||||
return CreatedFileObject;
|
||||
|
|
|
@ -697,7 +697,7 @@ IoSetInformation(IN PFILE_OBJECT FileObject,
|
|||
//IopQueueIrpToThread(Irp);
|
||||
|
||||
/* Call the Driver */
|
||||
Status = IoCallDriver(FileObject->DeviceObject, Irp);
|
||||
Status = IoCallDriver(DeviceObject, Irp);
|
||||
|
||||
/* Check if this was synch I/O */
|
||||
if (!LocalEvent)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue