WdipSemMarkInstanceForDeletion

INT64 *__fastcall WdipSemMarkInstanceForDeletion(_QWORD *a1){
  _ETHREAD *CurrentThread; 
  INT64 *v2; 
  __int64 *EnabledInstanceTable; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v2 = 0i64;
  --*((_WORD *)CurrentThread + 242);
  ExAcquirePushLockExclusiveEx((UINT64)&qword_140C1A3B8, 0i64);
  if( a1 )
  {
    EnabledInstanceTable = WdipSemQueryEnabledInstanceTable(a1);
    v2 = EnabledInstanceTable;
    if( EnabledInstanceTable )
    {
      if( *((_DWORD *)EnabledInstanceTable + 11) )
        v2 = 0i64;
      else
        *((_DWORD *)EnabledInstanceTable + 11) = 1;
    }
  }
  ExReleasePushLockEx((UINT64)&qword_140C1A3B8, 0i64);
  KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
  return v2;
}

Referenced by:

WdipSemDisableScenario