Author: hbelusca
Date: Wed Oct 31 00:41:02 2012
New Revision: 57654
URL:
http://svn.reactos.org/svn/reactos?rev=57654&view=rev
Log:
Forgot two files.
Modified:
branches/ros-csrss/ (props changed)
branches/ros-csrss/dll/win32/samsrv/samrpc.c
branches/ros-csrss/win32ss/w32ksvc.h
Propchange: branches/ros-csrss/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 31 00:41:02 2012
@@ -13,4 +13,4 @@
/branches/usb-bringup:51335,51337,51341-51343,51348,51350,51353,51355,51365-51369,51372,51384-54388,54396-54398,54736-54737,54752-54754,54756-54760,54762,54764-54765,54767-54768,54772,54774-54777,54781,54787,54790-54792,54797-54798,54806,54808,54834-54838,54843,54850,54852,54856,54858-54859
/branches/usb-bringup-trunk:55019-55543,55548-55554,55556-55567
/branches/wlan-bringup:54809-54998
-/trunk/reactos:57561-57652
+/trunk/reactos:57561-57653
Modified: branches/ros-csrss/dll/win32/samsrv/samrpc.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-csrss/dll/win32/samsrv/samr…
==============================================================================
--- branches/ros-csrss/dll/win32/samsrv/samrpc.c [iso-8859-1] (original)
+++ branches/ros-csrss/dll/win32/samsrv/samrpc.c [iso-8859-1] Wed Oct 31 00:41:02 2012
@@ -7,18 +7,18 @@
* PROGRAMMERS: Eric Kohl
*/
-/* INCLUDES ****************************************************************/
+/* INCLUDES ******************************************************************/
#include "samsrv.h"
WINE_DEFAULT_DEBUG_CHANNEL(samsrv);
-/* GLOBALS ********************************************************************/
+/* GLOBALS *******************************************************************/
static SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
-/* FUNCTIONS ***************************************************************/
+/* FUNCTIONS *****************************************************************/
VOID
SampStartRpcServer(VOID)
@@ -4187,9 +4187,125 @@
SamrRemoveMemberFromAlias(IN SAMPR_HANDLE AliasHandle,
IN PRPC_SID MemberId)
{
- UNIMPLEMENTED;
- return STATUS_NOT_IMPLEMENTED;
-}
+ PSAM_DB_OBJECT AliasObject;
+ LPWSTR MemberIdString = NULL;
+ HANDLE MembersKeyHandle = NULL;
+ HANDLE MemberKeyHandle = NULL;
+ ULONG ulValueCount;
+ NTSTATUS Status;
+
+ TRACE("SamrRemoveMemberFromAlias(%p %p)\n",
+ AliasHandle, MemberId);
+
+ /* Validate the alias handle */
+ Status = SampValidateDbObject(AliasHandle,
+ SamDbAliasObject,
+ ALIAS_REMOVE_MEMBER,
+ &AliasObject);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("failed with status 0x%08lx\n", Status);
+ return Status;
+ }
+
+ ConvertSidToStringSidW(MemberId, &MemberIdString);
+ TRACE("Member SID: %S\n", MemberIdString);
+
+ Status = SampRegOpenKey(AliasObject->MembersKeyHandle,
+ MemberIdString,
+ KEY_WRITE | KEY_QUERY_VALUE,
+ &MemberKeyHandle);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegOpenKey failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+
+ Status = SampRegDeleteValue(MemberKeyHandle,
+ AliasObject->Name);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegDeleteValue failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+
+ Status = SampRegQueryKeyInfo(MemberKeyHandle,
+ NULL,
+ &ulValueCount);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegQueryKeyInfo failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+
+ if (ulValueCount == 0)
+ {
+ SampRegCloseKey(MemberKeyHandle);
+ MemberKeyHandle = NULL;
+
+ Status = SampRegDeleteKey(AliasObject->MembersKeyHandle,
+ MemberIdString);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegDeleteKey failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+ }
+
+ Status = SampRegOpenKey(AliasObject->KeyHandle,
+ L"Members",
+ KEY_WRITE | KEY_QUERY_VALUE,
+ &MembersKeyHandle);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegOpenKey failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+
+ Status = SampRegDeleteValue(MembersKeyHandle,
+ MemberIdString);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegDeleteValue failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+
+ Status = SampRegQueryKeyInfo(MembersKeyHandle,
+ NULL,
+ &ulValueCount);
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegQueryKeyInfo failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+
+ if (ulValueCount == 0)
+ {
+ SampRegCloseKey(MembersKeyHandle);
+ MembersKeyHandle = NULL;
+
+ Status = SampRegDeleteKey(AliasObject->KeyHandle,
+ L"Members");
+ if (!NT_SUCCESS(Status))
+ {
+ TRACE("SampRegDeleteKey failed with status 0x%08lx\n", Status);
+ goto done;
+ }
+ }
+
+done:
+ if (MemberKeyHandle != NULL)
+ SampRegCloseKey(MemberKeyHandle);
+
+ if (MembersKeyHandle != NULL)
+ SampRegCloseKey(MembersKeyHandle);
+
+ if (MemberIdString != NULL)
+ LocalFree(MemberIdString);
+
+ return Status;
+}
+
/* Function 33 */
NTSTATUS
@@ -6338,9 +6454,27 @@
SamrRemoveMultipleMembersFromAlias(IN SAMPR_HANDLE AliasHandle,
IN PSAMPR_PSID_ARRAY MembersBuffer)
{
- UNIMPLEMENTED;
- return STATUS_NOT_IMPLEMENTED;
-}
+ ULONG i;
+ NTSTATUS Status = STATUS_SUCCESS;
+
+ TRACE("SamrRemoveMultipleMembersFromAlias(%p %p)\n",
+ AliasHandle, MembersBuffer);
+
+ for (i = 0; i < MembersBuffer->Count; i++)
+ {
+ Status = SamrRemoveMemberFromAlias(AliasHandle,
+ ((PSID *)MembersBuffer->Sids)[i]);
+
+ if (Status == STATUS_MEMBER_IN_ALIAS)
+ Status = STATUS_SUCCESS;
+
+ if (!NT_SUCCESS(Status))
+ break;
+ }
+
+ return Status;
+}
+
/* Function 54 */
NTSTATUS
Modified: branches/ros-csrss/win32ss/w32ksvc.h
URL:
http://svn.reactos.org/svn/reactos/branches/ros-csrss/win32ss/w32ksvc.h?rev…
==============================================================================
--- branches/ros-csrss/win32ss/w32ksvc.h [iso-8859-1] (original)
+++ branches/ros-csrss/win32ss/w32ksvc.h [iso-8859-1] Wed Oct 31 00:41:02 2012
@@ -517,7 +517,11 @@
SVC_(UserSetConsoleReserveKeys, 2)
SVC_(UserSetCursor, 1)
SVC_(UserSetCursorContents, 2)
+#ifdef NEW_CURSORICON
+SVC_(UserSetCursorIconData, 4)
+#else
SVC_(UserSetCursorIconData, 6)
+#endif
SVC_(UserSetDbgTag, 2)
SVC_(UserSetFocus, 1)
SVC_(UserSetImeHotKey, 5)