diff --git a/SabreTools.Serialization/Models/PortableExecutable/Resource/DirectoryEntry.cs b/SabreTools.Serialization/Models/PortableExecutable/Resource/DirectoryEntry.cs
index 1e3f416a..e3251e40 100644
--- a/SabreTools.Serialization/Models/PortableExecutable/Resource/DirectoryEntry.cs
+++ b/SabreTools.Serialization/Models/PortableExecutable/Resource/DirectoryEntry.cs
@@ -26,17 +26,20 @@
/// The offset of a string that gives the Type, Name, or Language ID entry,
/// depending on level of table.
///
+ /// Must be unset if is set
public uint NameOffset { get; set; }
///
/// A string that gives the Type, Name, or Language ID entry, depending on
/// level of table.
///
+ /// Only has a value if is set
public DirectoryString? Name { get; set; }
///
/// A 32-bit integer that identifies the Type, Name, or Language ID entry.
///
+ /// Must be unset if is set
public uint IntegerID { get; set; }
#endregion
@@ -46,24 +49,28 @@
///
/// High bit 0. Address of a Resource Data entry (a leaf).
///
+ /// Must be unset if is set
public uint DataEntryOffset { get; set; }
- ///
- /// Resource data entry (a leaf).
- ///
- public DataEntry? DataEntry { get; set; }
-
///
/// High bit 1. The lower 31 bits are the address of another resource
/// directory table (the next level down).
///
+ /// Must be unset if is set
public uint SubdirectoryOffset { get; set; }
+ #endregion
+
+ ///
+ /// Resource data entry (a leaf).
+ ///
+ /// Must be null if is set
+ public DataEntry? DataEntry { get; set; }
+
///
/// Another resource directory table (the next level down).
///
+ /// Must be null if is set
public DirectoryTable? Subdirectory { get; set; }
-
- #endregion
}
}