ExWnfCleanupServerSiloState

VOID __stdcall ExWnfCleanupServerSiloState(_WNF_SILODRIVERSTATE *SiloState){
  _ETHREAD *CurrentThread; 

  if( SiloState->ScopeMap )
  {
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    --CurrentThread->Tcb.KernelApcDisable;
    ExpWnfDeleteScopeInstances(SiloState->ScopeMap, WnfDataScopeUser);
    ExpWnfDeleteScopeInstances(SiloState->ScopeMap, WnfDataScopeSystem);
    ExFreePoolWithTag(SiloState->ScopeMap, 0x20666E57u);
    KeLeaveCriticalRegionThread(KeGetCurrentThread());
  }
  if( SiloState->PermanentNameStoreRootKey )
    ZwClose((_HANDLE)SiloState->PermanentNameStoreRootKey);
  if( SiloState->PersistentNameStoreRootKey )
    ZwClose((_HANDLE)SiloState->PersistentNameStoreRootKey);
}

Referenced by:

PspDeleteServerSiloGlobals