NtSetDebugFilterState
NTSTATUS __stdcall NtSetDebugFilterState(UINT64 ComponentId, UINT64 Level, UINT8 State){
unsigned int v3;
__int64 v5;
char PreviousMode;
int *v7;
v3 = Level;
v5 = (unsigned int)ComponentId;
PreviousMode = KeGetCurrentThread()->PreviousMode;
if( PreviousMode && !SeSinglePrivilegeCheck(*(_QWORD *)&SeDebugPrivilege, PreviousMode) )
return -1073741790;
v7 = &Kd_WIN2000_Mask;
if( (unsigned int)v5 >= 0x9C )
{
if( (_DWORD)v5 != -1 )
v7 = (int *)((char *)&stru_140CF2E80 + 6856);
}
else
{
_mm_lfence();
v7 = (int *)*(&KdComponentTable + v5);
}
if( v3 <= 0x1F )
v3 = 1 << v3;
*v7 = (State != 0 ? v3 : 0) | *v7 & ~v3;
return 0;
}Referenced by:
DbgSetDebugFilterState
MiInitializeLoadedModuleList