NtDeletePrivateNamespace

NTSTATUS __stdcall NtDeletePrivateNamespace(PVOID NamespaceHandle){
  NTSTATUS result; 
  _OBJECT_DIRECTORY *v2; 
  NTSTATUS v3; 
  PADAPTER_OBJECT DmaAdapter; 
  struct _OBJECT_HANDLE_INFORMATION v5; 
  v5 = 0i64;
  DmaAdapter = 0i64;
  result = ObReferenceObjectByHandle(
             NamespaceHandle,
             0x10000u,
             ObpDirectoryObjectType,
             *((_BYTE *)KeGetCurrentThread() + 562),
             (PVOID *)&DmaAdapter,
             &v5);
  if( result >= 0 )
  {
    v2 = (_OBJECT_DIRECTORY *)DmaAdapter;
    if( *(_QWORD *)&DmaAdapter[20].Version )
    {
      v3 = ObpVerifyCreatorAccessCheck(&DmaAdapter[24].DmaOperations);
      if( v3 >= 0 )
        v3 = ObpRemoveNamespaceFromTable(v2);
    }
    else
    {
      v3 = -1073741816;
    }
    HalPutDmaAdapter((PADAPTER_OBJECT)v2);
    return v3;
  }
  return result;
}

Referenced by:

No references.