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