PpReleaseBootDDB

NTSTATUS __stdcall PpReleaseBootDDB(){
  INT64 v0; 
  _ETHREAD *CurrentThread; 
  NTSTATUS v2; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireResourceExclusiveLite((UINT64)&PnpReplaceEvent + 5792, 1, v0);
  if( PpDDBHandle )
  {
    SdbReleaseDatabase(PpDDBHandle);
    PpDDBHandle = 0i64;
    ExFreePoolWithTag(PpBootDDB, 0);
    PpBootDDB = 0i64;
    v2 = 0;
  }
  else
  {
    v2 = -1073741823;
  }
  if( PpDDBPatchHandle )
  {
    SdbReleaseDatabase(PpDDBPatchHandle);
    PpDDBPatchHandle = 0i64;
    ExFreePoolWithTag(PpBootDDBPatch, 0);
    PpBootDDBPatch = 0i64;
  }
  ExReleaseResourceLite((PERESOURCE)((char *)&PnpReplaceEvent + 5792));
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  return v2;
}

Referenced by:

PnpCompleteSystemStartProcess