ExpWnfCheckCallerAccess
NTSTATUS __stdcall ExpWnfCheckCallerAccess(VOID *SecurityDescriptor, UINT64 DesiredAccess){
_ACCESS_MASK v2;
_KPROCESSOR_MODE AccessMode;
_SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
int AccessStatus;
unsigned int GrantedAccess;
GrantedAccess = 0;
AccessStatus = 0;
v2 = DesiredAccess;
memset(&SubjectSecurityContext, 0, sizeof(SubjectSecurityContext));
if( !(_DWORD)DesiredAccess )
return 0;
SeCaptureSubjectContext((INT64)&SubjectSecurityContext);
LOBYTE(AccessMode) = 1;
SeAccessCheck(
SecurityDescriptor,
&SubjectSecurityContext,
0,
v2,
0,
0i64,
(PGENERIC_MAPPING)&ExpWnfNotificationMapping,
AccessMode,
&GrantedAccess,
&AccessStatus);
SeReleaseSubjectContext(&SubjectSecurityContext);
return AccessStatus;
}Referenced by:
ExpNtDeleteWnfStateData
ExpWnfCheckCrossScopeAccess
ExpWnfSubscribeWnfStateChange
ExpWnfValidatePubSubPreconditions
NtDeleteWnfStateName
NtQueryWnfStateNameInformation