Author: ekohl
Date: Fri Sep 22 10:05:48 2017
New Revision: 75924
URL:
http://svn.reactos.org/svn/reactos?rev=75924&view=rev
Log:
[SAMSRV]
Implement SamIFree_SAMPR_ALIAS_INFO_BUFFER, SamIFree_SAMPR_DOMAIN_INFO_BUFFER and
SamIFree_SAMPR_GROUP_INFO_BUFFER.
Modified:
trunk/reactos/dll/win32/samsrv/samsrv.c
trunk/reactos/dll/win32/samsrv/samsrv.spec
Modified: trunk/reactos/dll/win32/samsrv/samsrv.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/samsrv.c?…
==============================================================================
--- trunk/reactos/dll/win32/samsrv/samsrv.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/samsrv/samsrv.c [iso-8859-1] Fri Sep 22 10:05:48 2017
@@ -151,6 +151,122 @@
VOID
NTAPI
+SamIFree_SAMPR_ALIAS_INFO_BUFFER(
+ PSAMPR_ALIAS_INFO_BUFFER Ptr,
+ ALIAS_INFORMATION_CLASS InformationClass)
+{
+ if (Ptr == NULL)
+ return;
+
+ switch (InformationClass)
+ {
+ case AliasGeneralInformation:
+ if (Ptr->General.Name.Buffer != NULL)
+ MIDL_user_free(Ptr->General.Name.Buffer);
+
+ if (Ptr->General.AdminComment.Buffer != NULL)
+ MIDL_user_free(Ptr->General.AdminComment.Buffer);
+ break;
+
+ case AliasNameInformation:
+ if (Ptr->Name.Name.Buffer != NULL)
+ MIDL_user_free(Ptr->Name.Name.Buffer);
+ break;
+
+ case AliasAdminCommentInformation:
+ if (Ptr->AdminComment.AdminComment.Buffer != NULL)
+ MIDL_user_free(Ptr->AdminComment.AdminComment.Buffer);
+ break;
+
+ default:
+ FIXME("Unsupported information class: %lu\n", InformationClass);
+ break;
+ }
+
+ MIDL_user_free(Ptr);
+}
+
+
+VOID
+NTAPI
+SamIFree_SAMPR_DOMAIN_INFO_BUFFER(
+ PSAMPR_DOMAIN_INFO_BUFFER Ptr,
+ DOMAIN_INFORMATION_CLASS InformationClass)
+{
+ if (Ptr == NULL)
+ return;
+
+ switch (InformationClass)
+ {
+ case DomainPasswordInformation:
+ break;
+
+ case DomainGeneralInformation:
+ if (Ptr->General.OemInformation.Buffer != NULL)
+ MIDL_user_free(Ptr->General.OemInformation.Buffer);
+
+ if (Ptr->General.DomainName.Buffer != NULL)
+ MIDL_user_free(Ptr->General.DomainName.Buffer);
+
+ if (Ptr->General.ReplicaSourceNodeName.Buffer != NULL)
+ MIDL_user_free(Ptr->General.ReplicaSourceNodeName.Buffer);
+ break;
+
+ case DomainLogoffInformation:
+ break;
+
+ case DomainOemInformation:
+ if (Ptr->Oem.OemInformation.Buffer != NULL)
+ MIDL_user_free(Ptr->Oem.OemInformation.Buffer);
+ break;
+
+ case DomainNameInformation:
+ if (Ptr->Name.DomainName.Buffer != NULL)
+ MIDL_user_free(Ptr->Name.DomainName.Buffer);
+ break;
+
+ case DomainReplicationInformation:
+ if (Ptr->Replication.ReplicaSourceNodeName.Buffer != NULL)
+ MIDL_user_free(Ptr->Replication.ReplicaSourceNodeName.Buffer);
+ break;
+
+ case DomainServerRoleInformation:
+ break;
+
+ case DomainModifiedInformation:
+ break;
+
+ case DomainStateInformation:
+ break;
+
+ case DomainGeneralInformation2:
+ if (Ptr->General2.I1.OemInformation.Buffer != NULL)
+ MIDL_user_free(Ptr->General2.I1.OemInformation.Buffer);
+
+ if (Ptr->General2.I1.DomainName.Buffer != NULL)
+ MIDL_user_free(Ptr->General2.I1.DomainName.Buffer);
+
+ if (Ptr->General2.I1.ReplicaSourceNodeName.Buffer != NULL)
+ MIDL_user_free(Ptr->General2.I1.ReplicaSourceNodeName.Buffer);
+ break;
+
+ case DomainLockoutInformation:
+ break;
+
+ case DomainModifiedInformation2:
+ break;
+
+ default:
+ FIXME("Unsupported information class: %lu\n", InformationClass);
+ break;
+ }
+
+ MIDL_user_free(Ptr);
+}
+
+
+VOID
+NTAPI
SamIFree_SAMPR_ENUMERATION_BUFFER(PSAMPR_ENUMERATION_BUFFER Ptr)
{
ULONG i;
@@ -206,6 +322,47 @@
VOID
NTAPI
+SamIFree_SAMPR_GROUP_INFO_BUFFER(
+ PSAMPR_GROUP_INFO_BUFFER Ptr,
+ GROUP_INFORMATION_CLASS InformationClass)
+{
+ if (Ptr == NULL)
+ return;
+
+ switch (InformationClass)
+ {
+ case GroupGeneralInformation:
+ if (Ptr->General.Name.Buffer != NULL)
+ MIDL_user_free(Ptr->General.Name.Buffer);
+
+ if (Ptr->General.AdminComment.Buffer != NULL)
+ MIDL_user_free(Ptr->General.AdminComment.Buffer);
+ break;
+
+ case GroupNameInformation:
+ if (Ptr->Name.Name.Buffer != NULL)
+ MIDL_user_free(Ptr->Name.Name.Buffer);
+ break;
+
+ case GroupAttributeInformation:
+ break;
+
+ case GroupAdminCommentInformation:
+ if (Ptr->AdminComment.AdminComment.Buffer != NULL)
+ MIDL_user_free(Ptr->AdminComment.AdminComment.Buffer);
+ break;
+
+ default:
+ FIXME("Unsupported information class: %lu\n", InformationClass);
+ break;
+ }
+
+ MIDL_user_free(Ptr);
+}
+
+
+VOID
+NTAPI
SamIFree_SAMPR_PSID_ARRAY(PSAMPR_PSID_ARRAY Ptr)
{
if (Ptr != NULL)
Modified: trunk/reactos/dll/win32/samsrv/samsrv.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/samsrv/samsrv.sp…
==============================================================================
--- trunk/reactos/dll/win32/samsrv/samsrv.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/samsrv/samsrv.spec [iso-8859-1] Fri Sep 22 10:05:48 2017
@@ -17,13 +17,13 @@
@ stub SamIFreeSidAndAttributesList
@ stub SamIFreeSidArray
@ stdcall SamIFreeVoid(ptr)
-@ stub SamIFree_SAMPR_ALIAS_INFO_BUFFER
+@ stdcall SamIFree_SAMPR_ALIAS_INFO_BUFFER(ptr long)
@ stub SamIFree_SAMPR_DISPLAY_INFO_BUFFER
-@ stub SamIFree_SAMPR_DOMAIN_INFO_BUFFER
+@ stdcall SamIFree_SAMPR_DOMAIN_INFO_BUFFER(ptr long)
@ stdcall SamIFree_SAMPR_ENUMERATION_BUFFER(ptr)
@ stdcall SamIFree_SAMPR_GET_GROUPS_BUFFER(ptr)
@ stdcall SamIFree_SAMPR_GET_MEMBERS_BUFFER(ptr)
-@ stub SamIFree_SAMPR_GROUP_INFO_BUFFER
+@ stdcall SamIFree_SAMPR_GROUP_INFO_BUFFER(ptr long)
@ stdcall SamIFree_SAMPR_PSID_ARRAY(ptr)
@ stdcall SamIFree_SAMPR_RETURNED_USTRING_ARRAY(ptr)
@ stdcall SamIFree_SAMPR_SR_SECURITY_DESCRIPTOR(ptr)