Index: dll/ntdll/def/ntdll.spec =================================================================== --- dll/ntdll/def/ntdll.spec (revision 56419) +++ dll/ntdll/def/ntdll.spec (working copy) @@ -563,9 +563,13 @@ @ stdcall RtlDestroyProcessParameters(ptr) @ stdcall RtlDestroyQueryDebugBuffer(ptr) @ stdcall RtlDetermineDosPathNameType_U(wstr) +@ stdcall RtlDetermineDosPathNameType_Ustr(ptr) @ stdcall RtlDllShutdownInProgress() @ stdcall RtlDnsHostNameToComputerName(ptr ptr long) @ stdcall RtlDoesFileExists_U(wstr) +@ stdcall RtlDoesFileExists_UEx(wstr long) +@ stdcall RtlDoesFileExists_UStr(ptr) +@ stdcall RtlDoesFileExists_UstrEx(ptr long) @ stdcall RtlDosApplyFileIsolationRedirection_Ustr(long ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall RtlDosPathNameToNtPathName_U(wstr ptr ptr ptr) ;@ stdcall RtlDosPathNameToNtPathName_U_WithStatus ; 5.2 SP1, and higher @@ -662,6 +666,7 @@ @ stdcall RtlGetFirstRange(ptr ptr ptr) ;@ stdcall RtlGetFrame @ stdcall RtlGetFullPathName_U(wstr long ptr ptr) +@ stdcall RtlGetFullPathName_Ustr(ptr long ptr ptr ptr ptr) @ stdcall RtlGetFullPathName_UstrEx(ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall RtlGetGroupSecurityDescriptor(ptr ptr ptr) @ stdcall RtlGetLastNtStatus() Index: apitests/ntdll/RtlDosSearchPath_Ustr.c =================================================================== --- apitests/ntdll/RtlDosSearchPath_Ustr.c (revision 56561) +++ apitests/ntdll/RtlDosSearchPath_Ustr.c (working copy) @@ -30,6 +30,7 @@ #define EndSeh(ExpectedStatus) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { ExceptionStatus = _SEH2_GetExceptionCode(); } _SEH2_END; ok(ExceptionStatus == ExpectedStatus, "Exception %lx, expected %lx\n", ExceptionStatus, ExpectedStatus) #define ok_eq_ulong(value, expected) ok((value) == (expected), #value " = %lu, expected %lu\n", value, expected) +#define ok_eq_size(value, expected) ok((value) == (expected), #value " = %lu, expected %lu\n", (ULONG)value, (ULONG)expected) #define ok_eq_hex(value, expected) ok((value) == (expected), #value " = 0x%lx, expected 0x%lx\n", value, expected) #define ok_eq_pointer(value, expected) ok((value) == (expected), #value " = %p, expected %p\n", value, expected) @@ -54,6 +55,7 @@ UNICODE_STRING EmptyString; SIZE_T FilePartSize; SIZE_T LengthNeeded; + WCHAR Buffer[MAX_PATH]; INT i; RtlInitUnicodeString(&EmptyString, NULL); @@ -113,7 +115,7 @@ RtlInitUnicodeString(&FileNameString, NULL); RtlInitUnicodeString(&ExtensionString, NULL); RtlInitUnicodeString(&CallerBuffer, NULL); - RtlInitUnicodeString(&DynamicString, NULL); + RtlInitEmptyUnicodeString(&DynamicString, Buffer, sizeof(Buffer)); FullNameOut = InvalidPointer; FilePartSize = (SIZE_T)-1; LengthNeeded = (SIZE_T)-1; @@ -134,14 +136,14 @@ ok_eq_ustr(&CallerBuffer, &EmptyString); ok_eq_ustr(&DynamicString, &EmptyString); ok_eq_pointer(FullNameOut, NULL); - ok_eq_ulong(FilePartSize, 0); - ok_eq_ulong(LengthNeeded, 0); + ok_eq_size(FilePartSize, 0); + ok_eq_size(LengthNeeded, 0); /* Everything except FileNameString */ RtlInitUnicodeString(&PathString, NULL); RtlInitUnicodeString(&ExtensionString, NULL); RtlInitUnicodeString(&CallerBuffer, NULL); - RtlInitUnicodeString(&DynamicString, NULL); + RtlInitEmptyUnicodeString(&DynamicString, Buffer, sizeof(Buffer)); FullNameOut = InvalidPointer; FilePartSize = (SIZE_T)-1; LengthNeeded = (SIZE_T)-1; @@ -162,15 +164,15 @@ ok_eq_ustr(&CallerBuffer, &EmptyString); ok_eq_ustr(&DynamicString, &EmptyString); ok_eq_pointer(FullNameOut, NULL); - ok_eq_ulong(FilePartSize, 0); - ok_eq_ulong(LengthNeeded, 0); + ok_eq_size(FilePartSize, 0); + ok_eq_size(LengthNeeded, 0); /* Passing CallerBuffer and DynamicString, but not FullNameOut is invalid */ RtlInitUnicodeString(&PathString, NULL); RtlInitUnicodeString(&FileNameString, NULL); RtlInitUnicodeString(&ExtensionString, NULL); RtlInitUnicodeString(&CallerBuffer, NULL); - RtlInitUnicodeString(&DynamicString, NULL); + RtlInitEmptyUnicodeString(&DynamicString, Buffer, sizeof(Buffer)); FullNameOut = InvalidPointer; FilePartSize = (SIZE_T)-1; LengthNeeded = (SIZE_T)-1; @@ -191,15 +193,15 @@ ok_eq_ustr(&ExtensionString, &EmptyString); ok_eq_ustr(&CallerBuffer, &EmptyString); ok_eq_ustr(&DynamicString, &EmptyString); - ok_eq_ulong(FilePartSize, 0); - ok_eq_ulong(LengthNeeded, 0); + ok_eq_size(FilePartSize, 0); + ok_eq_size(LengthNeeded, 0); /* All parameters given */ RtlInitUnicodeString(&PathString, NULL); RtlInitUnicodeString(&FileNameString, NULL); RtlInitUnicodeString(&ExtensionString, NULL); RtlInitUnicodeString(&CallerBuffer, NULL); - RtlInitUnicodeString(&DynamicString, NULL); + RtlInitEmptyUnicodeString(&DynamicString, Buffer, sizeof(Buffer)); FullNameOut = InvalidPointer; FilePartSize = (SIZE_T)-1; LengthNeeded = (SIZE_T)-1; @@ -221,6 +223,6 @@ ok_eq_ustr(&CallerBuffer, &EmptyString); ok_eq_ustr(&DynamicString, &EmptyString); ok_eq_pointer(FullNameOut, NULL); - ok_eq_ulong(FilePartSize, 0); - ok_eq_ulong(LengthNeeded, 0); + ok_eq_size(FilePartSize, 0); + ok_eq_size(LengthNeeded, 0); }