EtwExitProcess

VOID __stdcall EtwExitProcess(_EPROCESS *Process){
  PADAPTER_OBJECT *EtwDataSource; 
  _ADAPTER_OBJECT *v3; 
  void *CoverageSamplerContext; 

  EtwDataSource = (PADAPTER_OBJECT *)Process->EtwDataSource;
  if( EtwDataSource )
  {
    Process->EtwDataSource = 0i64;
    if( *EtwDataSource )
      HalPutDmaAdapter(*EtwDataSource);
    v3 = EtwDataSource[1];
    if( v3 )
      HalPutDmaAdapter(v3);
    ExFreePoolWithTag(EtwDataSource, 0);
  }
  CoverageSamplerContext = Process->CoverageSamplerContext;
  if( CoverageSamplerContext )
  {
    Process->CoverageSamplerContext = 0i64;
    EtwpCovSampProcessCleanup((INT64)CoverageSamplerContext, 1);
    ExFreePoolWithTag(CoverageSamplerContext, 0x56777445u);
  }
}

Referenced by:

No references.