Files
SabreTools.Models/PortableExecutable/RSDSProgramDatabase.cs

42 lines
1.2 KiB
C#
Raw Normal View History

2023-09-04 00:11:04 -04:00
using System;
2024-04-23 16:42:29 -04:00
using System.Runtime.InteropServices;
2023-09-04 00:11:04 -04:00
2023-09-04 00:12:49 -04:00
namespace SabreTools.Models.PortableExecutable
2023-09-04 00:11:04 -04:00
{
/// <summary>
/// This file describes the format of the pdb (Program Database) files of the "RSDS"
/// or "DS" type which are emitted by Miscrosoft's link.exe from version 7 and above.
/// </summary>
/// <see href="http://www.godevtool.com/Other/pdb.htm"/>
2024-04-23 16:42:29 -04:00
[StructLayout(LayoutKind.Sequential)]
2023-09-04 00:11:04 -04:00
public sealed class RSDSProgramDatabase
{
/// <summary>
/// "RSDS" signature
/// </summary>
2024-04-23 16:42:29 -04:00
public uint Signature;
2023-09-04 00:11:04 -04:00
/// <summary>
/// 16-byte Globally Unique Identifier
/// </summary>
2024-04-23 16:42:29 -04:00
public Guid GUID;
2023-09-04 00:11:04 -04:00
/// <summary>
/// Ever-incrementing value, which is initially set to 1 and
/// incremented every time when a part of the PDB file is updated
/// without rewriting the whole file.
/// </summary>
2024-04-23 16:42:29 -04:00
public uint Age;
2023-09-04 00:11:04 -04:00
/// <summary>
/// zero terminated UTF8 path and file name
/// </summary>
2024-05-07 05:28:46 -04:00
#if NET472_OR_GREATER || NETCOREAPP
[MarshalAs(UnmanagedType.LPUTF8Str)]
#else
[MarshalAs(UnmanagedType.LPStr)]
#endif
2024-04-23 16:42:29 -04:00
public string? PathAndFileName;
2023-09-04 00:11:04 -04:00
}
}