Author: hbelusca Date: Sun Jul 7 15:57:48 2013 New Revision: 59448 URL: http://svn.reactos.org/svn/reactos?rev=59448&view=rev Log: [CONDRV] - Hey Arch! You're displaying Major function codes, not IOCTL codes. Also, remove unnecessary casts (coming from some old code), and a use-after free. - Add some memory helpers.
Added: trunk/reactos/drivers/base/condrv/heap.h - copied, changed from r59436, trunk/reactos/win32ss/user/consrv/heap.h Modified: trunk/reactos/drivers/base/condrv/condrv.c trunk/reactos/drivers/base/condrv/condrv.h trunk/reactos/drivers/base/condrv/control.c Modified: trunk/reactos/drivers/base/condrv/condrv.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/base/condrv/condrv.c?rev=59448&r1=59447&r2=59448&view=diff ============================================================================== --- trunk/reactos/drivers/base/condrv/condrv.c [iso-8859-1] (original) +++ trunk/reactos/drivers/base/condrv/condrv.c [iso-8859-1] Sun Jul 7 15:57:48 2013 @@ -40,16 +40,16 @@ Irp->IoStatus.Information = Information; IoCompleteRequest(Irp, IO_NO_INCREMENT); - return Irp->IoStatus.Status; + return Status; } NTSTATUS NTAPI ConDrvDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { -#define HANDLE_CTRL_CODE(CtrlCode) \ - case CtrlCode : \ - { \ - DPRINT1("ConDrv: " #CtrlCode ", stack->FileObject = 0x%p\n", stack->FileObject); \ +#define HANDLE_CTRL_CODE(Code) \ + case Code : \ + { \ + DPRINT1("ConDrv: " #Code ", stack->FileObject = 0x%p\n", stack->FileObject); \ if (stack->FileObject) \ { \ DPRINT1("stack->FileObject->FileName = %wZ\n", &stack->FileObject->FileName); \ @@ -58,10 +58,11 @@ } PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp); - ULONG ctrlCode = stack->Parameters.DeviceIoControl.IoControlCode; + // ULONG ctrlCode = stack->Parameters.DeviceIoControl.IoControlCode; + ULONG MajorFunction = stack->MajorFunction; /* Just display all the IRP codes for now... */ - switch (ctrlCode) + switch (MajorFunction) { HANDLE_CTRL_CODE(IRP_MJ_CREATE); HANDLE_CTRL_CODE(IRP_MJ_CREATE_NAMED_PIPE); @@ -96,7 +97,7 @@ default: { - DPRINT1("Unknown code %lu\n", ctrlCode); + DPRINT1("Unknown Major %lu\n", MajorFunction); break; } } Modified: trunk/reactos/drivers/base/condrv/condrv.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/base/condrv/condrv.h?rev=59448&r1=59447&r2=59448&view=diff ============================================================================== --- trunk/reactos/drivers/base/condrv/condrv.h [iso-8859-1] (original) +++ trunk/reactos/drivers/base/condrv/condrv.h [iso-8859-1] Sun Jul 7 15:57:48 2013 @@ -10,7 +10,10 @@ #define __CONDRV_H__ /* This is needed for VisualDDK testing */ +// #define __USE_VISUALDDK_AT_HOME__ + #ifdef __USE_VISUALDDK_AT_HOME__ + #pragma message("Disable __USE_VISUALDDK_AT_HOME__ before committing!!") #include "VisualDDKHelpers.h" #endif Modified: trunk/reactos/drivers/base/condrv/control.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/base/condrv/control.c?rev=59448&r1=59447&r2=59448&view=diff ============================================================================== --- trunk/reactos/drivers/base/condrv/control.c [iso-8859-1] (original) +++ trunk/reactos/drivers/base/condrv/control.c [iso-8859-1] Sun Jul 7 15:57:48 2013 @@ -44,8 +44,7 @@ &Controller); if (!NT_SUCCESS(Status)) goto Done; - Status = IoCreateSymbolicLink((PUNICODE_STRING)&SymlinkName, - (PUNICODE_STRING)&DeviceName); + Status = IoCreateSymbolicLink(&SymlinkName, &DeviceName); if (!NT_SUCCESS(Status)) { IoDeleteDevice(Controller); Copied: trunk/reactos/drivers/base/condrv/heap.h (from r59436, trunk/reactos/win32ss/user/consrv/heap.h) URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/base/condrv/heap.h?p2=trunk/reactos/drivers/base/condrv/heap.h&p1=trunk/reactos/win32ss/user/consrv/heap.h&r1=59436&r2=59448&rev=59448&view=diff ============================================================================== --- trunk/reactos/win32ss/user/consrv/heap.h [iso-8859-1] (original) +++ trunk/reactos/drivers/base/condrv/heap.h [iso-8859-1] Sun Jul 7 15:57:48 2013 @@ -1,17 +1,22 @@ /* * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Console Server DLL - * FILE: win32ss/user/consrv/heap.h + * PROJECT: ReactOS Console Driver + * FILE: drivers/base/condrv/heap.h * PURPOSE: Heap Helpers * PROGRAMMERS: Hermes Belusca-Maito (hermes.belu...@sfr.fr) */ #pragma once -/* See init.c */ -extern HANDLE ConSrvHeap; +#define ConDrvAllocPoolNonPageable(Flags, Size, Tag) \ + __pragma(message("WARNING - Flags parameter ignored. You may encounter problems!")) \ + ExAllocatePoolWithTag(NonPagedPool, Size, Tag) -#define ConsoleAllocHeap(Flags, Size) RtlAllocateHeap(ConSrvHeap, Flags, Size) -#define ConsoleFreeHeap(HeapBase) RtlFreeHeap(ConSrvHeap, 0, HeapBase) +#define ConDrvAllocPoolPageable(Flags, Size, Tag) \ + __pragma(message("WARNING - Flags parameter ignored. You may encounter problems!")) \ + ExAllocatePoolWithTag(PagedPool, Size, Tag) + +#define ConDrvFreePool(PoolBase, Tag) \ + ExFreePoolWithTag(PoolBase, Tag) /* EOF */