Author: ekohl
Date: Sat Oct 27 19:38:12 2012
New Revision: 57626
URL:
http://svn.reactos.org/svn/reactos?rev=57626&view=rev
Log:
[SAMSRV]
- Fix MSVC build warnings.
- Implement SamrAddMultipeMembersToAlias.
- Add missing user attributes to the user setup code.
Modified:
trunk/reactos/dll/win32/samsrv/database.c
trunk/reactos/dll/win32/samsrv/samrpc.c
trunk/reactos/dll/win32/samsrv/setup.c
Modified: trunk/reactos/dll/win32/samsrv/database.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/database.…
==============================================================================
--- trunk/reactos/dll/win32/samsrv/database.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/samsrv/database.c [iso-8859-1] Sat Oct 27 19:38:12 2012
@@ -764,8 +764,8 @@
goto done;
}
- String->Length = Length - sizeof(WCHAR);
- String->MaximumLength = Length;
+ String->Length = (USHORT)(Length - sizeof(WCHAR));
+ String->MaximumLength = (USHORT)Length;
String->Buffer = midl_user_allocate(Length);
if (String->Buffer == NULL)
{
Modified: trunk/reactos/dll/win32/samsrv/samrpc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/samrpc.c?…
==============================================================================
--- trunk/reactos/dll/win32/samsrv/samrpc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/samsrv/samrpc.c [iso-8859-1] Sat Oct 27 19:38:12 2012
@@ -16,6 +16,7 @@
/* GLOBALS ********************************************************************/
static SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
+
/* FUNCTIONS ***************************************************************/
@@ -3051,6 +3052,8 @@
Use->Count = 0;
}
+ TRACE("Returned Status %lx\n", Status);
+
return Status;
}
@@ -3145,8 +3148,8 @@
if (NT_SUCCESS(Status))
{
- Names->Element[i].MaximumLength = DataLength;
- Names->Element[i].Length = DataLength - sizeof(WCHAR);
+ Names->Element[i].MaximumLength = (USHORT)DataLength;
+ Names->Element[i].Length = (USHORT)(DataLength -
sizeof(WCHAR));
Status = SampRegQueryValue(AccountKeyHandle,
L"Name",
@@ -3201,8 +3204,8 @@
if (NT_SUCCESS(Status))
{
- Names->Element[i].MaximumLength = DataLength;
- Names->Element[i].Length = DataLength - sizeof(WCHAR);
+ Names->Element[i].MaximumLength = (USHORT)DataLength;
+ Names->Element[i].Length = (USHORT)(DataLength -
sizeof(WCHAR));
Status = SampRegQueryValue(AccountKeyHandle,
L"Name",
@@ -3259,8 +3262,8 @@
if (NT_SUCCESS(Status))
{
- Names->Element[i].MaximumLength = DataLength;
- Names->Element[i].Length = DataLength - sizeof(WCHAR);
+ Names->Element[i].MaximumLength = (USHORT)DataLength;
+ Names->Element[i].Length = (USHORT)(DataLength -
sizeof(WCHAR));
Status = SampRegQueryValue(AccountKeyHandle,
L"Name",
@@ -4319,6 +4322,7 @@
return Status;
}
+
/* Function 34 */
NTSTATUS
NTAPI
@@ -4366,6 +4370,7 @@
return STATUS_SUCCESS;
}
+
/* Function 35 */
NTSTATUS
@@ -4676,8 +4681,6 @@
return Status;
}
-
-
static
@@ -6283,6 +6286,7 @@
return Status;
}
+
/* Function 51 */
NTSTATUS
NTAPI
@@ -6299,15 +6303,34 @@
return STATUS_NOT_IMPLEMENTED;
}
+
/* Function 52 */
NTSTATUS
NTAPI
SamrAddMultipleMembersToAlias(IN SAMPR_HANDLE AliasHandle,
IN PSAMPR_PSID_ARRAY MembersBuffer)
{
- UNIMPLEMENTED;
- return STATUS_NOT_IMPLEMENTED;
-}
+ ULONG i;
+ NTSTATUS Status = STATUS_SUCCESS;
+
+ TRACE("SamrAddMultipleMembersToAlias(%p %p)\n",
+ AliasHandle, MembersBuffer);
+
+ for (i = 0; i < MembersBuffer->Count; i++)
+ {
+ Status = SamrAddMemberToAlias(AliasHandle,
+ ((PSID *)MembersBuffer->Sids)[i]);
+
+ if (Status == STATUS_MEMBER_IN_ALIAS)
+ Status = STATUS_SUCCESS;
+
+ if (!NT_SUCCESS(Status))
+ break;
+ }
+
+ return Status;
+}
+
/* Function 53 */
NTSTATUS
Modified: trunk/reactos/dll/win32/samsrv/setup.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/setup.c?r…
==============================================================================
--- trunk/reactos/dll/win32/samsrv/setup.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/samsrv/setup.c [iso-8859-1] Sat Oct 27 19:38:12 2012
@@ -224,6 +224,7 @@
ULONG ulRelativeId)
{
SAM_USER_FIXED_DATA FixedUserData;
+ LPWSTR lpEmptyString = L"";
DWORD dwDisposition;
WCHAR szAccountKeyName[32];
HKEY hAccountKey = NULL;
@@ -260,6 +261,62 @@
REG_SZ,
(LPVOID)lpAccountName,
(wcslen(lpAccountName) + 1) * sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"FullName",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"HomeDirectory",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"HomeDirectoryDrive",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"ScriptPath",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"ProfilePath",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"AdminComment",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"UserComment",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
+
+ RegSetValueEx(hAccountKey,
+ L"WorkStations",
+ 0,
+ REG_SZ,
+ (LPVOID)lpEmptyString,
+ sizeof(WCHAR));
RegCloseKey(hAccountKey);
}