mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 12:40:33 +00:00
Forgot two files.
svn path=/branches/ros-csrss/; revision=57654
This commit is contained in:
parent
509461cd33
commit
eb1f9f74b7
2 changed files with 145 additions and 7 deletions
|
@ -7,18 +7,18 @@
|
||||||
* PROGRAMMERS: Eric Kohl
|
* PROGRAMMERS: Eric Kohl
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* INCLUDES ****************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include "samsrv.h"
|
#include "samsrv.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(samsrv);
|
WINE_DEFAULT_DEBUG_CHANNEL(samsrv);
|
||||||
|
|
||||||
/* GLOBALS ********************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
static SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
|
static SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
|
||||||
|
|
||||||
|
|
||||||
/* FUNCTIONS ***************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
SampStartRpcServer(VOID)
|
SampStartRpcServer(VOID)
|
||||||
|
@ -4187,10 +4187,126 @@ NTAPI
|
||||||
SamrRemoveMemberFromAlias(IN SAMPR_HANDLE AliasHandle,
|
SamrRemoveMemberFromAlias(IN SAMPR_HANDLE AliasHandle,
|
||||||
IN PRPC_SID MemberId)
|
IN PRPC_SID MemberId)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
PSAM_DB_OBJECT AliasObject;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
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 */
|
/* Function 33 */
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -6338,10 +6454,28 @@ NTAPI
|
||||||
SamrRemoveMultipleMembersFromAlias(IN SAMPR_HANDLE AliasHandle,
|
SamrRemoveMultipleMembersFromAlias(IN SAMPR_HANDLE AliasHandle,
|
||||||
IN PSAMPR_PSID_ARRAY MembersBuffer)
|
IN PSAMPR_PSID_ARRAY MembersBuffer)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
ULONG i;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
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 */
|
/* Function 54 */
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
|
|
|
@ -517,7 +517,11 @@ SVC_(UserSetClipboardViewer, 1)
|
||||||
SVC_(UserSetConsoleReserveKeys, 2)
|
SVC_(UserSetConsoleReserveKeys, 2)
|
||||||
SVC_(UserSetCursor, 1)
|
SVC_(UserSetCursor, 1)
|
||||||
SVC_(UserSetCursorContents, 2)
|
SVC_(UserSetCursorContents, 2)
|
||||||
|
#ifdef NEW_CURSORICON
|
||||||
|
SVC_(UserSetCursorIconData, 4)
|
||||||
|
#else
|
||||||
SVC_(UserSetCursorIconData, 6)
|
SVC_(UserSetCursorIconData, 6)
|
||||||
|
#endif
|
||||||
SVC_(UserSetDbgTag, 2)
|
SVC_(UserSetDbgTag, 2)
|
||||||
SVC_(UserSetFocus, 1)
|
SVC_(UserSetFocus, 1)
|
||||||
SVC_(UserSetImeHotKey, 5)
|
SVC_(UserSetImeHotKey, 5)
|
||||||
|
|
Loading…
Reference in a new issue