RtlFreeUnicodeString -> ExFreePool changes
Modified: trunk/reactos/ntoskrnl/ex/init.c
Modified: trunk/reactos/ntoskrnl/io/arcname.c
Modified: trunk/reactos/ntoskrnl/io/driver.c
Modified: trunk/reactos/ntoskrnl/io/irp.c
Modified: trunk/reactos/ntoskrnl/ob/symlink.c
Modified: trunk/reactos/ntoskrnl/rtl/capture.c

Modified: trunk/reactos/ntoskrnl/ex/init.c
--- trunk/reactos/ntoskrnl/ex/init.c	2005-05-05 20:14:39 UTC (rev 15020)
+++ trunk/reactos/ntoskrnl/ex/init.c	2005-05-05 20:19:01 UTC (rev 15021)
@@ -125,14 +125,14 @@
                                       &ObjectAttributes);
     
     /* Free the String */
-    RtlFreeUnicodeString(&ArcName);
+    ExFreePool(ArcName.Buffer);
     
     /* Check for Success */
     if (!NT_SUCCESS(Status)) {
         
         /* Free the Strings */
         RtlFreeUnicodeString(&BootPath);
-        RtlFreeUnicodeString(&ArcDeviceName);
+        ExFreePool(ArcDeviceName.Buffer);
         CPRINT("NtOpenSymbolicLinkObject() failed (Status %x)\n", Status);
         KEBUGCHECK(0);
     }
@@ -148,7 +148,7 @@
         
         /* Free the Strings */
         RtlFreeUnicodeString(&BootPath);
-        RtlFreeUnicodeString(&ArcDeviceName);
+        ExFreePool(ArcDeviceName.Buffer);
         CPRINT("NtQuerySymbolicLinkObject() failed (Status %x)\n", Status);
         KEBUGCHECK(0);
     }
@@ -209,8 +209,8 @@
     
     /* Free all the Strings we have in memory */
     RtlFreeUnicodeString (&BootPath);
-    RtlFreeUnicodeString (&DriveDeviceName);
-    RtlFreeUnicodeString (&ArcDeviceName);
+    ExFreePool(DriveDeviceName.Buffer);
+    ExFreePool(ArcDeviceName.Buffer);
 
     /* Make sure we found the Boot Drive */
     if (BootDriveFound == FALSE) {

Modified: trunk/reactos/ntoskrnl/io/arcname.c
--- trunk/reactos/ntoskrnl/io/arcname.c	2005-05-05 20:14:39 UTC (rev 15020)
+++ trunk/reactos/ntoskrnl/io/arcname.c	2005-05-05 20:19:01 UTC (rev 15021)
@@ -413,15 +413,15 @@
   if (!NT_SUCCESS(Status))
     {
       RtlFreeUnicodeString(&BootPath);
-      RtlFreeUnicodeString(&DeviceName);
+      ExFreePool(DeviceName.Buffer);
       CPRINT("ZwOpenSymbolicLinkObject() '%wZ' failed (Status %x)\n",
 	     &ArcName,
 	     Status);
-      RtlFreeUnicodeString(&ArcName);
+      ExFreePool(ArcName.Buffer);
 
       return(Status);
     }
-  RtlFreeUnicodeString(&ArcName);
+  ExFreePool(ArcName.Buffer);
 
   Status = ZwQuerySymbolicLinkObject(Handle,
 				     &DeviceName,
@@ -430,7 +430,7 @@
   if (!NT_SUCCESS(Status))
     {
       RtlFreeUnicodeString(&BootPath);
-      RtlFreeUnicodeString(&DeviceName);
+      ExFreePool(DeviceName.Buffer);
       CPRINT("ZwQuerySymbolicObject() failed (Status %x)\n",
 	     Status);
 
@@ -450,7 +450,7 @@
 
   Status = IoCreateSymbolicLink(&LinkName,
 				&DeviceName);
-  RtlFreeUnicodeString (&DeviceName);
+  ExFreePool(DeviceName.Buffer);
   if (!NT_SUCCESS(Status))
     {
       CPRINT("IoCreateSymbolicLink() failed (Status %x)\n",

Modified: trunk/reactos/ntoskrnl/io/driver.c
--- trunk/reactos/ntoskrnl/io/driver.c	2005-05-05 20:14:39 UTC (rev 15020)
+++ trunk/reactos/ntoskrnl/io/driver.c	2005-05-05 20:19:01 UTC (rev 15021)
@@ -188,7 +188,7 @@
    DPRINT("IopDeleteDriver(ObjectBody %x)\n", ObjectBody);
 
    ExFreePool(Object->DriverExtension);
-   RtlFreeUnicodeString(&Object->DriverName);
+   ExFreePool(Object->DriverName.Buffer);
 
    OldIrql = KeRaiseIrqlToDpcLevel();
 
@@ -197,7 +197,7 @@
         DriverExtension = NextDriverExtension)
    {
       NextDriverExtension = DriverExtension->Link;
-      ExFreePool(DriverExtension);
+      ExFreePoolWithTag(DriverExtension, TAG_DRIVER_EXTENSION);
    }
 
    KfLowerIrql(OldIrql);
@@ -358,7 +358,7 @@
 
       wcscpy(ImagePath->Buffer, L"\\SystemRoot\\");
       wcscat(ImagePath->Buffer, InputImagePath.Buffer);
-      RtlFreeUnicodeString(&InputImagePath);
+      ExFreePool(InputImagePath.Buffer);
    }
 
    return STATUS_SUCCESS;
@@ -496,7 +496,7 @@
       Status = STATUS_IMAGE_ALREADY_LOADED;
    }
 
-   RtlFreeUnicodeString(&ServiceImagePath);
+   ExFreePool(ServiceImagePath.Buffer);
 
    /*
     * Now check if the module was loaded successfully.
@@ -908,8 +908,8 @@
 				  NULL);
   if (!NT_SUCCESS(Status) || Service->Start > 1)
     {
-      RtlFreeUnicodeString(&Service->ServiceGroup);
-      RtlFreeUnicodeString(&Service->ImagePath);
+      ExFreePool(Service->ServiceGroup.Buffer);
+      ExFreePool(Service->ImagePath.Buffer);
       ExFreePool(Service);
       return(Status);
     }
@@ -1065,7 +1065,7 @@
     {
       CurrentGroup = CONTAINING_RECORD(GroupEntry, SERVICE_GROUP, GroupListEntry);
 
-      RtlFreeUnicodeString(&CurrentGroup->GroupName);
+      ExFreePool(CurrentGroup->GroupName.Buffer);
       RemoveEntryList(GroupEntry);
       if (CurrentGroup->TagArray)
         {
@@ -1082,10 +1082,10 @@
     {
       CurrentService = CONTAINING_RECORD(ServiceEntry, SERVICE, ServiceListEntry);
 
-      RtlFreeUnicodeString(&CurrentService->ServiceName);
-      RtlFreeUnicodeString(&CurrentService->RegistryPath);
-      RtlFreeUnicodeString(&CurrentService->ServiceGroup);
-      RtlFreeUnicodeString(&CurrentService->ImagePath);
+      ExFreePool(CurrentService->ServiceName.Buffer);
+      ExFreePool(CurrentService->RegistryPath.Buffer);
+      ExFreePool(CurrentService->ServiceGroup.Buffer);
+      ExFreePool(CurrentService->ImagePath.Buffer);
       RemoveEntryList(ServiceEntry);
       ExFreePool(CurrentService);
 
@@ -1547,7 +1547,7 @@
     * Free the service path
     */
 
-   RtlFreeUnicodeString(&ImagePath);
+   ExFreePool(ImagePath.Buffer);
 
    /*
     * Unload the module and release the references to the device object
@@ -1865,7 +1865,7 @@
    if (!NT_SUCCESS(Status))
    {
       DPRINT("RtlQueryRegistryValues() failed (Status %lx)\n", Status);
-      RtlFreeUnicodeString(&ImagePath);
+      ExFreePool(ImagePath.Buffer);
       goto ReleaseCapturedString;
    }
 

Modified: trunk/reactos/ntoskrnl/io/irp.c
--- trunk/reactos/ntoskrnl/io/irp.c	2005-05-05 20:14:39 UTC (rev 15020)
+++ trunk/reactos/ntoskrnl/io/irp.c	2005-05-05 20:19:01 UTC (rev 15021)
@@ -17,7 +17,7 @@
 /* GLOBALS *******************************************************************/
 
 #define TAG_IRP      TAG('I', 'R', 'P', ' ')
-#define TAG_SYS_BUF  TAG('I', 'o', ' ' , ' ')
+#define TAG_SYS_BUF  TAG('S', 'Y', 'S' , 'B')
 
 /* FUNCTIONS *****************************************************************/
 

Modified: trunk/reactos/ntoskrnl/ob/symlink.c
--- trunk/reactos/ntoskrnl/ob/symlink.c	2005-05-05 20:14:39 UTC (rev 15020)
+++ trunk/reactos/ntoskrnl/ob/symlink.c	2005-05-05 20:19:01 UTC (rev 15021)
@@ -72,7 +72,7 @@
 {
   PSYMLINK_OBJECT SymlinkObject = (PSYMLINK_OBJECT)ObjectBody;
 
-  RtlFreeUnicodeString(&SymlinkObject->TargetName);
+  ExFreePool(SymlinkObject->TargetName.Buffer);
 }
 
 
@@ -129,7 +129,7 @@
      }
 
    /* transfer target path buffer into FullPath */
-   RtlFreeUnicodeString(FullPath);
+   ExFreePool(FullPath->Buffer);
    FullPath->Length = TargetPath.Length;
    FullPath->MaximumLength = TargetPath.MaximumLength;
    FullPath->Buffer = TargetPath.Buffer;

Modified: trunk/reactos/ntoskrnl/rtl/capture.c
--- trunk/reactos/ntoskrnl/rtl/capture.c	2005-05-05 20:14:39 UTC (rev 15020)
+++ trunk/reactos/ntoskrnl/rtl/capture.c	2005-05-05 20:19:01 UTC (rev 15021)
@@ -123,7 +123,7 @@
 {
   if(CurrentMode != KernelMode || CaptureIfKernel )
   {
-    RtlFreeUnicodeString(CapturedString);
+    ExFreePool(CapturedString->Buffer);
   }
 }