Author: hbelusca
Date: Sun Jun  2 22:51:24 2013
New Revision: 59165

URL: http://svn.reactos.org/svn/reactos?rev=59165&view=rev
Log:
[RTL]
Use RtlPrefixUnicodeString.

Modified:
    trunk/reactos/lib/rtl/path.c

Modified: trunk/reactos/lib/rtl/path.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/path.c?rev=59165&r1=59164&r2=59165&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/path.c        [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/path.c        [iso-8859-1] Sun Jun  2 22:51:24 2013
@@ -479,13 +479,19 @@
     /* Capture input string */
     CapturedDosName = *DosName;
 
-    /* Check for \\?\ form */
-    if ((CapturedDosName.Length <= RtlpWin32NtRootSlash.Length) ||
-        (CapturedDosName.Buffer[0] != RtlpWin32NtRootSlash.Buffer[0]) ||
-        (CapturedDosName.Buffer[1] != RtlpWin32NtRootSlash.Buffer[1]) ||
-        (CapturedDosName.Buffer[2] != RtlpWin32NtRootSlash.Buffer[2]) ||
-        (CapturedDosName.Buffer[3] != RtlpWin32NtRootSlash.Buffer[3]))
-    {
+    /* Check for the presence of the NT prefix "\\?\" form */
+    if (RtlPrefixUnicodeString(&RtlpWin32NtRootSlash, &CapturedDosName, FALSE))
+    {
+        /* NT prefix is contained in the path */
+
+        /* Use the optimized path after acquiring the lock */
+        QuickPath = TRUE;
+        NewBuffer = NULL;
+    }
+    else
+    {
+        /* NT prefix is not contained in the path */
+
         /* Quick path won't be used */
         QuickPath = FALSE;
 
@@ -497,12 +503,6 @@
         NewBuffer = RtlAllocateHeap(RtlGetProcessHeap(), 0, MaxLength);
         DPRINT("MaxLength: %lx\n", MaxLength);
         if (!NewBuffer) return STATUS_NO_MEMORY;
-    }
-    else
-    {
-        /* Use the optimized path after acquiring the lock */
-        QuickPath = TRUE;
-        NewBuffer = NULL;
     }
 
     /* Lock the PEB and check if the quick path can be used */


Reply via email to