You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.2 KiB
70 lines
1.2 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
security.c
|
|
|
|
Abstract
|
|
|
|
Security routines.
|
|
|
|
Note: This file uses NTDDK.H, which is blocked out by WDM.H .
|
|
So it does not include PCH.H et al.
|
|
|
|
Author:
|
|
|
|
Ervin P.
|
|
|
|
Environment:
|
|
|
|
Kernel mode only
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
#include "pch.h"
|
|
|
|
|
|
/*
|
|
* Copied from ntrtl.h, which won't compile here.
|
|
*/
|
|
__inline LUID RtlConvertLongToLuid(LONG Long)
|
|
{
|
|
LUID TempLuid;
|
|
LARGE_INTEGER TempLi;
|
|
|
|
TempLi = RtlConvertLongToLargeInteger(Long);
|
|
TempLuid.LowPart = TempLi.LowPart;
|
|
TempLuid.HighPart = TempLi.HighPart;
|
|
return(TempLuid);
|
|
}
|
|
|
|
NTKERNELAPI BOOLEAN SeSinglePrivilegeCheck(LUID PrivilegeValue, KPROCESSOR_MODE PreviousMode);
|
|
|
|
|
|
|
|
|
|
BOOLEAN MyPrivilegeCheck(PIRP Irp)
|
|
{
|
|
BOOLEAN result;
|
|
|
|
#if DBG
|
|
if (dbgSkipSecurity){
|
|
return TRUE;
|
|
}
|
|
#endif
|
|
|
|
{
|
|
#ifndef SE_TCB_PRIVILEGE
|
|
#define SE_TCB_PRIVILEGE (7L)
|
|
#endif
|
|
LUID priv = RtlConvertLongToLuid(SE_TCB_PRIVILEGE);
|
|
result = SeSinglePrivilegeCheck(priv, Irp->RequestorMode);
|
|
}
|
|
return result;
|
|
}
|
|
|