// <auto-generated/>
#nullable enable
using Microsoft.Diagnostics.DataContractReader;
using Microsoft.Diagnostics.DataContractReader.Contracts;
using Microsoft.Diagnostics.DataContractReader.Generated;
namespace Microsoft.Diagnostics.DataContractReader.Data;
/// <summary>Wraps the <c>PEAssembly</c> type.</summary>
partial class PEAssembly : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "PEAssembly" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("PEImage", "pointer")]
public static int GetPEImageOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "PEImage");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("AssemblyBinder", "pointer")]
public static int GetAssemblyBinderOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "AssemblyBinder");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("MDImportIsRW", "int32")]
public static int GetMDImportIsRWOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "MDImportIsRW");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("MDImport", "pointer")]
public static int GetMDImportOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "MDImport");
return type.Fields[name].Offset;
}
public TargetPointer Address { get; }
private readonly Target _target;
private readonly LayoutSet _layouts;
public PEAssembly(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
}
static PEAssembly IData<PEAssembly>.Create(Target target, TargetPointer address)
=> new PEAssembly(target, address);
private TargetPointer _PEImage__value = default!;
private bool _PEImage__read;
[DataDescriptorDependency("PEImage", "pointer")]
public partial TargetPointer PEImage
{
get
{
if (!_PEImage__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "PEImage");
_PEImage__value = _target.ReadPointerField(b, t, n);
_PEImage__read = true;
}
return _PEImage__value;
}
}
private TargetPointer _AssemblyBinder__value = default!;
private bool _AssemblyBinder__read;
[DataDescriptorDependency("AssemblyBinder", "pointer")]
public partial TargetPointer AssemblyBinder
{
get
{
if (!_AssemblyBinder__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "AssemblyBinder");
_AssemblyBinder__value = _target.ReadPointerField(b, t, n);
_AssemblyBinder__read = true;
}
return _AssemblyBinder__value;
}
}
private int _MDImportIsRW__value = default!;
private bool _MDImportIsRW__read;
[DataDescriptorDependency("MDImportIsRW", "int32")]
public partial int MDImportIsRW
{
get
{
if (!_MDImportIsRW__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "MDImportIsRW");
_MDImportIsRW__value = _target.ReadField<int>(b, t, n);
_MDImportIsRW__read = true;
}
return _MDImportIsRW__value;
}
}
private TargetPointer _MDImport__value = default!;
private bool _MDImport__read;
[DataDescriptorDependency("MDImport", "pointer")]
public partial TargetPointer MDImport
{
get
{
if (!_MDImport__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "MDImport");
_MDImport__value = _target.ReadPointerField(b, t, n);
_MDImport__read = true;
}
return _MDImport__value;
}
}
[DataDescriptorDependency("PEImage", "pointer")]
[DataDescriptorDependency("AssemblyBinder", "pointer")]
[DataDescriptorDependency("MDImportIsRW", "int32")]
[DataDescriptorDependency("MDImport", "pointer")]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = PEImage;
_ = AssemblyBinder;
_ = MDImportIsRW;
_ = MDImport;
}
}