mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:33:07 +00:00
Implemented PrivilegeCheck().
svn path=/trunk/; revision=5187
This commit is contained in:
parent
67897f32c0
commit
b6f5c8a9af
2 changed files with 41 additions and 16 deletions
|
@ -1,4 +1,4 @@
|
||||||
; $Id: advapi32.edf,v 1.21 2003/07/20 00:04:06 ekohl Exp $
|
; $Id: advapi32.edf,v 1.22 2003/07/20 15:16:51 ekohl Exp $
|
||||||
;
|
;
|
||||||
; advapi32.edf
|
; advapi32.edf
|
||||||
;
|
;
|
||||||
|
@ -288,7 +288,7 @@ OpenSCManagerW=OpenSCManagerW@12
|
||||||
OpenServiceA=OpenServiceA@12
|
OpenServiceA=OpenServiceA@12
|
||||||
OpenServiceW=OpenServiceW@12
|
OpenServiceW=OpenServiceW@12
|
||||||
OpenThreadToken=OpenThreadToken@16
|
OpenThreadToken=OpenThreadToken@16
|
||||||
;PrivilegeCheck=PrivilegeCheck@12
|
PrivilegeCheck=PrivilegeCheck@12
|
||||||
;PrivilegedServiceAuditAlarmA=PrivilegedServiceAuditAlarmA@20
|
;PrivilegedServiceAuditAlarmA=PrivilegedServiceAuditAlarmA@20
|
||||||
;PrivilegedServiceAuditAlarmW=PrivilegedServiceAuditAlarmW@20
|
;PrivilegedServiceAuditAlarmW=PrivilegedServiceAuditAlarmW@20
|
||||||
;ProvAccessRightsToNTAccessMask=ProvAccessRightsToNTAccessMask@8
|
;ProvAccessRightsToNTAccessMask=ProvAccessRightsToNTAccessMask@8
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: privilege.c,v 1.4 2003/07/10 15:05:55 chorns Exp $
|
/* $Id: privilege.c,v 1.5 2003/07/20 15:16:32 ekohl Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -19,9 +19,9 @@
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
BOOL STDCALL LookupPrivilegeValueA (
|
BOOL STDCALL LookupPrivilegeValueA (
|
||||||
LPCSTR lpSystemName,
|
LPCSTR lpSystemName,
|
||||||
LPCSTR lpName,
|
LPCSTR lpName,
|
||||||
PLUID lpLuid
|
PLUID lpLuid
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
BOOL rv = FALSE;
|
BOOL rv = FALSE;
|
||||||
|
@ -71,9 +71,9 @@ BOOL STDCALL LookupPrivilegeValueA (
|
||||||
* of this API.
|
* of this API.
|
||||||
*/
|
*/
|
||||||
if (FALSE == (rv = LookupPrivilegeValueW (
|
if (FALSE == (rv = LookupPrivilegeValueW (
|
||||||
(lpSystemName ? SystemNameW.Buffer : NULL),
|
(lpSystemName ? SystemNameW.Buffer : NULL),
|
||||||
NameW.Buffer,
|
NameW.Buffer,
|
||||||
lpLuid
|
lpLuid
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -105,7 +105,7 @@ BOOL STDCALL LookupPrivilegeValueA (
|
||||||
}
|
}
|
||||||
return (rv);
|
return (rv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL STDCALL LookupPrivilegeValueW (
|
BOOL STDCALL LookupPrivilegeValueW (
|
||||||
LPCWSTR lpSystemName,
|
LPCWSTR lpSystemName,
|
||||||
|
@ -135,7 +135,7 @@ BOOL STDCALL LookupPrivilegeDisplayNameA (
|
||||||
SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
|
SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
|
@ -164,15 +164,13 @@ BOOL STDCALL LookupPrivilegeNameA (
|
||||||
PLUID lpLuid,
|
PLUID lpLuid,
|
||||||
LPSTR lpName,
|
LPSTR lpName,
|
||||||
LPDWORD cbName
|
LPDWORD cbName
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
|
SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
BOOL STDCALL LookupPrivilegeNameW (
|
BOOL STDCALL LookupPrivilegeNameW (
|
||||||
|
@ -180,11 +178,38 @@ BOOL STDCALL LookupPrivilegeNameW (
|
||||||
PLUID lpLuid,
|
PLUID lpLuid,
|
||||||
LPWSTR lpName,
|
LPWSTR lpName,
|
||||||
LPDWORD cbName
|
LPDWORD cbName
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
|
SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* PrivilegeCheck EXPORTED
|
||||||
|
*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
BOOL STDCALL
|
||||||
|
PrivilegeCheck (HANDLE ClientToken,
|
||||||
|
PPRIVILEGE_SET RequiredPrivileges,
|
||||||
|
LPBOOL pfResult)
|
||||||
|
{
|
||||||
|
BOOLEAN Result;
|
||||||
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
Status = NtPrivilegeCheck (ClientToken,
|
||||||
|
RequiredPrivileges,
|
||||||
|
&Result);
|
||||||
|
if (!NT_SUCCESS (Status))
|
||||||
|
{
|
||||||
|
SetLastError (RtlNtStatusToDosError (Status));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*pfResult = (BOOL) Result;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue