EtwpAcquireTokenAccessInformation
INT64 __fastcall EtwpAcquireTokenAccessInformation(_WMI_LOGGER_CONTEXT *LoggerContext){
volatile INT64 *v1;
PVOID *v2;
struct _DMA_ADAPTER *v3;
unsigned int InformationToken;
v1 = (volatile INT64 *)((char *)LoggerContext + 704);
v2 = (PVOID *)((char *)LoggerContext + 792);
ExAcquirePushLockExclusiveEx((UINT64)LoggerContext + 704, 0i64);
if( *v2 )
{
ExFreePoolWithTag(*v2, 0);
*v2 = 0i64;
}
v3 = (struct _DMA_ADAPTER *)PsReferencePrimaryToken(*((PEPROCESS *)KeGetCurrentThread() + 23));
InformationToken = SeQueryInformationToken(v3, TokenAccessInformation, v2);
HalPutDmaAdapter(v3);
if( (_InterlockedExchangeAdd64(v1, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock(v1);
KeAbPostRelease((PVOID)v1);
return InformationToken;
}Referenced by:
EtwpEnableGuid