Use RtlPrefixUnicodeString.

svn path=/trunk/; revision=59165
This commit is contained in:
Hermès Bélusca-Maïto 2013-06-02 22:51:24 +00:00
parent b483880367
commit b7f2a77833

View file

@ -479,13 +479,19 @@ RtlpDosPathNameToRelativeNtPathName_Ustr(IN BOOLEAN HaveRelative,
/* 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;
@ -498,12 +504,6 @@ RtlpDosPathNameToRelativeNtPathName_Ustr(IN BOOLEAN HaveRelative,
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 */
RtlAcquirePebLock();