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