[NTOSKRNL]

Properly queue the IRP in IoCancelFileOpen()

svn path=/trunk/; revision=58245
This commit is contained in:
Pierre Schweitzer 2013-01-27 16:38:24 +00:00
parent 48c45bbe68
commit 55be9e4adc

View file

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