Files
git.stella-ops.org/src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.OS.Windows.WinSxS/WinSxSAssemblyMetadata.cs
StellaOps Bot d040c001ac
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
up
2025-11-28 19:23:54 +02:00

61 lines
1.9 KiB
C#

namespace StellaOps.Scanner.Analyzers.OS.Windows.WinSxS;
/// <summary>
/// Represents metadata extracted from a Windows Side-by-Side (WinSxS) assembly manifest.
/// </summary>
internal sealed record WinSxSAssemblyMetadata(
/// <summary>Assembly name (e.g., "Microsoft.Windows.Common-Controls").</summary>
string Name,
/// <summary>Assembly version (e.g., "6.0.0.0").</summary>
string Version,
/// <summary>Processor architecture (e.g., "x86", "amd64", "arm64", "msil", "wow64").</summary>
string ProcessorArchitecture,
/// <summary>Public key token (e.g., "6595b64144ccf1df").</summary>
string? PublicKeyToken,
/// <summary>Language/culture (e.g., "en-us", "*", or empty).</summary>
string? Language,
/// <summary>Assembly type (e.g., "win32", "win32-policy").</summary>
string? Type,
/// <summary>Version scope (e.g., "nonSxS" for non-side-by-side assemblies).</summary>
string? VersionScope,
/// <summary>Manifest file path.</summary>
string ManifestPath,
/// <summary>Associated catalog (.cat) file path if found.</summary>
string? CatalogPath,
/// <summary>Catalog signature thumbprint if available.</summary>
string? CatalogThumbprint,
/// <summary>KB reference from patch manifest if available.</summary>
string? KbReference,
/// <summary>Files declared in the assembly manifest.</summary>
IReadOnlyList<WinSxSFileEntry> Files);
/// <summary>
/// Represents a file entry in a WinSxS assembly manifest.
/// </summary>
internal sealed record WinSxSFileEntry(
/// <summary>File name.</summary>
string Name,
/// <summary>File hash algorithm (e.g., "SHA256").</summary>
string? HashAlgorithm,
/// <summary>File hash value.</summary>
string? Hash,
/// <summary>File size in bytes.</summary>
long? Size,
/// <summary>Destination path within the assembly.</summary>
string? DestinationPath);