84 lines
1 KiB
C
84 lines
1 KiB
C
/*
|
|
* User.c
|
|
*
|
|
* Author: BreenH
|
|
*
|
|
* User account utilities.
|
|
*/
|
|
|
|
/*
|
|
* Includes
|
|
*/
|
|
|
|
#include "precomp.h"
|
|
#include "tsutil.h"
|
|
#include "tsutilnt.h"
|
|
|
|
/*
|
|
* Function Implementations
|
|
*/
|
|
|
|
BOOL WINAPI
|
|
CreateAdminSid(
|
|
PSID *ppAdminSid
|
|
)
|
|
{
|
|
BOOL fRet;
|
|
NTSTATUS Status;
|
|
|
|
Status = NtCreateAdminSid(ppAdminSid);
|
|
|
|
if (NT_SUCCESS(Status))
|
|
{
|
|
fRet = TRUE;
|
|
}
|
|
else
|
|
{
|
|
fRet = FALSE;
|
|
SetLastError(RtlNtStatusToDosError(Status));
|
|
}
|
|
|
|
return(fRet);
|
|
}
|
|
|
|
BOOL WINAPI
|
|
CreateSystemSid(
|
|
PSID *ppSystemSid
|
|
)
|
|
{
|
|
BOOL fRet;
|
|
NTSTATUS Status;
|
|
|
|
Status = NtCreateSystemSid(ppSystemSid);
|
|
|
|
if (NT_SUCCESS(Status))
|
|
{
|
|
fRet = TRUE;
|
|
}
|
|
else
|
|
{
|
|
fRet = FALSE;
|
|
SetLastError(RtlNtStatusToDosError(Status));
|
|
}
|
|
|
|
return(fRet);
|
|
}
|
|
|
|
BOOL WINAPI
|
|
IsUserMember(
|
|
PSID pSid
|
|
)
|
|
{
|
|
BOOL fMember;
|
|
BOOL fRet;
|
|
|
|
ASSERT(pSid != NULL);
|
|
|
|
fMember = FALSE;
|
|
|
|
fRet = CheckTokenMembership(NULL, pSid, &fMember);
|
|
|
|
return(fRet && fMember);
|
|
}
|
|
|