RtlInt64ToUnicodeString (NTDLL.@)
NTSTATUS RtlInt64ToUnicodeString ( ULONGLONG value, ULONG base, UNICODE_STRING* str )
value | [In] | Value to be converted. |
base | [In] | Number base for conversion (allowed 0,2,8,10 or 16). |
str | [Out] | Destination for the converted value. |
Convert a large unsigned integer to a '\0' terminated unicode string.
Success: STATUS_SUCCESS. str contains the converted number
Failure: STATUS_INVALID_PARAMETER, if base is not 0, 2, 8, 10 or 16. STATUS_BUFFER_OVERFLOW, if str is too small to hold the string (with the '\0' termination). In this case str->Length is set to the length, the string would have (which can be larger than the MaximumLength).
Instead of base 0 it uses 10 as base. If str is NULL it crashes, as the native function does.
- Accept base 0 as 10 instead of crashing as native function does.
- Do not return STATUS_BUFFER_OVERFLOW when the string is long enough. The native function does this when the string would be longer than 31 characters even when the string parameter is long enough.
- The native function does produce garbage or STATUS_BUFFER_OVERFLOW for base 2, 8 and 16 when the value is larger than 0xFFFFFFFF.
Declared in "include/winternl.h". gitlab.winehq.org/wine/wine/blob/master/include/winternl.h
Implemented in "dlls/ntdll/large_int.c". gitlab.winehq.org/wine/wine/blob/master/dlls/ntdll/large_int.c
Copyright © 2024 The Wine Project. All trademarks are the property of their respective owners. Visit WineHQ for license details. Generated Nov 2024.