From 125c2ebaac90109bf3a26c34ec35faf4440016f2 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Sun, 2 Jul 2006 18:47:54 +0000 Subject: [PATCH] - Temporarily disable queueing IRPs to their threads, since raising to APC_LEVEL seems to cause some weird user-mode exceptions. svn path=/trunk/; revision=22774 --- reactos/ntoskrnl/io/iomgr/iofunc.c | 6 +++--- reactos/ntoskrnl/io/iomgr/irp.c | 6 ++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/reactos/ntoskrnl/io/iomgr/iofunc.c b/reactos/ntoskrnl/io/iomgr/iofunc.c index bec1aa2d66d..b54a0cbb1d7 100644 --- a/reactos/ntoskrnl/io/iomgr/iofunc.c +++ b/reactos/ntoskrnl/io/iomgr/iofunc.c @@ -156,7 +156,7 @@ IopPerformSynchronousRequest(IN PDEVICE_OBJECT DeviceObject, PAGED_CODE(); /* Queue the IRP */ - IopQueueIrpToThread(Irp); + //IopQueueIrpToThread(Irp); /* Update operation counts */ IopUpdateOperationCount(TransferType); @@ -478,7 +478,7 @@ IopQueryDeviceInformation(IN PFILE_OBJECT FileObject, } /* Queue the IRP */ - IopQueueIrpToThread(Irp); + //IopQueueIrpToThread(Irp); /* Call the Driver */ Status = IoCallDriver(FileObject->DeviceObject, Irp); @@ -735,7 +735,7 @@ IoSetInformation(IN PFILE_OBJECT FileObject, StackPtr->Parameters.SetFile.Length = Length; /* Queue the IRP */ - IopQueueIrpToThread(Irp); + //IopQueueIrpToThread(Irp); /* Call the Driver */ Status = IoCallDriver(FileObject->DeviceObject, Irp); diff --git a/reactos/ntoskrnl/io/iomgr/irp.c b/reactos/ntoskrnl/io/iomgr/irp.c index a77c9c6aebc..6bb18da192a 100644 --- a/reactos/ntoskrnl/io/iomgr/irp.c +++ b/reactos/ntoskrnl/io/iomgr/irp.c @@ -895,8 +895,8 @@ IoCancelThreadIo(IN PETHREAD Thread) KIRQL OldIrql; ULONG Retries = 3000; LARGE_INTEGER Interval; - //PLIST_ENTRY ListHead, NextEntry; - //PIRP Irp; + PLIST_ENTRY ListHead, NextEntry; + PIRP Irp; IOTRACE(IO_IRP_DEBUG, "%s - Canceling IRPs for Thread %p\n", __FUNCTION__, @@ -906,7 +906,6 @@ IoCancelThreadIo(IN PETHREAD Thread) OldIrql = KfRaiseIrql(APC_LEVEL); /* Start by cancelling all the IRPs in the current thread queue. */ -#if 0 ListHead = &Thread->IrpList; NextEntry = ListHead->Flink; while (ListHead != NextEntry) @@ -920,7 +919,6 @@ IoCancelThreadIo(IN PETHREAD Thread) /* Move to the next entry */ NextEntry = NextEntry->Flink; } -#endif /* Wait 100 milliseconds */ Interval.QuadPart = -1000000;