Author: ekohl Date: Mon Sep 2 20:36:42 2013 New Revision: 59964
URL: http://svn.reactos.org/svn/reactos?rev=59964&view=rev Log: [SAMSRV] - Use the new function SampSetObjectAttributeString to write strings to the registry. Handle empty strings properly. - Fix SampGetObjectAttributeString to handle empty strings properly as well.
Modified: trunk/reactos/dll/win32/samsrv/database.c trunk/reactos/dll/win32/samsrv/samrpc.c trunk/reactos/dll/win32/samsrv/samsrv.h
Modified: trunk/reactos/dll/win32/samsrv/database.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/database.c... ============================================================================== --- trunk/reactos/dll/win32/samsrv/database.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/samsrv/database.c [iso-8859-1] Mon Sep 2 20:36:42 2013 @@ -533,7 +533,7 @@ NTSTATUS SampGetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, - RPC_UNICODE_STRING *String) + PRPC_UNICODE_STRING String) { ULONG Length = 0; NTSTATUS Status; @@ -549,6 +549,16 @@ goto done; }
+ if (Length == 0) + { + String->Length = 0; + String->MaximumLength = 0; + String->Buffer = NULL; + + Status = STATUS_SUCCESS; + goto done; + } + String->Length = (USHORT)(Length - sizeof(WCHAR)); String->MaximumLength = (USHORT)Length; String->Buffer = midl_user_allocate(Length); @@ -583,5 +593,28 @@ return Status; }
+ +NTSTATUS +SampSetObjectAttributeString(PSAM_DB_OBJECT DbObject, + LPWSTR AttributeName, + PRPC_UNICODE_STRING String) +{ + PWCHAR Buffer = NULL; + USHORT Length = 0; + + if ((String != NULL) && (String->Buffer != NULL)) + { + Buffer = String->Buffer; + Length = String->Length + sizeof(WCHAR); + } + + return SampSetObjectAttribute(DbObject, + AttributeName, + REG_SZ, + Buffer, + Length); +} + + /* EOF */
Modified: trunk/reactos/dll/win32/samsrv/samrpc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/samrpc.c?r... ============================================================================== --- trunk/reactos/dll/win32/samsrv/samrpc.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/samsrv/samrpc.c [iso-8859-1] Mon Sep 2 20:36:42 2013 @@ -1714,27 +1714,21 @@ break;
case DomainOemInformation: - Status = SampSetObjectAttribute(DomainObject, - L"OemInformation", - REG_SZ, - DomainInformation->Oem.OemInformation.Buffer, - DomainInformation->Oem.OemInformation.Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(DomainObject, + L"OemInformation", + &DomainInformation->Oem.OemInformation); break;
case DomainNameInformation: - Status = SampSetObjectAttribute(DomainObject, - L"Name", - REG_SZ, - DomainInformation->Name.DomainName.Buffer, - DomainInformation->Name.DomainName.Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(DomainObject, + L"Name", + &DomainInformation->Name.DomainName); break;
case DomainReplicationInformation: - Status = SampSetObjectAttribute(DomainObject, - L"ReplicaSourceNodeName", - REG_SZ, - DomainInformation->Replication.ReplicaSourceNodeName.Buffer, - DomainInformation->Replication.ReplicaSourceNodeName.Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(DomainObject, + L"ReplicaSourceNodeName", + &DomainInformation->Replication.ReplicaSourceNodeName); break;
case DomainServerRoleInformation: @@ -1772,7 +1766,6 @@ OUT SAMPR_HANDLE *GroupHandle, OUT unsigned long *RelativeId) { - UNICODE_STRING EmptyString = RTL_CONSTANT_STRING(L""); SAM_DOMAIN_FIXED_DATA FixedDomainData; SAM_GROUP_FIXED_DATA FixedGroupData; PSAM_DB_OBJECT DomainObject; @@ -1840,10 +1833,10 @@
/* Store the fixed domain attributes */ Status = SampSetObjectAttribute(DomainObject, - L"F", - REG_BINARY, - &FixedDomainData, - ulSize); + L"F", + REG_BINARY, + &FixedDomainData, + ulSize); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -1898,11 +1891,9 @@ }
/* Set the Name attribute */ - Status = SampSetObjectAttribute(GroupObject, - L"Name", - REG_SZ, - (LPVOID)Name->Buffer, - Name->MaximumLength); + Status = SampSetObjectAttributeString(GroupObject, + L"Name", + Name); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -1910,11 +1901,9 @@ }
/* Set the AdminComment attribute */ - Status = SampSetObjectAttribute(GroupObject, - L"AdminComment", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(GroupObject, + L"AdminComment", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2150,7 +2139,6 @@ OUT SAMPR_HANDLE *UserHandle, OUT unsigned long *RelativeId) { - UNICODE_STRING EmptyString = RTL_CONSTANT_STRING(L""); SAM_DOMAIN_FIXED_DATA FixedDomainData; SAM_USER_FIXED_DATA FixedUserData; PSAM_DB_OBJECT DomainObject; @@ -2302,11 +2290,9 @@ }
/* Set the Name attribute */ - Status = SampSetObjectAttribute(UserObject, - L"Name", - REG_SZ, - (LPVOID)Name->Buffer, - Name->MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"Name", + Name); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2314,11 +2300,9 @@ }
/* Set the FullName attribute */ - Status = SampSetObjectAttribute(UserObject, - L"FullName", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"FullName", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2326,11 +2310,9 @@ }
/* Set the HomeDirectory attribute */ - Status = SampSetObjectAttribute(UserObject, - L"HomeDirectory", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectory", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2338,11 +2320,9 @@ }
/* Set the HomeDirectoryDrive attribute */ - Status = SampSetObjectAttribute(UserObject, - L"HomeDirectoryDrive", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectoryDrive", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2350,11 +2330,9 @@ }
/* Set the ScriptPath attribute */ - Status = SampSetObjectAttribute(UserObject, - L"ScriptPath", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ScriptPath", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2362,11 +2340,9 @@ }
/* Set the ProfilePath attribute */ - Status = SampSetObjectAttribute(UserObject, - L"ProfilePath", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ProfilePath", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2374,11 +2350,9 @@ }
/* Set the AdminComment attribute */ - Status = SampSetObjectAttribute(UserObject, - L"AdminComment", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"AdminComment", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2386,11 +2360,9 @@ }
/* Set the UserComment attribute */ - Status = SampSetObjectAttribute(UserObject, - L"UserComment", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"UserComment", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2398,11 +2370,9 @@ }
/* Set the WorkStations attribute */ - Status = SampSetObjectAttribute(UserObject, - L"WorkStations", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"WorkStations", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2410,11 +2380,9 @@ }
/* Set the Parameters attribute */ - Status = SampSetObjectAttribute(UserObject, - L"Parameters", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"Parameters", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2736,7 +2704,6 @@ SAM_DOMAIN_FIXED_DATA FixedDomainData; PSAM_DB_OBJECT DomainObject; PSAM_DB_OBJECT AliasObject; - UNICODE_STRING EmptyString = RTL_CONSTANT_STRING(L""); ULONG ulSize; ULONG ulRid; WCHAR szRid[9]; @@ -2841,11 +2808,9 @@ }
/* Set the Name attribute */ - Status = SampSetObjectAttribute(AliasObject, - L"Name", - REG_SZ, - (LPVOID)AccountName->Buffer, - AccountName->MaximumLength); + Status = SampSetObjectAttributeString(AliasObject, + L"Name", + AccountName); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -2853,11 +2818,9 @@ }
/* Set the Description attribute */ - Status = SampSetObjectAttribute(AliasObject, - L"Description", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(AliasObject, + L"Description", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -4141,11 +4104,9 @@ goto done; }
- Status = SampSetObjectAttribute(GroupObject, - L"Name", - REG_SZ, - NewGroupName.Buffer, - NewGroupName.Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(GroupObject, + L"Name", + (PRPC_UNICODE_STRING)&NewGroupName); if (!NT_SUCCESS(Status)) { TRACE("SampSetObjectAttribute failed (Status 0x%08lx)\n", Status); @@ -4226,11 +4187,9 @@ break;
case GroupAdminCommentInformation: - Status = SampSetObjectAttribute(GroupObject, - L"Description", - REG_SZ, - Buffer->AdminComment.AdminComment.Buffer, - Buffer->AdminComment.AdminComment.Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(GroupObject, + L"Description", + &Buffer->AdminComment.AdminComment); break;
default: @@ -4926,11 +4885,9 @@ goto done; }
- Status = SampSetObjectAttribute(AliasObject, - L"Name", - REG_SZ, - NewAliasName.Buffer, - NewAliasName.Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(AliasObject, + L"Name", + (PRPC_UNICODE_STRING)&NewAliasName); if (!NT_SUCCESS(Status)) { TRACE("SampSetObjectAttribute failed (Status 0x%08lx)\n", Status); @@ -4976,11 +4933,9 @@ break;
case AliasAdminCommentInformation: - Status = SampSetObjectAttribute(AliasObject, - L"Description", - REG_SZ, - Buffer->AdminComment.AdminComment.Buffer, - Buffer->AdminComment.AdminComment.Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(AliasObject, + L"Description", + &Buffer->AdminComment.AdminComment); break;
default: @@ -7039,11 +6994,9 @@ goto done; }
- Status = SampSetObjectAttribute(UserObject, - L"Name", - REG_SZ, - NewUserName->Buffer, - NewUserName->Length + sizeof(WCHAR)); + Status = SampSetObjectAttributeString(UserObject, + L"Name", + NewUserName); if (!NT_SUCCESS(Status)) { TRACE("SampSetObjectAttribute failed (Status 0x%08lx)\n", Status); @@ -7089,27 +7042,21 @@ if (!NT_SUCCESS(Status)) goto done;
- Status = SampSetObjectAttribute(UserObject, - L"FullName", - REG_SZ, - Buffer->General.FullName.Buffer, - Buffer->General.FullName.MaximumLength); - if (!NT_SUCCESS(Status)) - goto done; - - Status = SampSetObjectAttribute(UserObject, - L"AdminComment", - REG_SZ, - Buffer->General.AdminComment.Buffer, - Buffer->General.AdminComment.MaximumLength); - if (!NT_SUCCESS(Status)) - goto done; - - Status = SampSetObjectAttribute(UserObject, - L"UserComment", - REG_SZ, - Buffer->General.UserComment.Buffer, - Buffer->General.UserComment.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"FullName", + &Buffer->General.FullName); + if (!NT_SUCCESS(Status)) + goto done; + + Status = SampSetObjectAttributeString(UserObject, + L"AdminComment", + &Buffer->General.AdminComment); + if (!NT_SUCCESS(Status)) + goto done; + + Status = SampSetObjectAttributeString(UserObject, + L"UserComment", + &Buffer->General.UserComment);
done: return Status; @@ -7144,11 +7091,9 @@ if (!NT_SUCCESS(Status)) goto done;
- Status = SampSetObjectAttribute(UserObject, - L"UserComment", - REG_SZ, - Buffer->Preferences.UserComment.Buffer, - Buffer->Preferences.UserComment.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"UserComment", + &Buffer->Preferences.UserComment);
done: return Status; @@ -7337,99 +7282,81 @@
if (WhichFields & USER_ALL_FULLNAME) { - Status = SampSetObjectAttribute(UserObject, - L"FullName", - REG_SZ, - Buffer->All.FullName.Buffer, - Buffer->All.FullName.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"FullName", + &Buffer->All.FullName); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_ADMINCOMMENT) { - Status = SampSetObjectAttribute(UserObject, - L"AdminComment", - REG_SZ, - Buffer->All.AdminComment.Buffer, - Buffer->All.AdminComment.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"AdminComment", + &Buffer->All.AdminComment); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_USERCOMMENT) { - Status = SampSetObjectAttribute(UserObject, - L"UserComment", - REG_SZ, - Buffer->All.UserComment.Buffer, - Buffer->All.UserComment.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"UserComment", + &Buffer->All.UserComment); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_HOMEDIRECTORY) { - Status = SampSetObjectAttribute(UserObject, - L"HomeDirectory", - REG_SZ, - Buffer->All.HomeDirectory.Buffer, - Buffer->All.HomeDirectory.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectory", + &Buffer->All.HomeDirectory); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_HOMEDIRECTORYDRIVE) { - Status = SampSetObjectAttribute(UserObject, - L"HomeDirectoryDrive", - REG_SZ, - Buffer->All.HomeDirectoryDrive.Buffer, - Buffer->All.HomeDirectoryDrive.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectoryDrive", + &Buffer->All.HomeDirectoryDrive); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_SCRIPTPATH) { - Status = SampSetObjectAttribute(UserObject, - L"ScriptPath", - REG_SZ, - Buffer->All.ScriptPath.Buffer, - Buffer->All.ScriptPath.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ScriptPath", + &Buffer->All.ScriptPath); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_PROFILEPATH) { - Status = SampSetObjectAttribute(UserObject, - L"ProfilePath", - REG_SZ, - Buffer->All.ProfilePath.Buffer, - Buffer->All.ProfilePath.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ProfilePath", + &Buffer->All.ProfilePath); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_WORKSTATIONS) { - Status = SampSetObjectAttribute(UserObject, - L"WorkStations", - REG_SZ, - Buffer->All.WorkStations.Buffer, - Buffer->All.WorkStations.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"WorkStations", + &Buffer->All.WorkStations); if (!NT_SUCCESS(Status)) goto done; }
if (WhichFields & USER_ALL_PARAMETERS) { - Status = SampSetObjectAttribute(UserObject, - L"Parameters", - REG_SZ, - Buffer->All.Parameters.Buffer, - Buffer->All.Parameters.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"Parameters", + &Buffer->All.Parameters); if (!NT_SUCCESS(Status)) goto done; } @@ -7630,11 +7557,9 @@ if (!NT_SUCCESS(Status)) break;
- Status = SampSetObjectAttribute(UserObject, - L"FullName", - REG_SZ, - Buffer->Name.FullName.Buffer, - Buffer->Name.FullName.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"FullName", + &Buffer->Name.FullName); break;
case UserAccountNameInformation: @@ -7643,11 +7568,9 @@ break;
case UserFullNameInformation: - Status = SampSetObjectAttribute(UserObject, - L"FullName", - REG_SZ, - Buffer->FullName.FullName.Buffer, - Buffer->FullName.FullName.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"FullName", + &Buffer->FullName.FullName); break;
case UserPrimaryGroupInformation: @@ -7656,62 +7579,48 @@ break;
case UserHomeInformation: - Status = SampSetObjectAttribute(UserObject, - L"HomeDirectory", - REG_SZ, - Buffer->Home.HomeDirectory.Buffer, - Buffer->Home.HomeDirectory.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectory", + &Buffer->Home.HomeDirectory); if (!NT_SUCCESS(Status)) break;
- Status = SampSetObjectAttribute(UserObject, - L"HomeDirectoryDrive", - REG_SZ, - Buffer->Home.HomeDirectoryDrive.Buffer, - Buffer->Home.HomeDirectoryDrive.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectoryDrive", + &Buffer->Home.HomeDirectoryDrive); break;
case UserScriptInformation: - Status = SampSetObjectAttribute(UserObject, - L"ScriptPath", - REG_SZ, - Buffer->Script.ScriptPath.Buffer, - Buffer->Script.ScriptPath.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ScriptPath", + &Buffer->Script.ScriptPath); break;
case UserProfileInformation: - Status = SampSetObjectAttribute(UserObject, - L"ProfilePath", - REG_SZ, - Buffer->Profile.ProfilePath.Buffer, - Buffer->Profile.ProfilePath.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ProfilePath", + &Buffer->Profile.ProfilePath); break;
case UserAdminCommentInformation: - Status = SampSetObjectAttribute(UserObject, - L"AdminComment", - REG_SZ, - Buffer->AdminComment.AdminComment.Buffer, - Buffer->AdminComment.AdminComment.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"AdminComment", + &Buffer->AdminComment.AdminComment); break;
case UserWorkStationsInformation: - Status = SampSetObjectAttribute(UserObject, - L"WorkStations", - REG_SZ, - Buffer->WorkStations.WorkStations.Buffer, - Buffer->WorkStations.WorkStations.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"WorkStations", + &Buffer->WorkStations.WorkStations); break;
case UserSetPasswordInformation: TRACE("Password: %S\n", Buffer->SetPassword.Password.Buffer); TRACE("PasswordExpired: %d\n", Buffer->SetPassword.PasswordExpired);
- Status = SampSetObjectAttribute(UserObject, - L"Password", - REG_SZ, - Buffer->SetPassword.Password.Buffer, - Buffer->SetPassword.Password.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"Password", + &Buffer->SetPassword.Password); break;
case UserControlInformation: @@ -7730,11 +7639,9 @@ break;
case UserParametersInformation: - Status = SampSetObjectAttribute(UserObject, - L"Parameters", - REG_SZ, - Buffer->Parameters.Parameters.Buffer, - Buffer->Parameters.Parameters.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"Parameters", + &Buffer->Parameters.Parameters); break;
case UserAllInformation: @@ -8378,7 +8285,6 @@ OUT unsigned long *GrantedAccess, OUT unsigned long *RelativeId) { - UNICODE_STRING EmptyString = RTL_CONSTANT_STRING(L""); SAM_DOMAIN_FIXED_DATA FixedDomainData; SAM_USER_FIXED_DATA FixedUserData; PSAM_DB_OBJECT DomainObject; @@ -8537,11 +8443,9 @@ }
/* Set the Name attribute */ - Status = SampSetObjectAttribute(UserObject, - L"Name", - REG_SZ, - (LPVOID)Name->Buffer, - Name->MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"Name", + Name); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8549,11 +8453,9 @@ }
/* Set the FullName attribute */ - Status = SampSetObjectAttribute(UserObject, - L"FullName", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"FullName", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8561,11 +8463,9 @@ }
/* Set the HomeDirectory attribute */ - Status = SampSetObjectAttribute(UserObject, - L"HomeDirectory", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectory", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8573,11 +8473,9 @@ }
/* Set the HomeDirectoryDrive attribute */ - Status = SampSetObjectAttribute(UserObject, - L"HomeDirectoryDrive", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"HomeDirectoryDrive", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8585,11 +8483,9 @@ }
/* Set the ScriptPath attribute */ - Status = SampSetObjectAttribute(UserObject, - L"ScriptPath", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ScriptPath", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8597,11 +8493,9 @@ }
/* Set the ProfilePath attribute */ - Status = SampSetObjectAttribute(UserObject, - L"ProfilePath", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"ProfilePath", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8609,11 +8503,9 @@ }
/* Set the AdminComment attribute */ - Status = SampSetObjectAttribute(UserObject, - L"AdminComment", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"AdminComment", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8621,11 +8513,9 @@ }
/* Set the UserComment attribute */ - Status = SampSetObjectAttribute(UserObject, - L"UserComment", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"UserComment", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8633,11 +8523,9 @@ }
/* Set the WorkStations attribute */ - Status = SampSetObjectAttribute(UserObject, - L"WorkStations", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"WorkStations", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status); @@ -8645,11 +8533,9 @@ }
/* Set the Parameters attribute */ - Status = SampSetObjectAttribute(UserObject, - L"Parameters", - REG_SZ, - EmptyString.Buffer, - EmptyString.MaximumLength); + Status = SampSetObjectAttributeString(UserObject, + L"Parameters", + NULL); if (!NT_SUCCESS(Status)) { TRACE("failed with status 0x%08lx\n", Status);
Modified: trunk/reactos/dll/win32/samsrv/samsrv.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/samsrv.h?r... ============================================================================== --- trunk/reactos/dll/win32/samsrv/samsrv.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/samsrv/samsrv.h [iso-8859-1] Mon Sep 2 20:36:42 2013 @@ -194,8 +194,12 @@ NTSTATUS SampGetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, - RPC_UNICODE_STRING *String); - + PRPC_UNICODE_STRING String); + +NTSTATUS +SampSetObjectAttributeString(PSAM_DB_OBJECT DbObject, + LPWSTR AttributeName, + PRPC_UNICODE_STRING String);
/* domain.c */