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&a…
==============================================================================
--- 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 */