typedef struct _LOADER_PARAMETER_BLOCK
{
    unsigned long OsMajorVersion;
    unsigned long OsMinorVersion;
    unsigned long Size;
    unsigned long Reserved;
    LIST_ENTRY LoadOrderListHead;
    LIST_ENTRY MemoryDescriptorListHead;
    LIST_ENTRY BootDriverListHead;
    unsigned __int64 KernelStack;
    unsigned __int64 Prcb;
    unsigned __int64 Process;
    unsigned __int64 Thread;
    unsigned long RegistryLength;
    void *RegistryBase;
    CONFIGURATION_COMPONENT_DATA *ConfigurationRoot;
    char *ArcBootDeviceName;
    char *ArcHalDeviceName;
    char *NtBootPathName;
    char *NtHalPathName;
    char *LoadOptions;
    NLS_DATA_BLOCK *NlsData;
    ARC_DISK_INFORMATION *ArcDiskInformation;
    void *OemFontFile;
    LOADER_PARAMETER_EXTENSION *Extension;
    union
    {
        I386_LOADER_BLOCK I386;
        IA64_LOADER_BLOCK Ia64;
    } u;
    FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation;
} LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;