EtwpCovSampSafeForUserAddressCapture
NTSTATUS __stdcall EtwpCovSampSafeForUserAddressCapture(INT64 a1, BOOL *a2){
int v2;
unsigned __int8 CurrentIrql;
_ETHREAD *CurrentThread;
_BOOL4 v5;
int v6;
v2 = a1;
CurrentIrql = KeGetCurrentIrql();
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v5 = (CurrentThread->CrossThreadFlags & 1) != 0 || !CurrentThread->Tcb.Teb;
*(_DWORD *)a2 = v5;
if( CurrentIrql >= 2u )
return -1073741637;
if( KeGetCurrentThread()->WaitBlock[3].SpareLong )
return -1073741637;
MmCanThreadFault();
if( !v6 || CurrentThread->ActiveFaultCount && !v2 )
return -1073741637;
if( KeGetCurrentThread()->ApcStateIndex == 1 )
return -1073741637;
else
return 0;
}Referenced by:
EtwpCovSampCaptureApc
EtwpCovSampCaptureSample