You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
395 lines
7.9 KiB
395 lines
7.9 KiB
|
|
#pragma warning(disable:4163)
|
|
|
|
#if !defined(_X86AMD64_)
|
|
#define _X86AMD64_
|
|
#endif
|
|
|
|
#include "bootx86.h"
|
|
|
|
#if defined(ROUND_UP)
|
|
#undef ROUND_UP
|
|
#endif
|
|
|
|
#include "cmp.h"
|
|
#include "..\amd64\amd64prv.h"
|
|
|
|
include(BASE_INC_PATH\bldrthnk.h)
|
|
|
|
SD(PHYSICAL_ADDRESS)
|
|
FD(QuadPart,ULONGLONG)
|
|
SE()
|
|
|
|
SD(PROFILE_PARAMETER_BLOCK)
|
|
FD(Status,USHORT)
|
|
FD(DockingState,USHORT)
|
|
FD(Capabilities,USHORT)
|
|
FD(DockID,ULONG)
|
|
FD(SerialNumber,ULONG)
|
|
SE()
|
|
|
|
SD(UNICODE_STRING)
|
|
FD(Length,USHORT)
|
|
FD(MaximumLength,USHORT)
|
|
FD(Buffer,PWSTR)
|
|
SE()
|
|
|
|
SD(LIST_ENTRY)
|
|
FD(Flink,PLIST_ENTRY)
|
|
FD(Blink,PLIST_ENTRY)
|
|
SE()
|
|
|
|
SD64(EPROCESS)
|
|
SE()
|
|
|
|
SD64(ETHREAD)
|
|
SE()
|
|
|
|
SD64(KTHREAD)
|
|
SE()
|
|
|
|
SD64(KPRCB)
|
|
SE()
|
|
|
|
SD64(KGDTENTRY64)
|
|
SE()
|
|
|
|
SD64(KIDTENTRY64)
|
|
SE()
|
|
|
|
SD64(KTSS64)
|
|
FD(Rsp0,ULONG64)
|
|
FD(Rsp1,ULONG64)
|
|
FD(Rsp2,ULONG64)
|
|
FD(Ist,ULONG64)
|
|
SE()
|
|
|
|
SD(MEMORY_ALLOCATION_DESCRIPTOR)
|
|
FD(ListEntry,LIST_ENTRY)
|
|
FD(MemoryType,TYPE_OF_MEMORY)
|
|
FD(BasePage,ULONG)
|
|
FD(PageCount,ULONG)
|
|
SE()
|
|
|
|
SD(LDR_DATA_TABLE_ENTRY)
|
|
FD(InLoadOrderLinks,LIST_ENTRY)
|
|
FD(InMemoryOrderLinks,LIST_ENTRY)
|
|
FD(InInitializationOrderLinks,LIST_ENTRY)
|
|
FD(DllBase,PVOID)
|
|
FD(EntryPoint,PVOID)
|
|
FD(SizeOfImage,ULONG)
|
|
FD(FullDllName,UNICODE_STRING)
|
|
FD(BaseDllName,UNICODE_STRING)
|
|
FD(Flags,ULONG)
|
|
FD(LoadCount,USHORT)
|
|
FD(TlsIndex,USHORT)
|
|
SE()
|
|
|
|
SD(BOOT_DRIVER_LIST_ENTRY)
|
|
FD(Link,LIST_ENTRY)
|
|
FD(FilePath,UNICODE_STRING)
|
|
FD(RegistryPath,UNICODE_STRING)
|
|
FD(LdrEntry,PLDR_DATA_TABLE_ENTRY)
|
|
SE()
|
|
|
|
SD(NLS_DATA_BLOCK)
|
|
FD(AnsiCodePageData,PVOID)
|
|
FD(OemCodePageData,PVOID)
|
|
FD(UnicodeCaseTableData,PVOID)
|
|
SE()
|
|
|
|
SD(CONFIGURATION_COMPONENT)
|
|
FD(Class,CONFIGURATION_CLASS)
|
|
FD(Type,CONFIGURATION_TYPE)
|
|
FD(Flags,ULONG)
|
|
FD(Version,USHORT)
|
|
FD(Revision,USHORT)
|
|
FD(Key,ULONG)
|
|
FD(AffinityMask,ULONG)
|
|
FD(ConfigurationDataLength,ULONG)
|
|
FD(IdentifierLength,ULONG)
|
|
FD(Identifier,PCHAR)
|
|
SE()
|
|
|
|
SD(CONFIGURATION_COMPONENT_DATA)
|
|
FD(Parent,PCONFIGURATION_COMPONENT_DATA)
|
|
FD(Child,PCONFIGURATION_COMPONENT_DATA)
|
|
FD(Sibling,PCONFIGURATION_COMPONENT_DATA)
|
|
FD(ComponentEntry,CONFIGURATION_COMPONENT)
|
|
FD(ConfigurationData,PVOID)
|
|
SE()
|
|
|
|
SD(BOOT_DRIVER_NODE)
|
|
FD(ListEntry,BOOT_DRIVER_LIST_ENTRY)
|
|
FD(Group,UNICODE_STRING)
|
|
FD(Name,UNICODE_STRING)
|
|
FD(Tag,ULONG)
|
|
FD(ErrorControl,ULONG)
|
|
SE()
|
|
|
|
SD(ARC_DISK_SIGNATURE)
|
|
FD(ListEntry,LIST_ENTRY)
|
|
FD(Signature,ULONG)
|
|
FDC(ArcName,PCHAR)
|
|
FD(CheckSum,ULONG)
|
|
FD(ValidPartitionTable,BOOLEAN)
|
|
FD(xInt13,BOOLEAN)
|
|
SE()
|
|
|
|
SD(ARC_DISK_INFORMATION)
|
|
FD(DiskSignatures,LIST_ENTRY)
|
|
SE()
|
|
|
|
SD(DETECTED_DEVICE_REGISTRY)
|
|
FD(Next,PDETECTED_DEVICE_REGISTRY)
|
|
FD(KeyName,PCHAR)
|
|
FD(ValueName,PCHAR)
|
|
FD(ValueType,ULONG)
|
|
FD(Buffer,PVOID)
|
|
FD(BufferSize,ULONG)
|
|
SE()
|
|
|
|
SD(DETECTED_DEVICE_FILE)
|
|
FD(Next,PDETECTED_DEVICE_FILE)
|
|
FD(Filename,PCHAR)
|
|
FD(FileType,HwFileType)
|
|
FD(ConfigName,PCHAR)
|
|
FD(RegistryValueList,PDETECTED_DEVICE_REGISTRY)
|
|
FD(DiskDescription,PCHAR)
|
|
FD(DiskTagfile,PCHAR)
|
|
FD(Directory,PCHAR)
|
|
SE()
|
|
|
|
SD(DETECTED_DEVICE)
|
|
FD(Next,PDETECTED_DEVICE)
|
|
FD(IdString,PCHAR)
|
|
FD(Ordinal,ULONG)
|
|
FD(Description,PCHAR)
|
|
FD(ThirdPartyOptionSelected,BOOLEAN)
|
|
FD(FileTypeBits,ULONG)
|
|
FD(Files,PDETECTED_DEVICE_FILE)
|
|
FD(BaseDllName,PCHAR)
|
|
FD(MigratedDriver,BOOLEAN)
|
|
SE()
|
|
|
|
SD(PNP_HARDWARE_ID)
|
|
FD(Next,PPNP_HARDWARE_ID)
|
|
FD(Id,PCHAR)
|
|
FD(DriverName,PCHAR)
|
|
FD(ClassGuid,PCHAR)
|
|
SE()
|
|
|
|
SD(SETUP_LOADER_BLOCK_SCALARS)
|
|
FD(SetupOperation,ULONG)
|
|
FD(AsULong,ULONG)
|
|
SE()
|
|
|
|
SD(SETUP_LOADER_BLOCK)
|
|
FD(ArcSetupDeviceName,PCHAR)
|
|
FD(VideoDevice,DETECTED_DEVICE)
|
|
FD(KeyboardDevices,PDETECTED_DEVICE)
|
|
FD(ComputerDevice,DETECTED_DEVICE)
|
|
FD(ScsiDevices,PDETECTED_DEVICE)
|
|
FD(ScalarValues,SETUP_LOADER_BLOCK_SCALARS)
|
|
FDC(IniFile,PCHAR)
|
|
FD(IniFileLength,ULONG)
|
|
FDC(WinntSifFile,PCHAR)
|
|
FD(WinntSifFileLength,ULONG)
|
|
FDC(MigrateInfFile,PCHAR)
|
|
FD(MigrateInfFileLength,ULONG)
|
|
FDC(UnsupDriversInfFile,PCHAR)
|
|
FD(UnsupDriversInfFileLength,ULONG)
|
|
FD(BootFontFile,PVOID)
|
|
FD(BootFontFileLength,ULONG)
|
|
FD(Monitor,PMONITOR_CONFIGURATION_DATA)
|
|
FD(MonitorId,PCHAR)
|
|
FD(BootBusExtenders,PDETECTED_DEVICE)
|
|
FD(BusExtenders,PDETECTED_DEVICE)
|
|
FD(InputDevicesSupport,PDETECTED_DEVICE)
|
|
FD(HardwareIdDatabase,PPNP_HARDWARE_ID)
|
|
FD(ComputerName,WCHAR)
|
|
FD(IpAddress,ULONG)
|
|
FD(SubnetMask,ULONG)
|
|
FD(ServerIpAddress,ULONG)
|
|
FD(DefaultRouter,ULONG)
|
|
FD(DnsNameServer,ULONG)
|
|
FD(NetbootCardHardwareId,WCHAR)
|
|
FD(NetbootCardDriverName,WCHAR)
|
|
FD(NetbootCardServiceName,WCHAR)
|
|
FDC(NetbootCardRegistry,PCHAR)
|
|
FD(NetbootCardRegistryLength,ULONG)
|
|
FDC(NetbootCardInfo,PCHAR)
|
|
FD(NetbootCardInfoLength,ULONG)
|
|
FD(Flags,ULONG)
|
|
FD(MachineDirectoryPath,PCHAR)
|
|
FD(NetBootSifPath,PCHAR)
|
|
FD(NetBootSecret,PVOID)
|
|
FD(NetBootIMirrorFilePath,WCHAR)
|
|
FDC(ASRPnPSifFile,PCHAR)
|
|
FD(ASRPnPSifFileLength,ULONG)
|
|
FD(NetBootAdministratorPassword,WCHAR)
|
|
SE()
|
|
|
|
SD(I386_LOADER_BLOCK)
|
|
FD(CommonDataArea,PVOID)
|
|
FD(MachineType,ULONG)
|
|
FD(VirtualBias,ULONG)
|
|
SE()
|
|
|
|
SD(LOADER_PARAMETER_EXTENSION)
|
|
FD(Size,ULONG)
|
|
FD(Profile,PROFILE_PARAMETER_BLOCK)
|
|
FD(MajorVersion,ULONG)
|
|
FD(MinorVersion,ULONG)
|
|
FD(InfFileImage,PVOID)
|
|
FD(InfFileSize,ULONG)
|
|
FD(TriageDumpBlock,PVOID)
|
|
FD(LoaderPagesSpanned,ULONG)
|
|
FD(HeadlessLoaderBlock,PHEADLESS_LOADER_BLOCK)
|
|
FD(SMBiosEPSHeader,PVOID)
|
|
FD(DrvDBImage,PVOID)
|
|
FD(DrvDBSize,ULONG)
|
|
FD(FirmwareDescriptorListHead,LIST_ENTRY)
|
|
SE()
|
|
|
|
SD(LOADER_PARAMETER_BLOCK)
|
|
FD(LoadOrderListHead,LIST_ENTRY)
|
|
FD(MemoryDescriptorListHead,LIST_ENTRY)
|
|
FD(BootDriverListHead,LIST_ENTRY)
|
|
FD(KernelStack,ULONG_PTR)
|
|
FD(Prcb,ULONG_PTR)
|
|
FD(Process,ULONG_PTR)
|
|
FD(Thread,ULONG_PTR)
|
|
FD(RegistryLength,ULONG)
|
|
FDC(RegistryBase,PVOID)
|
|
FD(ConfigurationRoot,PCONFIGURATION_COMPONENT_DATA)
|
|
FDC(ArcBootDeviceName,PCHAR)
|
|
FDC(ArcHalDeviceName,PCHAR)
|
|
FDC(NtBootPathName,PCHAR)
|
|
FDC(NtHalPathName,PCHAR)
|
|
FDC(LoadOptions,PCHAR)
|
|
FD(NlsData,PNLS_DATA_BLOCK)
|
|
FD(ArcDiskInformation,PARC_DISK_INFORMATION)
|
|
FDC(OemFontFile,PVOID)
|
|
FD(SetupLoaderBlock,PSETUP_LOADER_BLOCK)
|
|
FD(Extension,PLOADER_PARAMETER_EXTENSION)
|
|
SE()
|
|
|
|
SD(CM_PRD_GENERIC)
|
|
FD(Start,PHYSICAL_ADDRESS)
|
|
FD(Length,ULONG)
|
|
SE()
|
|
|
|
SD(CM_PRD_PORT)
|
|
FD(Start,PHYSICAL_ADDRESS)
|
|
FD(Length,ULONG)
|
|
SE()
|
|
|
|
SD(CM_PRD_INTERRUPT)
|
|
FD(Level,ULONG)
|
|
FD(Vector,ULONG)
|
|
FD(Affinity,KAFFINITY)
|
|
SE()
|
|
|
|
SD(CM_PRD_MEMORY)
|
|
FD(Start,PHYSICAL_ADDRESS)
|
|
FD(Length,ULONG)
|
|
SE()
|
|
|
|
SD(CM_PRD_DMA)
|
|
FD(Channel,ULONG)
|
|
FD(Port,ULONG)
|
|
SE()
|
|
|
|
SD(CM_PRD_DEVICEPRIVATE)
|
|
FD(Data,ULONG)
|
|
SE()
|
|
|
|
SD(CM_PRD_BUSNUMBER)
|
|
FD(Start,ULONG)
|
|
FD(Length,ULONG)
|
|
FD(Reserved,ULONG)
|
|
SE()
|
|
|
|
SD(CM_PRD_DEVICESPECIFICDATA)
|
|
FD(DataSize,ULONG)
|
|
FD(Reserved1,ULONG)
|
|
FD(Reserved2,ULONG)
|
|
SE()
|
|
|
|
SD(CM_PARTIAL_RESOURCE_DESCRIPTOR)
|
|
FD(Type,UCHAR)
|
|
FD(ShareDisposition,UCHAR)
|
|
FD(Flags,USHORT)
|
|
FD(u,CM_PRD_INTERRUPT)
|
|
SE()
|
|
|
|
SD(CM_PARTIAL_RESOURCE_LIST)
|
|
FD(Version,USHORT)
|
|
FD(Revision,USHORT)
|
|
FD(Count,ULONG)
|
|
FD(PartialDescriptors,CM_PARTIAL_RESOURCE_DESCRIPTOR)
|
|
SE()
|
|
|
|
SD(LARGE_INTEGER)
|
|
FD(LowPart,ULONG)
|
|
FD(HighPart,LONG)
|
|
SE()
|
|
|
|
SD(PO_HIBER_PERF)
|
|
FD(IoTicks,ULONGLONG)
|
|
FD(InitTicks,ULONGLONG)
|
|
FD(CopyTicks,ULONGLONG)
|
|
FD(StartCount,ULONGLONG)
|
|
FD(ElapsedTime,ULONG)
|
|
FD(IoTime,ULONG)
|
|
FD(CopyTime,ULONG)
|
|
FD(InitTime,ULONG)
|
|
FD(PagesWritten,ULONG)
|
|
FD(PagesProcessed,ULONG)
|
|
FD(BytesCopied,ULONG)
|
|
FD(DumpCount,ULONG)
|
|
FD(FileRuns,ULONG)
|
|
SE()
|
|
|
|
SD(PO_MEMORY_IMAGE)
|
|
FD(Signature, ULONG)
|
|
FD(Version, ULONG)
|
|
FD(CheckSum, ULONG)
|
|
FD(LengthSelf, ULONG)
|
|
FD(PageSelf, PFN_NUMBER)
|
|
FD(PageSize, ULONG)
|
|
FD(ImageType, ULONG)
|
|
FD(SystemTime, LARGE_INTEGER)
|
|
FD(InterruptTime, ULONGLONG)
|
|
FD(FeatureFlags, ULONG)
|
|
FD(HiberFlags, UCHAR)
|
|
FD(spare, UCHAR)
|
|
FD(NoHiberPtes, ULONG)
|
|
FD(HiberVa, ULONG_PTR)
|
|
FD(HiberPte, PHYSICAL_ADDRESS)
|
|
FD(NoFreePages, ULONG)
|
|
FD(FreeMapCheck, ULONG)
|
|
FD(WakeCheck, ULONG)
|
|
FD(TotalPages, PFN_NUMBER)
|
|
FD(FirstTablePage, PFN_NUMBER)
|
|
FD(LastFilePage, PFN_NUMBER)
|
|
FD(PerfInfo, PO_HIBER_PERF)
|
|
SE()
|
|
|
|
SD(PO_MEMORY_RANGE_ARRAY_RANGE)
|
|
FD(PageNo, PFN_NUMBER)
|
|
FD(StartPage, PFN_NUMBER)
|
|
FD(EndPage, PFN_NUMBER)
|
|
FD(CheckSum, ULONG)
|
|
SE()
|
|
|
|
SD(PO_MEMORY_RANGE_ARRAY_LINK)
|
|
FD(Next, PPO_MEMORY_RANGE_ARRAY);
|
|
FD(NextTable, PFN_NUMBER)
|
|
FD(CheckSum, ULONG)
|
|
FD(EntryCount, ULONG)
|
|
SE()
|
|
|
|
DD()
|
|
|