Also remove suffix and uppercase the returned name as Windows does.
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/advapi32/lsa.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c index f2fcc0701b..ca357688fc 100644 --- a/dlls/advapi32/lsa.c +++ b/dlls/advapi32/lsa.c @@ -786,11 +786,16 @@ NTSTATUS WINAPI LsaQueryInformationPolicy( if (!xdi) return STATUS_NO_MEMORY;
dwSize = MAX_COMPUTERNAME_LENGTH + 1; - if (GetComputerNameW(xdi->domain_name, &dwSize)) + if (GetComputerNameExW(ComputerNamePhysicalDnsDomain, xdi->domain_name, &dwSize)) { + WCHAR *dot; + + dot = strrchrW(xdi->domain_name, '.'); + if (dot) *dot = 0; + struprW(xdi->domain_name); xdi->info.Name.Buffer = xdi->domain_name; - xdi->info.Name.Length = dwSize * sizeof(WCHAR); - xdi->info.Name.MaximumLength = (dwSize + 1) * sizeof(WCHAR); + xdi->info.Name.Length = strlenW(xdi->domain_name) * sizeof(WCHAR); + xdi->info.Name.MaximumLength = xdi->info.Name.Length + sizeof(WCHAR); TRACE("setting Name to %s\n", debugstr_w(xdi->info.Name.Buffer)); }