[SYSSETUP]
authorEric Kohl <eric.kohl@reactos.org>
Wed, 21 Sep 2011 20:53:46 +0000 (20:53 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Wed, 21 Sep 2011 20:53:46 +0000 (20:53 +0000)
Set the account domain name.

svn path=/trunk/; revision=53794

reactos/dll/win32/syssetup/wizard.c

index cae440d..bfb7af0 100644 (file)
@@ -520,6 +520,47 @@ OwnerPageDlgProc(HWND hwndDlg,
 
   return FALSE;
 }
+
+static
+NTSTATUS
+SetAccountDomain(LPWSTR DomainName)
+{
+    POLICY_ACCOUNT_DOMAIN_INFO Info;
+    LSA_OBJECT_ATTRIBUTES ObjectAttributes;
+    LSA_HANDLE PolicyHandle;
+    NTSTATUS Status;
+
+    memset(&ObjectAttributes, 0, sizeof(LSA_OBJECT_ATTRIBUTES));
+    ObjectAttributes.Length = sizeof(LSA_OBJECT_ATTRIBUTES);
+
+    Status = LsaOpenPolicy(NULL,
+                           &ObjectAttributes,
+                           POLICY_TRUST_ADMIN,
+                           &PolicyHandle);
+    if (Status != STATUS_SUCCESS)
+    {
+        DPRINT("LsaOpenPolicy failed (Status: 0x%08lx)\n", Status);
+        return Status;
+    }
+
+    Info.DomainName.Buffer = DomainName;
+    Info.DomainName.Length = wcslen(DomainName) * sizeof(WCHAR);
+    Info.DomainName.MaximumLength = Info.DomainName.Length + sizeof(WCHAR);
+    Info.DomainSid = NULL;
+
+    Status = LsaSetInformationPolicy(PolicyHandle,
+                                     PolicyAccountDomainInformation,
+                                     (PVOID)&Info);
+    if (Status != STATUS_SUCCESS)
+    {
+        DPRINT("LsaSetInformationPolicy failed (Status: 0x%08lx)\n", Status);
+    }
+
+    LsaClose(PolicyHandle);
+
+    return Status;
+}
+
 static
 BOOL
 WriteComputerSettings(WCHAR * ComputerName, HWND hwndDlg)
@@ -545,6 +586,9 @@ WriteComputerSettings(WCHAR * ComputerName, HWND hwndDlg)
   /* Try to also set DNS hostname */
   SetComputerNameExW(ComputerNamePhysicalDnsHostname, ComputerName);
 
+  /* Set the account domain name */
+  SetAccountDomain(ComputerName);
+
   return TRUE;
 }