VslpSkStopProfiling
INT64 __stdcall VslpSkStopProfiling(){
NTSTATUS v0;
__int64 v1;
_QWORD *v2;
__int64 v3;
unsigned __int8 CurrentIrql;
INT64 result[14];
memset((INT64)result, 0i64);
v0 = VslpEnterIumSecureMode(2u, 76, 0i64, (INT64)result);
if( v0 >= 0 )
{
VslpUnlockPagesForTransfer((INT64 **)&VslpProfilingTransfer);
memset((INT64)&VslpProfilingTransfer, 0i64);
KeCancelTimer((PKTIMER)VslpFlushTimer);
v1 = *((unsigned int *)VslpEventLog + 2);
v2 = (char *)VslpEventLog + 8 * v1 + 24;
if( (_DWORD)v1 )
{
v3 = -1 * v1;
do
{
*v2 = ~v2[v3];
++v2;
--v1;
}
while( v1 );
}
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
VslpFlushBufferArray();
__writecr8(CurrentIrql);
ExWaitForRundownProtectionRelease((EX_RUNDOWN_REF *)&VslpBufferFlushRundown);
if( VslpEventLog )
{
ExFreePoolWithTag(VslpEventLog, 0x54736D56u);
VslpEventLog = 0i64;
}
VslpLoggerId = 0i64;
}
else
{
KeCancelTimer((PKTIMER)VslpFlushTimer);
}
return(unsigned int)v0;
}Referenced by:
VslpEtwClassicCallback