ObpDeleteDirectoryEntry

UINT8 __stdcall ObpDeleteDirectoryEntry(_OBP_LOOKUP_CONTEXT *LookupContext){
  _OBJECT_DIRECTORY_ENTRY **EntryLink; 
  _OBJECT_DIRECTORY *Directory; 
  _OBJECT_DIRECTORY_ENTRY *v3; 

  EntryLink = LookupContext->EntryLink;
  Directory = LookupContext->Directory;
  v3 = *EntryLink;
  *EntryLink = (*EntryLink)->ChainLink;
  v3->ChainLink = 0i64;
  *(_QWORD *)((char *)v3->Object - *((unsigned __int8 *)&dword_140C25D60 + (*((_BYTE *)v3->Object - 22) & 3)) - 48) = 0i64;
  HalPutDmaAdapter((PADAPTER_OBJECT)v3->Object);
  ExFreePoolWithTag(v3, 0);
  HalPutDmaAdapter((PADAPTER_OBJECT)Directory);
  return 1;
}

Referenced by:

ObCloseHandleTableEntry
ObpDeleteNameCheck
ObpInsertOrLocateNamedObject