mirror of
https://github.com/reactos/reactos.git
synced 2025-08-01 21:03:14 +00:00
[NTOSKRNL]
Properly queue the IRP in IoCancelFileOpen() svn path=/trunk/; revision=58245
This commit is contained in:
parent
48c45bbe68
commit
55be9e4adc
1 changed files with 7 additions and 2 deletions
|
@ -2497,6 +2497,7 @@ IoCancelFileOpen(IN PDEVICE_OBJECT DeviceObject,
|
||||||
{
|
{
|
||||||
PIRP Irp;
|
PIRP Irp;
|
||||||
KEVENT Event;
|
KEVENT Event;
|
||||||
|
KIRQL OldIrql;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
|
|
||||||
|
@ -2527,7 +2528,8 @@ IoCancelFileOpen(IN PDEVICE_OBJECT DeviceObject,
|
||||||
Stack->MajorFunction = IRP_MJ_CLEANUP;
|
Stack->MajorFunction = IRP_MJ_CLEANUP;
|
||||||
Stack->FileObject = FileObject;
|
Stack->FileObject = FileObject;
|
||||||
|
|
||||||
// FIXME: Put on top of IRPs list of the thread
|
/* Put on top of IRPs list of the thread */
|
||||||
|
IopQueueIrpToThread(Irp);
|
||||||
|
|
||||||
/* Call the driver */
|
/* Call the driver */
|
||||||
Status = IoCallDriver(DeviceObject, Irp);
|
Status = IoCallDriver(DeviceObject, Irp);
|
||||||
|
@ -2537,7 +2539,10 @@ IoCancelFileOpen(IN PDEVICE_OBJECT DeviceObject,
|
||||||
KernelMode, FALSE, NULL);
|
KernelMode, FALSE, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Remove from IRPs list
|
/* Remove from IRPs list */
|
||||||
|
KeRaiseIrql(APC_LEVEL, &OldIrql);
|
||||||
|
IopUnQueueIrpFromThread(Irp);
|
||||||
|
KeLowerIrql(OldIrql);
|
||||||
|
|
||||||
/* Free the IRP */
|
/* Free the IRP */
|
||||||
IoFreeIrp(Irp);
|
IoFreeIrp(Irp);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue