https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d01184b16460b014fe9b19c5a142eb0ed88e6455
commit d01184b16460b014fe9b19c5a142eb0ed88e6455 Author: Pierre Schweitzer <pie...@reactos.org> AuthorDate: Sun Nov 26 13:56:48 2017 +0100 [NTOSKRNL] Use cache aligned buffer for devioctrl --- ntoskrnl/io/iomgr/iofunc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ntoskrnl/io/iomgr/iofunc.c b/ntoskrnl/io/iomgr/iofunc.c index 46fcce201d..bde78e4f96 100644 --- a/ntoskrnl/io/iomgr/iofunc.c +++ b/ntoskrnl/io/iomgr/iofunc.c @@ -213,6 +213,7 @@ IopDeviceFsIoControl(IN HANDLE DeviceHandle, ACCESS_MASK DesiredAccess; KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); ULONG BufferLength; + POOL_TYPE PoolType; PAGED_CODE(); @@ -495,6 +496,8 @@ IopDeviceFsIoControl(IN HANDLE DeviceHandle, StackPtr->Parameters.DeviceIoControl.OutputBufferLength = OutputBufferLength; + PoolType = IsDevIoCtl ? NonPagedPoolCacheAligned : NonPagedPool; + /* Handle the Methods */ switch (AccessType) { @@ -513,7 +516,7 @@ IopDeviceFsIoControl(IN HANDLE DeviceHandle, { /* Allocate the System Buffer */ Irp->AssociatedIrp.SystemBuffer = - ExAllocatePoolWithTag(NonPagedPool, + ExAllocatePoolWithTag(PoolType, BufferLength, TAG_SYS_BUF); @@ -560,7 +563,7 @@ IopDeviceFsIoControl(IN HANDLE DeviceHandle, { /* Allocate the System Buffer */ Irp->AssociatedIrp.SystemBuffer = - ExAllocatePoolWithTag(NonPagedPool, + ExAllocatePoolWithTag(PoolType, InputBufferLength, TAG_SYS_BUF);