[NTOS:IO]

- IopDeviceFsIoControl is paged code
- Incorrect logic at when processing the IsDevIoCtl parameter

svn path=/trunk/; revision=72546
This commit is contained in:
Dmitry Chapyshev 2016-09-03 15:02:57 +00:00
parent 174d181e5c
commit 0a7f15c9c6

View file

@ -210,6 +210,9 @@ IopDeviceFsIoControl(IN HANDLE DeviceHandle,
ACCESS_MASK DesiredAccess; ACCESS_MASK DesiredAccess;
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
ULONG BufferLength; ULONG BufferLength;
PAGED_CODE();
IOTRACE(IO_CTL_DEBUG, "Handle: %p. CTL: %lx. Type: %lx \n", IOTRACE(IO_CTL_DEBUG, "Handle: %p. CTL: %lx. Type: %lx \n",
DeviceHandle, IoControlCode, IsDevIoCtl); DeviceHandle, IoControlCode, IsDevIoCtl);
@ -343,7 +346,7 @@ IopDeviceFsIoControl(IN HANDLE DeviceHandle,
} }
/* If that's FS I/O, try to do it with FastIO path */ /* If that's FS I/O, try to do it with FastIO path */
if (!IsDevIoCtl) if (IsDevIoCtl)
{ {
PFAST_IO_DISPATCH FastIoDispatch = DeviceObject->DriverObject->FastIoDispatch; PFAST_IO_DISPATCH FastIoDispatch = DeviceObject->DriverObject->FastIoDispatch;