NT kernel structures(xp_sp3) xp sp3未文档化结构体

来源:互联网 发布:韩国身份证汉字 知乎 编辑:程序博客网 时间:2024/05/23 19:13
The following source code can be very useful when you are debuging kernel & user objects under either ring0 or ring3 within Windows XP sp3. (note: you'd better verify it usingdt -b !ntXXX within windbg)
To use it, please copy the following code to a header file, name it as you wish and include it in your source.
Here is a sample:
inline ntsp3::PTEB GetTEB(){ __asm mov eax, fs:[0x18]  /* or return (ntsp3::PTEB)__readfsdword( 0x18 ); */}



#include <windows.h>
namespace ntsp3
{
    typedef double FLOAT64;
    typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE {
        StandardDesign  = 0 /*0x0*/,
        NEC98x86        = 1 /*0x1*/,
        EndAlternatives = 2 /*0x2*/
    }ALTERNATIVE_ARCHITECTURE_TYPE, *PALTERNATIVE_ARCHITECTURE_TYPE;
    typedef enum _ARBITER_ACTION {
        ArbiterActionTestAllocation          = 0 /*0x0*/,
        ArbiterActionRetestAllocation        = 1 /*0x1*/,
        ArbiterActionCommitAllocation        = 2 /*0x2*/,
        ArbiterActionRollbackAllocation      = 3 /*0x3*/,
        ArbiterActionQueryAllocatedResources = 4 /*0x4*/,
        ArbiterActionWriteReservedResources  = 5 /*0x5*/,
        ArbiterActionQueryConflict           = 6 /*0x6*/,
        ArbiterActionQueryArbitrate          = 7 /*0x7*/,
        ArbiterActionAddReserved             = 8 /*0x8*/,
        ArbiterActionBootAllocation          = 9 /*0x9*/
    }ARBITER_ACTION, *PARBITER_ACTION;
    typedef enum _ARBITER_REQUEST_SOURCE {
        ArbiterRequestUndefined      = -1 /*0xFF*/,
        ArbiterRequestLegacyReported = 0 /*0x0*/,
        ArbiterRequestHalReported    = 1 /*0x1*/,
        ArbiterRequestLegacyAssigned = 2 /*0x2*/,
        ArbiterRequestPnpDetected    = 3 /*0x3*/,
        ArbiterRequestPnpEnumerated  = 4 /*0x4*/
    }ARBITER_REQUEST_SOURCE, *PARBITER_REQUEST_SOURCE;
    typedef enum _ARBITER_RESULT {
        ArbiterResultUndefined        = -1 /*0xFF*/,
        ArbiterResultSuccess          = 0 /*0x0*/,
        ArbiterResultExternalConflict = 1 /*0x1*/,
        ArbiterResultNullRequest      = 2 /*0x2*/
    }ARBITER_RESULT, *PARBITER_RESULT;
    typedef enum _BUS_DATA_TYPE {
        ConfigurationSpaceUndefined = -1 /*0xFF*/,
        Cmos                        = 0 /*0x0*/,
        EisaConfiguration           = 1 /*0x1*/,
        Pos                         = 2 /*0x2*/,
        CbusConfiguration           = 3 /*0x3*/,
        PCIConfiguration            = 4 /*0x4*/,
        VMEConfiguration            = 5 /*0x5*/,
        NuBusConfiguration          = 6 /*0x6*/,
        PCMCIAConfiguration         = 7 /*0x7*/,
        MPIConfiguration            = 8 /*0x8*/,
        MPSAConfiguration           = 9 /*0x9*/,
        PNPISAConfiguration         = 10 /*0xA*/,
        SgiInternalConfiguration    = 11 /*0xB*/,
        MaximumBusDataType          = 12 /*0xC*/
    }BUS_DATA_TYPE, *PBUS_DATA_TYPE;
    typedef enum _BUS_QUERY_ID_TYPE {
        BusQueryDeviceID           = 0 /*0x0*/,
        BusQueryHardwareIDs        = 1 /*0x1*/,
        BusQueryCompatibleIDs      = 2 /*0x2*/,
        BusQueryInstanceID         = 3 /*0x3*/,
        BusQueryDeviceSerialNumber = 4 /*0x4*/
    }BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE;
    typedef enum _CPU_VENDORS {
        CPU_NONE      = 0 /*0x0*/,
        CPU_INTEL     = 1 /*0x1*/,
        CPU_AMD       = 2 /*0x2*/,
        CPU_CYRIX     = 3 /*0x3*/,
        CPU_TRANSMETA = 4 /*0x4*/,
        CPU_CENTAUR   = 5 /*0x5*/,
        CPU_RISE      = 6 /*0x6*/,
        CPU_UNKNOWN   = 7 /*0x7*/
    }CPU_VENDORS, *PCPU_VENDORS;
    typedef enum _DEVICE_POWER_STATE {
        PowerDeviceUnspecified = 0 /*0x0*/,
        PowerDeviceD0          = 1 /*0x1*/,
        PowerDeviceD1          = 2 /*0x2*/,
        PowerDeviceD2          = 3 /*0x3*/,
        PowerDeviceD3          = 4 /*0x4*/,
        PowerDeviceMaximum     = 5 /*0x5*/
    }DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
    typedef enum _DEVICE_RELATION_TYPE {
        BusRelations         = 0 /*0x0*/,
        EjectionRelations    = 1 /*0x1*/,
        PowerRelations       = 2 /*0x2*/,
        RemovalRelations     = 3 /*0x3*/,
        TargetDeviceRelation = 4 /*0x4*/,
        SingleBusRelations   = 5 /*0x5*/
    }DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE;
    typedef enum _DEVICE_TEXT_TYPE {
        DeviceTextDescription         = 0 /*0x0*/,
        DeviceTextLocationInformation = 1 /*0x1*/
    }DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
    typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
        DeviceUsageTypeUndefined   = 0 /*0x0*/,
        DeviceUsageTypePaging      = 1 /*0x1*/,
        DeviceUsageTypeHibernation = 2 /*0x2*/,
        DeviceUsageTypeDumpFile    = 3 /*0x3*/
    }DEVICE_USAGE_NOTIFICATION_TYPE, *PDEVICE_USAGE_NOTIFICATION_TYPE;
    typedef enum _EXCEPTION_DISPOSITION {
        ExceptionContinueExecution = 0 /*0x0*/,
        ExceptionContinueSearch    = 1 /*0x1*/,
        ExceptionNestedException   = 2 /*0x2*/,
        ExceptionCollidedUnwind    = 3 /*0x3*/
    }EXCEPTION_DISPOSITION, *PEXCEPTION_DISPOSITION;
    typedef enum _FILE_INFORMATION_CLASS {
        FileDirectoryInformation       = 1 /*0x1*/,
        FileFullDirectoryInformation   = 2 /*0x2*/,
        FileBothDirectoryInformation   = 3 /*0x3*/,
        FileBasicInformation           = 4 /*0x4*/,
        FileStandardInformation        = 5 /*0x5*/,
        FileInternalInformation        = 6 /*0x6*/,
        FileEaInformation              = 7 /*0x7*/,
        FileAccessInformation          = 8 /*0x8*/,
        FileNameInformation            = 9 /*0x9*/,
        FileRenameInformation          = 10 /*0xA*/,
        FileLinkInformation            = 11 /*0xB*/,
        FileNamesInformation           = 12 /*0xC*/,
        FileDispositionInformation     = 13 /*0xD*/,
        FilePositionInformation        = 14 /*0xE*/,
        FileFullEaInformation          = 15 /*0xF*/,
        FileModeInformation            = 16 /*0x10*/,
        FileAlignmentInformation       = 17 /*0x11*/,
        FileAllInformation             = 18 /*0x12*/,
        FileAllocationInformation      = 19 /*0x13*/,
        FileEndOfFileInformation       = 20 /*0x14*/,
        FileAlternateNameInformation   = 21 /*0x15*/,
        FileStreamInformation          = 22 /*0x16*/,
        FilePipeInformation            = 23 /*0x17*/,
        FilePipeLocalInformation       = 24 /*0x18*/,
        FilePipeRemoteInformation      = 25 /*0x19*/,
        FileMailslotQueryInformation   = 26 /*0x1A*/,
        FileMailslotSetInformation     = 27 /*0x1B*/,
        FileCompressionInformation     = 28 /*0x1C*/,
        FileObjectIdInformation        = 29 /*0x1D*/,
        FileCompletionInformation      = 30 /*0x1E*/,
        FileMoveClusterInformation     = 31 /*0x1F*/,
        FileQuotaInformation           = 32 /*0x20*/,
        FileReparsePointInformation    = 33 /*0x21*/,
        FileNetworkOpenInformation     = 34 /*0x22*/,
        FileAttributeTagInformation    = 35 /*0x23*/,
        FileTrackingInformation        = 36 /*0x24*/,
        FileIdBothDirectoryInformation = 37 /*0x25*/,
        FileIdFullDirectoryInformation = 38 /*0x26*/,
        FileValidDataLengthInformation = 39 /*0x27*/,
        FileShortNameInformation       = 40 /*0x28*/,
        FileMaximumInformation         = 41 /*0x29*/
    }FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
    typedef enum _FSINFOCLASS {
        FileFsVolumeInformation     = 1 /*0x1*/,
        FileFsLabelInformation      = 2 /*0x2*/,
        FileFsSizeInformation       = 3 /*0x3*/,
        FileFsDeviceInformation     = 4 /*0x4*/,
        FileFsAttributeInformation  = 5 /*0x5*/,
        FileFsControlInformation    = 6 /*0x6*/,
        FileFsFullSizeInformation   = 7 /*0x7*/,
        FileFsObjectIdInformation   = 8 /*0x8*/,
        FileFsDriverPathInformation = 9 /*0x9*/,
        FileFsMaximumInformation    = 10 /*0xA*/
    }FSINFOCLASS, *PFSINFOCLASS;
    typedef enum _FS_FILTER_SECTION_SYNC_TYPE {
        SyncTypeOther         = 0 /*0x0*/,
        SyncTypeCreateSection = 1 /*0x1*/
    }FS_FILTER_SECTION_SYNC_TYPE, *PFS_FILTER_SECTION_SYNC_TYPE;
    typedef enum _INTERFACE_TYPE {
        InterfaceTypeUndefined = -1 /*0xFF*/,
        Internal               = 0 /*0x0*/,
        Isa                    = 1 /*0x1*/,
        Eisa                   = 2 /*0x2*/,
        MicroChannel           = 3 /*0x3*/,
        TurboChannel           = 4 /*0x4*/,
        PCIBus                 = 5 /*0x5*/,
        VMEBus                 = 6 /*0x6*/,
        NuBus                  = 7 /*0x7*/,
        PCMCIABus              = 8 /*0x8*/,
        CBus                   = 9 /*0x9*/,
        MPIBus                 = 10 /*0xA*/,
        MPSABus                = 11 /*0xB*/,
        ProcessorInternal      = 12 /*0xC*/,
        InternalPowerBus       = 13 /*0xD*/,
        PNPISABus              = 14 /*0xE*/,
        PNPBus                 = 15 /*0xF*/,
        MaximumInterfaceType   = 16 /*0x10*/
    }INTERFACE_TYPE, *PINTERFACE_TYPE;
    typedef enum _IO_ALLOCATION_ACTION {
        KeepObject                    = 1 /*0x1*/,
        DeallocateObject              = 2 /*0x2*/,
        DeallocateObjectKeepRegisters = 3 /*0x3*/
    }IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
    typedef enum _KINTERRUPT_MODE {
        LevelSensitive = 0 /*0x0*/,
        Latched        = 1 /*0x1*/
    }KINTERRUPT_MODE, *PKINTERRUPT_MODE;
    typedef enum _KWAIT_REASON {
        Executive         = 0 /*0x0*/,
        FreePage          = 1 /*0x1*/,
        PageIn            = 2 /*0x2*/,
        PoolAllocation    = 3 /*0x3*/,
        DelayExecution    = 4 /*0x4*/,
        Suspended         = 5 /*0x5*/,
        UserRequest       = 6 /*0x6*/,
        WrExecutive       = 7 /*0x7*/,
        WrFreePage        = 8 /*0x8*/,
        WrPageIn          = 9 /*0x9*/,
        WrPoolAllocation  = 10 /*0xA*/,
        WrDelayExecution  = 11 /*0xB*/,
        WrSuspended       = 12 /*0xC*/,
        WrUserRequest     = 13 /*0xD*/,
        WrEventPair       = 14 /*0xE*/,
        WrQueue           = 15 /*0xF*/,
        WrLpcReceive      = 16 /*0x10*/,
        WrLpcReply        = 17 /*0x11*/,
        WrVirtualMemory   = 18 /*0x12*/,
        WrPageOut         = 19 /*0x13*/,
        WrRendezvous      = 20 /*0x14*/,
        Spare2            = 21 /*0x15*/,
        Spare3            = 22 /*0x16*/,
        Spare4            = 23 /*0x17*/,
        Spare5            = 24 /*0x18*/,
        Spare6            = 25 /*0x19*/,
        WrKernel          = 26 /*0x1A*/,
        MaximumWaitReason = 27 /*0x1B*/
    }KWAIT_REASON, *PKWAIT_REASON;
    typedef enum _LSA_FOREST_TRUST_RECORD_TYPE {
        ForestTrustTopLevelName   = 0 /*0x0*/,
        ForestTrustTopLevelNameEx = 1 /*0x1*/,
        ForestTrustDomainInfo     = 2 /*0x2*/,
        ForestTrustRecordTypeLast = 2 /*0x2*/
    }LSA_FOREST_TRUST_RECORD_TYPE, *PLSA_FOREST_TRUST_RECORD_TYPE;
    typedef enum _MEMORY_CACHING_TYPE {
        MmNonCached              = 0 /*0x0*/,
        MmCached                 = 1 /*0x1*/,
        MmWriteCombined          = 2 /*0x2*/,
        MmHardwareCoherentCached = 3 /*0x3*/,
        MmNonCachedUnordered     = 4 /*0x4*/,
        MmUSWCCached             = 5 /*0x5*/,
        MmMaximumCacheType       = 6 /*0x6*/
    }MEMORY_CACHING_TYPE, *PMEMORY_CACHING_TYPE;
    typedef enum _MEMORY_CACHING_TYPE_ORIG {
        MmFrameBufferCached = 2 /*0x2*/
    }MEMORY_CACHING_TYPE_ORIG, *PMEMORY_CACHING_TYPE_ORIG;
    typedef enum _MEMORY_TYPE {
        MemoryExceptionBlock    = 0 /*0x0*/,
        MemorySystemBlock       = 1 /*0x1*/,
        MemoryFree              = 2 /*0x2*/,
        MemoryBad               = 3 /*0x3*/,
        MemoryLoadedProgram     = 4 /*0x4*/,
        MemoryFirmwareTemporary = 5 /*0x5*/,
        MemoryFirmwarePermanent = 6 /*0x6*/,
        MemoryFreeContiguous    = 7 /*0x7*/,
        MemorySpecialMemory     = 8 /*0x8*/,
        MemoryMaximum           = 9 /*0x9*/
    }MEMORY_TYPE, *PMEMORY_TYPE;
    typedef enum _MI_PFN_CACHE_ATTRIBUTE {
        MiNonCached     = 0 /*0x0*/,
        MiCached        = 1 /*0x1*/,
        MiWriteCombined = 2 /*0x2*/,
        MiNotMapped     = 3 /*0x3*/
    }MI_PFN_CACHE_ATTRIBUTE, *PMI_PFN_CACHE_ATTRIBUTE;
    typedef enum _MMLISTS {
        ZeroedPageList          = 0 /*0x0*/,
        FreePageList            = 1 /*0x1*/,
        StandbyPageList         = 2 /*0x2*/,
        ModifiedPageList        = 3 /*0x3*/,
        ModifiedNoWritePageList = 4 /*0x4*/,
        BadPageList             = 5 /*0x5*/,
        ActiveAndValid          = 6 /*0x6*/,
        TransitionPage          = 7 /*0x7*/
    }MMLISTS, *PMMLISTS;
    typedef enum _MMSYSTEM_PTE_POOL_TYPE {
        SystemPteSpace        = 0 /*0x0*/,
        NonPagedPoolExpansion = 1 /*0x1*/,
        MaximumPtePoolTypes   = 2 /*0x2*/
    }MMSYSTEM_PTE_POOL_TYPE, *PMMSYSTEM_PTE_POOL_TYPE;
    typedef enum _MODE {
        KernelMode  = 0 /*0x0*/,
        UserMode    = 1 /*0x1*/,
        MaximumMode = 2 /*0x2*/
    }MODE, *PMODE;
    typedef enum _NT_PRODUCT_TYPE {
        NtProductWinNt    = 1 /*0x1*/,
        NtProductLanManNt = 2 /*0x2*/,
        NtProductServer   = 3 /*0x3*/
    }NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
    typedef enum _OB_OPEN_REASON {
        ObCreateHandle    = 0 /*0x0*/,
        ObOpenHandle      = 1 /*0x1*/,
        ObDuplicateHandle = 2 /*0x2*/,
        ObInheritHandle   = 3 /*0x3*/,
        ObMaxOpenReason   = 4 /*0x4*/
    }OB_OPEN_REASON, *POB_OPEN_REASON;
    typedef enum _PCI_DISPATCH_STYLE {
        IRP_COMPLETE = 0 /*0x0*/,
        IRP_DOWNWARD = 1 /*0x1*/,
        IRP_UPWARD   = 2 /*0x2*/,
        IRP_DISPATCH = 3 /*0x3*/
    }PCI_DISPATCH_STYLE, *PPCI_DISPATCH_STYLE;
    typedef enum _PCI_SIGNATURE {
        PciPdoExtensionType                = 1768116272 /*0x69635030*/  /*0Pci*/,
        PciFdoExtensionType                = 1768116273 /*0x69635031*/  /*1Pci*/,
        PciArb_Io                          = 1768116274 /*0x69635032*/  /*2Pci*/,
        PciArb_Memory                      = 1768116275 /*0x69635033*/  /*3Pci*/,
        PciArb_Interrupt                   = 1768116276 /*0x69635034*/  /*4Pci*/,
        PciArb_BusNumber                   = 1768116277 /*0x69635035*/  /*5Pci*/,
        PciTrans_Interrupt                 = 1768116278 /*0x69635036*/  /*6Pci*/,
        PciInterface_BusHandler            = 1768116279 /*0x69635037*/  /*7Pci*/,
        PciInterface_IntRouteHandler       = 1768116280 /*0x69635038*/  /*8Pci*/,
        PciInterface_PciCb                 = 1768116281 /*0x69635039*/  /*9Pci*/,
        PciInterface_LegacyDeviceDetection = 1768116282 /*0x6963503A*/,
        PciInterface_PmeHandler            = 1768116283 /*0x6963503B*/,
        PciInterface_DevicePresent         = 1768116284 /*0x6963503C*/,
        PciInterface_NativeIde             = 1768116285 /*0x6963503D*/,
        PciInterface_AgpTarget             = 1768116286 /*0x6963503E*/
    }PCI_SIGNATURE, *PPCI_SIGNATURE;
    typedef enum _PF_SCENARIO_TYPE {
        PfApplicationLaunchScenarioType = 0 /*0x0*/,
        PfSystemBootScenarioType        = 1 /*0x1*/,
        PfMaxScenarioType               = 2 /*0x2*/
    }PF_SCENARIO_TYPE, *PPF_SCENARIO_TYPE;
    typedef enum _PLUGPLAY_EVENT_CATEGORY {
        HardwareProfileChangeEvent = 0 /*0x0*/,
        TargetDeviceChangeEvent    = 1 /*0x1*/,
        DeviceClassChangeEvent     = 2 /*0x2*/,
        CustomDeviceEvent          = 3 /*0x3*/,
        DeviceInstallEvent         = 4 /*0x4*/,
        DeviceArrivalEvent         = 5 /*0x5*/,
        PowerEvent                 = 6 /*0x6*/,
        VetoEvent                  = 7 /*0x7*/,
        BlockedDriverEvent         = 8 /*0x8*/,
        MaxPlugEventCategory       = 9 /*0x9*/
    }PLUGPLAY_EVENT_CATEGORY, *PPLUGPLAY_EVENT_CATEGORY;
    typedef enum _PNP_DEVNODE_STATE {
        DeviceNodeUnspecified            = 768 /*0x300*/,
        DeviceNodeUninitialized          = 769 /*0x301*/,
        DeviceNodeInitialized            = 770 /*0x302*/,
        DeviceNodeDriversAdded           = 771 /*0x303*/,
        DeviceNodeResourcesAssigned      = 772 /*0x304*/,
        DeviceNodeStartPending           = 773 /*0x305*/,
        DeviceNodeStartCompletion        = 774 /*0x306*/,
        DeviceNodeStartPostWork          = 775 /*0x307*/,
        DeviceNodeStarted                = 776 /*0x308*/,
        DeviceNodeQueryStopped           = 777 /*0x309*/,
        DeviceNodeStopped                = 778 /*0x30A*/,
        DeviceNodeRestartCompletion      = 779 /*0x30B*/,
        DeviceNodeEnumeratePending       = 780 /*0x30C*/,
        DeviceNodeEnumerateCompletion    = 781 /*0x30D*/,
        DeviceNodeAwaitingQueuedDeletion = 782 /*0x30E*/,
        DeviceNodeAwaitingQueuedRemoval  = 783 /*0x30F*/,
        DeviceNodeQueryRemoved           = 784 /*0x310*/,
        DeviceNodeRemovePendingCloses    = 785 /*0x311*/,
        DeviceNodeRemoved                = 786 /*0x312*/,
        DeviceNodeDeletePendingCloses    = 787 /*0x313*/,
        DeviceNodeDeleted                = 788 /*0x314*/
    }PNP_DEVNODE_STATE, *PPNP_DEVNODE_STATE;
    typedef enum _PNP_VETO_TYPE {
        PNP_VetoTypeUnknown          = 0 /*0x0*/,
        PNP_VetoLegacyDevice         = 1 /*0x1*/,
        PNP_VetoPendingClose         = 2 /*0x2*/,
        PNP_VetoWindowsApp           = 3 /*0x3*/,
        PNP_VetoWindowsService       = 4 /*0x4*/,
        PNP_VetoOutstandingOpen      = 5 /*0x5*/,
        PNP_VetoDevice               = 6 /*0x6*/,
        PNP_VetoDriver               = 7 /*0x7*/,
        PNP_VetoIllegalDeviceRequest = 8 /*0x8*/,
        PNP_VetoInsufficientPower    = 9 /*0x9*/,
        PNP_VetoNonDisableable       = 10 /*0xA*/,
        PNP_VetoLegacyDriver         = 11 /*0xB*/,
        PNP_VetoInsufficientRights   = 12 /*0xC*/
    }PNP_VETO_TYPE, *PPNP_VETO_TYPE;
    typedef enum _POLICY_AUDIT_EVENT_TYPE {
        AuditCategorySystem                 = 0 /*0x0*/,
        AuditCategoryLogon                  = 1 /*0x1*/,
        AuditCategoryObjectAccess           = 2 /*0x2*/,
        AuditCategoryPrivilegeUse           = 3 /*0x3*/,
        AuditCategoryDetailedTracking       = 4 /*0x4*/,
        AuditCategoryPolicyChange           = 5 /*0x5*/,
        AuditCategoryAccountManagement      = 6 /*0x6*/,
        AuditCategoryDirectoryServiceAccess = 7 /*0x7*/,
        AuditCategoryAccountLogon           = 8 /*0x8*/
    }POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE;
    typedef enum _POOL_TYPE {
        NonPagedPool                         = 0 /*0x0*/,
        PagedPool                            = 1 /*0x1*/,
        NonPagedPoolMustSucceed              = 2 /*0x2*/,
        DontUseThisType                      = 3 /*0x3*/,
        NonPagedPoolCacheAligned             = 4 /*0x4*/,
        PagedPoolCacheAligned                = 5 /*0x5*/,
        NonPagedPoolCacheAlignedMustS        = 6 /*0x6*/,
        MaxPoolType                          = 7 /*0x7*/,
        NonPagedPoolSession                  = 32 /*0x20*/,
        PagedPoolSession                     = 33 /*0x21*/,
        NonPagedPoolMustSucceedSession       = 34 /*0x22*/,
        DontUseThisTypeSession               = 35 /*0x23*/,
        NonPagedPoolCacheAlignedSession      = 36 /*0x24*/,
        PagedPoolCacheAlignedSession         = 37 /*0x25*/,
        NonPagedPoolCacheAlignedMustSSession = 38 /*0x26*/
    }POOL_TYPE, *PPOOL_TYPE;
    typedef enum _POP_POLICY_DEVICE_TYPE {
        PolicyDeviceSystemButton     = 0 /*0x0*/,
        PolicyDeviceThermalZone      = 1 /*0x1*/,
        PolicyDeviceBattery          = 2 /*0x2*/,
        PolicyInitiatePowerActionAPI = 3 /*0x3*/,
        PolicySetPowerStateAPI       = 4 /*0x4*/,
        PolicyImmediateDozeS4        = 5 /*0x5*/,
        PolicySystemIdle             = 6 /*0x6*/
    }POP_POLICY_DEVICE_TYPE, *PPOP_POLICY_DEVICE_TYPE;
    typedef enum _POWER_ACTION {
        PowerActionNone          = 0 /*0x0*/,
        PowerActionReserved      = 1 /*0x1*/,
        PowerActionSleep         = 2 /*0x2*/,
        PowerActionHibernate     = 3 /*0x3*/,
        PowerActionShutdown      = 4 /*0x4*/,
        PowerActionShutdownReset = 5 /*0x5*/,
        PowerActionShutdownOff   = 6 /*0x6*/,
        PowerActionWarmEject     = 7 /*0x7*/
    }POWER_ACTION, *PPOWER_ACTION;
    typedef enum _POWER_STATE_TYPE {
        SystemPowerState = 0 /*0x0*/,
        DevicePowerState = 1 /*0x1*/
    }POWER_STATE_TYPE, *PPOWER_STATE_TYPE;
    typedef enum _PP_NPAGED_LOOKASIDE_NUMBER {
        LookasideSmallIrpList   = 0 /*0x0*/,
        LookasideLargeIrpList   = 1 /*0x1*/,
        LookasideMdlList        = 2 /*0x2*/,
        LookasideCreateInfoList = 3 /*0x3*/,
        LookasideNameBufferList = 4 /*0x4*/,
        LookasideTwilightList   = 5 /*0x5*/,
        LookasideCompletionList = 6 /*0x6*/,
        LookasideMaximumList    = 7 /*0x7*/
    }PP_NPAGED_LOOKASIDE_NUMBER, *PPP_NPAGED_LOOKASIDE_NUMBER;
    typedef enum _PROFILE_STATUS {
        DOCK_NOTDOCKDEVICE      = 0 /*0x0*/,
        DOCK_QUIESCENT          = 1 /*0x1*/,
        DOCK_ARRIVING           = 2 /*0x2*/,
        DOCK_DEPARTING          = 3 /*0x3*/,
        DOCK_EJECTIRP_COMPLETED = 4 /*0x4*/
    }PROFILE_STATUS, *PPROFILE_STATUS;
    typedef enum _PROXY_CLASS {
        ProxyFull      = 0 /*0x0*/,
        ProxyService   = 1 /*0x1*/,
        ProxyTree      = 2 /*0x2*/,
        ProxyDirectory = 3 /*0x3*/
    }PROXY_CLASS, *PPROXY_CLASS;
    typedef enum _PS_QUOTA_TYPE {
        PsNonPagedPool = 0 /*0x0*/,
        PsPagedPool    = 1 /*0x1*/,
        PsPageFile     = 2 /*0x2*/,
        PsQuotaTypes   = 3 /*0x3*/
    }PS_QUOTA_TYPE, *PPS_QUOTA_TYPE;
    typedef enum _ReplacesCorHdrNumericDefines {
        COMIMAGE_FLAGS_ILONLY                = 1 /*0x1*/,
        COMIMAGE_FLAGS_32BITREQUIRED         = 2 /*0x2*/,
        COMIMAGE_FLAGS_IL_LIBRARY            = 4 /*0x4*/,
        COMIMAGE_FLAGS_STRONGNAMESIGNED      = 8 /*0x8*/,
        COMIMAGE_FLAGS_TRACKDEBUGDATA        = 65536 /*0x10000*/,
        COR_VERSION_MAJOR_V2                 = 2 /*0x2*/,
        COR_VERSION_MAJOR                    = 2 /*0x2*/,
        COR_VERSION_MINOR                    = 0 /*0x0*/,
        COR_DELETED_NAME_LENGTH              = 8 /*0x8*/,
        COR_VTABLEGAP_NAME_LENGTH            = 8 /*0x8*/,
        NATIVE_TYPE_MAX_CB                   = 1 /*0x1*/,
        COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 255 /*0xFF*/,
        IMAGE_COR_MIH_METHODRVA              = 1 /*0x1*/,
        IMAGE_COR_MIH_EHRVA                  = 2 /*0x2*/,
        IMAGE_COR_MIH_BASICBLOCK             = 8 /*0x8*/,
        COR_VTABLE_32BIT                     = 1 /*0x1*/,
        COR_VTABLE_64BIT                     = 2 /*0x2*/,
        COR_VTABLE_FROM_UNMANAGED            = 4 /*0x4*/,
        COR_VTABLE_CALL_MOST_DERIVED         = 16 /*0x10*/,
        IMAGE_COR_EATJ_THUNK_SIZE            = 32 /*0x20*/,
        MAX_CLASS_NAME                       = 1024 /*0x400*/,
        MAX_PACKAGE_NAME                     = 1024 /*0x400*/
    }ReplacesCorHdrNumericDefines, *PReplacesCorHdrNumericDefines;
    typedef enum _SECURITY_IMPERSONATION_LEVEL {
        SecurityAnonymous      = 0 /*0x0*/,
        SecurityIdentification = 1 /*0x1*/,
        SecurityImpersonation  = 2 /*0x2*/,
        SecurityDelegation     = 3 /*0x3*/
    }SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
    typedef enum _SECURITY_OPERATION_CODE {
        SetSecurityDescriptor    = 0 /*0x0*/,
        QuerySecurityDescriptor  = 1 /*0x1*/,
        DeleteSecurityDescriptor = 2 /*0x2*/,
        AssignSecurityDescriptor = 3 /*0x3*/
    }SECURITY_OPERATION_CODE, *PSECURITY_OPERATION_CODE;
    typedef enum _SYSTEM_POWER_STATE {
        PowerSystemUnspecified = 0 /*0x0*/,
        PowerSystemWorking     = 1 /*0x1*/,
        PowerSystemSleeping1   = 2 /*0x2*/,
        PowerSystemSleeping2   = 3 /*0x3*/,
        PowerSystemSleeping3   = 4 /*0x4*/,
        PowerSystemHibernate   = 5 /*0x5*/,
        PowerSystemShutdown    = 6 /*0x6*/,
        PowerSystemMaximum     = 7 /*0x7*/
    }SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
    typedef enum _TOKEN_TYPE {
        TokenPrimary       = 1 /*0x1*/,
        TokenImpersonation = 2 /*0x2*/
    }TOKEN_TYPE, *PTOKEN_TYPE;
    typedef enum _VI_DEADLOCK_RESOURCE_TYPE {
        VfDeadlockUnknown         = 0 /*0x0*/,
        VfDeadlockMutex           = 1 /*0x1*/,
        VfDeadlockFastMutex       = 2 /*0x2*/,
        VfDeadlockFastMutexUnsafe = 3 /*0x3*/,
        VfDeadlockSpinLock        = 4 /*0x4*/,
        VfDeadlockQueuedSpinLock  = 5 /*0x5*/,
        VfDeadlockTypeMaximum     = 6 /*0x6*/
    }VI_DEADLOCK_RESOURCE_TYPE, *PVI_DEADLOCK_RESOURCE_TYPE;
    struct _ARBITER_LIST_ENTRY;
    struct _ARBITER_ALTERNATIVE;
    struct _IO_RESOURCE_DESCRIPTOR;
    struct _DEVICE_OBJECT;
    struct _KEVENT;
    struct _RTL_RANGE_LIST;
    struct _ARBITER_INTERFACE;
    struct _ARBITER_ALLOCATION_STATE;
    struct _CM_PARTIAL_RESOURCE_DESCRIPTOR;
    struct _ARBITER_ORDERING;
    struct _LIST_ENTRY;
    struct _CM_PARTIAL_RESOURCE_LIST;
    struct _ARBITER_CONFLICT_INFO;
    struct _PI_BUS_EXTENSION;
    struct _BUS_HANDLER;
    struct _SUPPORTED_RANGES;
    struct _CM_KEY_CONTROL_BLOCK;
    struct _CACHE_UNINITIALIZE_EVENT;
    struct _FAST_MUTEX;
    struct _FILE_OBJECT;
    struct _CM_KEY_SECURITY_CACHE_ENTRY;
    struct _WORK_QUEUE_ITEM;
    struct _CM_CELL_REMAP_BLOCK;
    struct _CM_NOTIFY_BLOCK;
    struct _CM_KEY_HASH;
    struct _HHIVE;
    struct _CM_NAME_CONTROL_BLOCK;
    struct _CM_KEY_SECURITY_CACHE;
    struct _CM_INDEX_HINT_BLOCK;
    struct _CM_NAME_HASH;
    struct _CM_KEY_BODY;
    struct _SEGMENT;
    struct _EVENT_COUNTER;
    struct _OBJECT_DIRECTORY;
    struct _DEVICE_NODE;
    struct _PO_DEVICE_NOTIFY;
    struct _IRP;
    struct _CM_RESOURCE_LIST;
    struct _IO_RESOURCE_REQUIREMENTS_LIST;
    struct _DEVICE_RELATIONS;
    struct _DRIVER_OBJECT;
    struct _IO_TIMER;
    struct _VPB;
    struct _DEVOBJ_EXTENSION;
    struct _DEVICE_OBJECT_POWER_EXTENSION;
    struct _IO_CLIENT_EXTENSION;
    struct _FS_FILTER_CALLBACKS;
    struct _DRIVER_EXTENSION;
    struct _UNICODE_STRING;
    struct _FAST_IO_DISPATCH;
    struct _HMAP_DIRECTORY;
    struct _HMAP_TABLE;
    struct _ADAPTER_OBJECT;
    struct _PS_JOB_TOKEN_FILTER;
    struct _HANDLE_TABLE;
    struct _ETHREAD;
    struct _EJOB;
    struct _EPROCESS_QUOTA_BLOCK;
    struct _PAGEFAULT_HISTORY;
    struct _PEB;
    struct _OWNER_ENTRY;
    struct _KSEMAPHORE;
    struct _TERMINATION_PORT;
    struct _PS_IMPERSONATION_INFORMATION;
    struct _EPROCESS;
    struct _EXCEPTION_RECORD;
    struct _CONTEXT;
    struct _EXCEPTION_REGISTRATION_RECORD;
    struct _EX_PUSH_LOCK;
    struct _EX_PUSH_LOCK_WAIT_BLOCK;
    struct _KTHREAD;
    struct _SECTION_OBJECT_POINTERS;
    struct _IO_COMPLETION_CONTEXT;
    struct _HANDLE_TRACE_DEBUG_INFO;
    struct _HANDLE_TABLE_ENTRY_INFO;
    struct _HEAP_TAG_ENTRY;
    struct _HEAP_UCR_SEGMENT;
    struct _HEAP_UNCOMMMTTED_RANGE;
    struct _HEAP_SEGMENT;
    struct _HEAP_PSEUDO_TAG_ENTRY;
    struct _HEAP_LOCK;
    struct _HEAP;
    struct _HEAP_ENTRY;
    struct _HEAP_USERDATA_HEADER;
    struct _HEAP_SUBSEGMENT;
    struct _HBASE_BLOCK;
    struct _CMHIVE;
    struct _CM_VIEW_OF_FILE;
    struct _SECURITY_QUALITY_OF_SERVICE;
    struct _ACCESS_STATE;
    struct _IO_SECURITY_CONTEXT;
    struct _NAMED_PIPE_CREATE_PARAMETERS;
    struct _MAILSLOT_CREATE_PARAMETERS;
    struct _STRING;
    struct _SCSI_REQUEST_BLOCK;
    struct _FILE_GET_QUOTA_INFORMATION;
    struct _GUID;
    struct _INTERFACE;
    struct _DEVICE_CAPABILITIES;
    struct _POWER_SEQUENCE;
    struct _MDL;
    struct _IO_STATUS_BLOCK;
    struct _IO_STACK_LOCATION;
    struct _KPROCESS;
    struct _SINGLE_LIST_ENTRY;
    struct _KPCR;
    struct _KPRCB;
    struct _KIDTENTRY;
    struct _KGDTENTRY;
    struct _KTSS;
    struct _KNODE;
    struct _KSPIN_LOCK_QUEUE;
    struct _KWAIT_BLOCK;
    struct _KQUEUE;
    struct _KTRAP_FRAME;
    struct _KAPC_STATE;
    struct _KDPC;
    struct _LPCP_PORT_OBJECT;
    struct _LPCP_NONPAGED_PORT_QUEUE;
    struct _VI_POOL_ENTRY;
    struct _MI_VERIFIER_DRIVER_ENTRY;
    struct _MMPTE;
    struct _MMFREE_POOL_ENTRY;
    struct _MMMOD_WRITER_LISTHEAD;
    struct _MMPAGING_FILE;
    struct _CONTROL_AREA;
    struct _ERESOURCE;
    struct _MMMOD_WRITER_MDL_ENTRY;
    struct _RTL_BITMAP;
    struct _MMVIEW;
    struct _MMWSL;
    struct _MMVAD;
    struct _MMBANKED_SECTION;
    struct _MMEXTEND_INFO;
    struct _MMWSLE;
    struct _MMWSLE_HASH;
    struct _MM_SESSION_SPACE;
    struct _NT_TIB;
    struct _OBJECT_DIRECTORY_ENTRY;
    struct _DEVICE_MAP;
    struct _OBJECT_TYPE;
    struct _OBJECT_CREATE_INFORMATION;
    struct _PCI_INTERFACE;
    struct _PCI_FDO_EXTENSION;
    struct _PCI_MJ_DISPATCH_TABLE;
    struct _PCI_PDO_EXTENSION;
    struct _PCI_BUS_INTERFACE_STANDARD;
    struct _PCI_COMMON_CONFIG;
    struct _PCI_MN_DISPATCH_TABLE;
    struct _PCI_FUNCTION_RESOURCES;
    struct _PEB_LDR_DATA;
    struct _RTL_USER_PROCESS_PARAMETERS;
    struct _RTL_CRITICAL_SECTION;
    struct _PEB_FREE_BLOCK;
    struct _POP_TRIGGER_WAIT;
    struct _DUMP_STACK_CONTEXT;
    struct _KPROCESSOR_STATE;
    struct _PO_MEMORY_IMAGE;
    struct _PO_MEMORY_RANGE_ARRAY;
    struct _POP_SHUTDOWN_BUG_CHECK;
    struct _POP_DEVICE_SYS_STATE;
    struct _POP_HIBER_CONTEXT;
    struct _POP_ACTION_TRIGGER;
    struct _GENERAL_LOOKASIDE;
    struct _PROCESSOR_PERF_STATE;
    struct _SID_AND_ATTRIBUTES;
    struct _LUID_AND_ATTRIBUTES;
    struct _RTL_ATOM_TABLE_ENTRY;
    struct _RTL_CRITICAL_SECTION_DEBUG;
    struct _RTL_HANDLE_TABLE_ENTRY;
    struct _SEGMENT_OBJECT;
    struct _ACL;
    struct _SECTION_IMAGE_INFORMATION;
    struct _SUBSECTION;
    struct _LARGE_CONTROL_AREA;
    struct _MMSECTION_FLAGS;
    struct _MMSUBSECTION_FLAGS;
    struct _OBJECT_NAME_INFORMATION;
    struct _VACB;
    struct _MBCB;
    struct _CACHE_MANAGER_CALLBACKS;
    struct _SUPPORTED_RANGE;
    struct _TEB_ACTIVE_FRAME;
    struct _TEB_ACTIVE_FRAME_CONTEXT;
    struct _SECURITY_TOKEN_PROXY_DATA;
    struct _SECURITY_TOKEN_AUDIT_DATA;
    struct _SHARED_CACHE_MAP;
    struct _VI_DEADLOCK_NODE;
    struct _VI_DEADLOCK_RESOURCE;
    struct _VI_DEADLOCK_THREAD;

    typedef struct _UNICODE_STRING {
    /*0x000*/     UINT16       Length;
    /*0x002*/     UINT16       MaximumLength;
    /*0x004*/     UINT16*      Buffer;
    }UNICODE_STRING, *PUNICODE_STRING;
    typedef struct _LUID {
    /*0x000*/     ULONG32      LowPart;
    /*0x004*/     LONG32       HighPart;
    }LUID, *PLUID;
    typedef struct _ACL {
    /*0x000*/     UINT8        AclRevision;
    /*0x001*/     UINT8        Sbz1;
    /*0x002*/     UINT16       AclSize;
    /*0x004*/     UINT16       AceCount;
    /*0x006*/     UINT16       Sbz2;
    }ACL, *PACL;
    typedef struct _ADAPTER_OBJECT {
    }ADAPTER_OBJECT, *PADAPTER_OBJECT;
    typedef struct _AMD64_DBGKD_CONTROL_SET {
    /*0x000*/     ULONG32      TraceFlag;
    /*0x004*/     UINT64       Dr7;
    /*0x00C*/     UINT64       CurrentSymbolStart;
    /*0x014*/     UINT64       CurrentSymbolEnd;
    }AMD64_DBGKD_CONTROL_SET, *PAMD64_DBGKD_CONTROL_SET;
    typedef struct _ARBITER_ALLOCATION_STATE {
    /*0x000*/     UINT64       Start;
    /*0x008*/     UINT64       End;
    /*0x010*/     UINT64       CurrentMinimum;
    /*0x018*/     UINT64       CurrentMaximum;
    /*0x020*/     struct _ARBITER_LIST_ENTRY* Entry;
    /*0x024*/     struct _ARBITER_ALTERNATIVE* CurrentAlternative;
    /*0x028*/     ULONG32      AlternativeCount;
    /*0x02C*/     struct _ARBITER_ALTERNATIVE* Alternatives;
    /*0x030*/     UINT16       Flags;
    /*0x032*/     UINT8        RangeAttributes;
    /*0x033*/     UINT8        RangeAvailableAttributes;
    /*0x034*/     ULONG32      WorkSpace;
    }ARBITER_ALLOCATION_STATE, *PARBITER_ALLOCATION_STATE;
    typedef struct _ARBITER_ALTERNATIVE {
    /*0x000*/     UINT64       Minimum;
    /*0x008*/     UINT64       Maximum;
    /*0x010*/     ULONG32      Length;
    /*0x014*/     ULONG32      Alignment;
    /*0x018*/     LONG32       Priority;
    /*0x01C*/     ULONG32      Flags;
    /*0x020*/     struct _IO_RESOURCE_DESCRIPTOR* Descriptor;
    /*0x024*/     ULONG32      Reserved[3];
    }ARBITER_ALTERNATIVE, *PARBITER_ALTERNATIVE;
    typedef struct _ARBITER_CONFLICT_INFO {
    /*0x000*/     struct _DEVICE_OBJECT* OwningObject;
    /*0x004*/     UINT8        _PADDING0_[0x4];
    /*0x008*/     UINT64       Start;
    /*0x010*/     UINT64       End;
    }ARBITER_CONFLICT_INFO, *PARBITER_CONFLICT_INFO;
    typedef struct _ARBITER_INTERFACE {
    /*0x000*/     UINT16       Size;
    /*0x002*/     UINT16       Version;
    /*0x004*/     VOID*        Context;
    /*0x008*/     PVOID InterfaceReference;
    /*0x00C*/     PVOID InterfaceDereference;
    /*0x010*/     PVOID ArbiterHandler;
    /*0x014*/     ULONG32      Flags;
    }ARBITER_INTERFACE, *PARBITER_INTERFACE;
    typedef struct _ARBITER_ORDERING {
    /*0x000*/     UINT64       Start;
    /*0x008*/     UINT64       End;
    }ARBITER_ORDERING, *PARBITER_ORDERING;
    typedef struct _ARBITER_ORDERING_LIST {
    /*0x000*/     UINT16       Count;
    /*0x002*/     UINT16       Maximum;
    /*0x004*/     struct _ARBITER_ORDERING* Orderings;
    }ARBITER_ORDERING_LIST, *PARBITER_ORDERING_LIST;
    typedef struct _ARBITER_PARAMETERS {
                  union
                  {
                      struct
                      {
    /*0x000*/             struct _LIST_ENTRY* ArbitrationList;
    /*0x004*/             ULONG32      AllocateFromCount;
    /*0x008*/             struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom;
                      }TestAllocation;
                      struct
                      {
    /*0x000*/             struct _LIST_ENTRY* ArbitrationList;
    /*0x004*/             ULONG32      AllocateFromCount;
    /*0x008*/             struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom;
                      }RetestAllocation;
                      struct
                      {
    /*0x000*/             struct _LIST_ENTRY* ArbitrationList;
                      }BootAllocation;
                      struct
                      {
    /*0x000*/             struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources;
                      }QueryAllocatedResources;
                      struct
                      {
    /*0x000*/             struct _DEVICE_OBJECT* PhysicalDeviceObject;
    /*0x004*/             struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource;
    /*0x008*/             ULONG32*     ConflictCount;
    /*0x00C*/             struct _ARBITER_CONFLICT_INFO** Conflicts;
                      }QueryConflict;
                      struct
                      {
    /*0x000*/             struct _LIST_ENTRY* ArbitrationList;
                      }QueryArbitrate;
                      struct
                      {
    /*0x000*/             struct _DEVICE_OBJECT* ReserveDevice;
                      }AddReserved;
                  }Parameters;
    }ARBITER_PARAMETERS, *PARBITER_PARAMETERS;
    typedef struct _BATTERY_REPORTING_SCALE {
    /*0x000*/     ULONG32      Granularity;
    /*0x004*/     ULONG32      Capacity;
    }BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;
    typedef struct _BUS_EXTENSION_LIST {
    /*0x000*/     VOID*        Next;
    /*0x004*/     struct _PI_BUS_EXTENSION* BusExtension;
    }BUS_EXTENSION_LIST, *PBUS_EXTENSION_LIST;
    typedef struct _BUS_HANDLER {
    /*0x000*/     ULONG32      Version;
    /*0x004*/     enum _INTERFACE_TYPE InterfaceType;
    /*0x008*/     enum _BUS_DATA_TYPE ConfigurationType;
    /*0x00C*/     ULONG32      BusNumber;
    /*0x010*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x014*/     struct _BUS_HANDLER* ParentHandler;
    /*0x018*/     VOID*        BusData;
    /*0x01C*/     ULONG32      DeviceControlExtensionSize;
    /*0x020*/     struct _SUPPORTED_RANGES* BusAddresses;
    /*0x024*/     ULONG32      Reserved[4];
    /*0x034*/     PVOID GetBusData;
    /*0x038*/     PVOID SetBusData;
    /*0x03C*/     PVOID AdjustResourceList;
    /*0x040*/     PVOID AssignSlotResources;
    /*0x044*/     PVOID GetInterruptVector;
    /*0x048*/     PVOID TranslateBusAddress;
    /*0x04C*/     VOID*        Spare1;
    /*0x050*/     VOID*        Spare2;
    /*0x054*/     VOID*        Spare3;
    /*0x058*/     VOID*        Spare4;
    /*0x05C*/     VOID*        Spare5;
    /*0x060*/     VOID*        Spare6;
    /*0x064*/     VOID*        Spare7;
    /*0x068*/     VOID*        Spare8;
    }BUS_HANDLER, *PBUS_HANDLER;
    typedef struct _CACHED_CHILD_LIST {
    /*0x000*/     ULONG32      Count;
                  union
                  {
    /*0x004*/         ULONG32      ValueList;
    /*0x004*/         struct _CM_KEY_CONTROL_BLOCK* RealKcb;
                  };
    }CACHED_CHILD_LIST, *PCACHED_CHILD_LIST;
    typedef struct _CACHE_MANAGER_CALLBACKS {
    /*0x000*/     PVOID AcquireForLazyWrite;
    /*0x004*/     PVOID ReleaseFromLazyWrite;
    /*0x008*/     PVOID AcquireForReadAhead;
    /*0x00C*/     PVOID ReleaseFromReadAhead;
    }CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
    typedef struct _CHILD_LIST {
    /*0x000*/     ULONG32      Count;
    /*0x004*/     ULONG32      List;
    }CHILD_LIST, *PCHILD_LIST;
    typedef struct _CLIENT_ID {
    /*0x000*/     VOID*        UniqueProcess;
    /*0x004*/     VOID*        UniqueThread;
    }CLIENT_ID, *PCLIENT_ID;
    typedef struct _CMP_OFFSET_ARRAY {
    /*0x000*/     ULONG32      FileOffset;
    /*0x004*/     VOID*        DataBuffer;
    /*0x008*/     ULONG32      DataLength;
    }CMP_OFFSET_ARRAY, *PCMP_OFFSET_ARRAY;
    typedef struct _CM_BIG_DATA {
    /*0x000*/     UINT16       Signature;
    /*0x002*/     UINT16       Count;
    /*0x004*/     ULONG32      List;
    }CM_BIG_DATA, *PCM_BIG_DATA;
    typedef struct _CM_CELL_REMAP_BLOCK {
    /*0x000*/     ULONG32      OldCell;
    /*0x004*/     ULONG32      NewCell;
    }CM_CELL_REMAP_BLOCK, *PCM_CELL_REMAP_BLOCK;
    typedef struct _CM_INDEX_HINT_BLOCK {
    /*0x000*/     ULONG32      Count;
    /*0x004*/     ULONG32      HashKey[1];
    }CM_INDEX_HINT_BLOCK, *PCM_INDEX_HINT_BLOCK;
    typedef struct _CM_KEY_HASH {
    /*0x000*/     ULONG32      ConvKey;
    /*0x004*/     struct _CM_KEY_HASH* NextHash;
    /*0x008*/     struct _HHIVE* KeyHive;
    /*0x00C*/     ULONG32      KeyCell;
    }CM_KEY_HASH, *PCM_KEY_HASH;
    typedef struct _CM_KEY_INDEX {
    /*0x000*/     UINT16       Signature;
    /*0x002*/     UINT16       Count;
    /*0x004*/     ULONG32      List[1];
    }CM_KEY_INDEX, *PCM_KEY_INDEX;
    typedef struct _CM_KEY_REFERENCE {
    /*0x000*/     ULONG32      KeyCell;
    /*0x004*/     struct _HHIVE* KeyHive;
    }CM_KEY_REFERENCE, *PCM_KEY_REFERENCE;
    typedef struct _CM_KEY_SECURITY_CACHE_ENTRY {
    /*0x000*/     ULONG32      Cell;
    /*0x004*/     struct _CM_KEY_SECURITY_CACHE* CachedSecurity;
    }CM_KEY_SECURITY_CACHE_ENTRY, *PCM_KEY_SECURITY_CACHE_ENTRY;
    typedef struct _CM_KEY_VALUE {
    /*0x000*/     UINT16       Signature;
    /*0x002*/     UINT16       NameLength;
    /*0x004*/     ULONG32      DataLength;
    /*0x008*/     ULONG32      Data;
    /*0x00C*/     ULONG32      Type;
    /*0x010*/     UINT16       Flags;
    /*0x012*/     UINT16       Spare;
    /*0x014*/     UINT16       Name[1];
    /*0x016*/     UINT8        _PADDING0_[0x2];
    }CM_KEY_VALUE, *PCM_KEY_VALUE;
    typedef struct _CM_NAME_HASH {
    /*0x000*/     ULONG32      ConvKey;
    /*0x004*/     struct _CM_NAME_HASH* NextHash;
    /*0x008*/     UINT16       NameLength;
    /*0x00A*/     UINT16       Name[1];
    }CM_NAME_HASH, *PCM_NAME_HASH;
    typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
    /*0x000*/     UINT8        Type;
    /*0x001*/     UINT8        ShareDisposition;
    /*0x002*/     UINT16       Flags;
                  union
                  {
                      struct
                      {
    /*0x004*/             union _LARGE_INTEGER Start;
    /*0x00C*/             ULONG32      Length;
                      }Generic;
                      struct
                      {
    /*0x004*/             union _LARGE_INTEGER Start;
    /*0x00C*/             ULONG32      Length;
                      }Port;
                      struct
                      {
    /*0x004*/             ULONG32      Level;
    /*0x008*/             ULONG32      Vector;
    /*0x00C*/             ULONG32      Affinity;
                      }Interrupt;
                      struct
                      {
    /*0x004*/             union _LARGE_INTEGER Start;
    /*0x00C*/             ULONG32      Length;
                      }Memory;
                      struct
                      {
    /*0x004*/             ULONG32      Channel;
    /*0x008*/             ULONG32      Port;
    /*0x00C*/             ULONG32      Reserved1;
                      }Dma;
                      struct
                      {
    /*0x004*/             ULONG32      Data[3];
                      }DevicePrivate;
                      struct
                      {
    /*0x004*/             ULONG32      Start;
    /*0x008*/             ULONG32      Length;
    /*0x00C*/             ULONG32      Reserved;
                      }BusNumber;
                      struct
                      {
    /*0x004*/             ULONG32      DataSize;
    /*0x008*/             ULONG32      Reserved1;
    /*0x00C*/             ULONG32      Reserved2;
                      }DeviceSpecificData;
                  }u;
    }CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
    typedef struct _COMPRESSED_DATA_INFO {
    /*0x000*/     UINT16       CompressionFormatAndEngine;
    /*0x002*/     UINT8        CompressionUnitShift;
    /*0x003*/     UINT8        ChunkShift;
    /*0x004*/     UINT8        ClusterShift;
    /*0x005*/     UINT8        Reserved;
    /*0x006*/     UINT16       NumberOfChunks;
    /*0x008*/     ULONG32      CompressedChunkSizes[1];
    }COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
    typedef struct _DBGKD_BREAKPOINTEX {
    /*0x000*/     ULONG32      BreakPointCount;
    /*0x004*/     LONG32       ContinueStatus;
    }DBGKD_BREAKPOINTEX, *PDBGKD_BREAKPOINTEX;
    typedef struct _DBGKD_CONTINUE {
    /*0x000*/     LONG32       ContinueStatus;
    }DBGKD_CONTINUE, *PDBGKD_CONTINUE;
    typedef struct _DBGKD_FILL_MEMORY {
    /*0x000*/     UINT64       Address;
    /*0x008*/     ULONG32      Length;
    /*0x00C*/     UINT16       Flags;
    /*0x00E*/     UINT16       PatternLength;
    }DBGKD_FILL_MEMORY, *PDBGKD_FILL_MEMORY;
    typedef struct _DBGKD_GET_CONTEXT {
    /*0x000*/     ULONG32      Unused;
    }DBGKD_GET_CONTEXT, *PDBGKD_GET_CONTEXT;
    typedef struct _DBGKD_GET_INTERNAL_BREAKPOINT32 {
    /*0x000*/     ULONG32      BreakpointAddress;
    /*0x004*/     ULONG32      Flags;
    /*0x008*/     ULONG32      Calls;
    /*0x00C*/     ULONG32      MaxCallsPerPeriod;
    /*0x010*/     ULONG32      MinInstructions;
    /*0x014*/     ULONG32      MaxInstructions;
    /*0x018*/     ULONG32      TotalInstructions;
    }DBGKD_GET_INTERNAL_BREAKPOINT32, *PDBGKD_GET_INTERNAL_BREAKPOINT32;
    typedef struct _DBGKD_GET_INTERNAL_BREAKPOINT64 {
    /*0x000*/     UINT64       BreakpointAddress;
    /*0x008*/     ULONG32      Flags;
    /*0x00C*/     ULONG32      Calls;
    /*0x010*/     ULONG32      MaxCallsPerPeriod;
    /*0x014*/     ULONG32      MinInstructions;
    /*0x018*/     ULONG32      MaxInstructions;
    /*0x01C*/     ULONG32      TotalInstructions;
    }DBGKD_GET_INTERNAL_BREAKPOINT64, *PDBGKD_GET_INTERNAL_BREAKPOINT64;
    typedef struct _DBGKD_GET_SET_BUS_DATA {
    /*0x000*/     ULONG32      BusDataType;
    /*0x004*/     ULONG32      BusNumber;
    /*0x008*/     ULONG32      SlotNumber;
    /*0x00C*/     ULONG32      Offset;
    /*0x010*/     ULONG32      Length;
    }DBGKD_GET_SET_BUS_DATA, *PDBGKD_GET_SET_BUS_DATA;
    typedef struct _DBGKD_GET_VERSION32 {
    /*0x000*/     UINT16       MajorVersion;
    /*0x002*/     UINT16       MinorVersion;
    /*0x004*/     UINT16       ProtocolVersion;
    /*0x006*/     UINT16       Flags;
    /*0x008*/     ULONG32      KernBase;
    /*0x00C*/     ULONG32      PsLoadedModuleList;
    /*0x010*/     UINT16       MachineType;
    /*0x012*/     UINT16       ThCallbackStack;
    /*0x014*/     UINT16       NextCallback;
    /*0x016*/     UINT16       FramePointer;
    /*0x018*/     ULONG32      KiCallUserMode;
    /*0x01C*/     ULONG32      KeUserCallbackDispatcher;
    /*0x020*/     ULONG32      BreakpointWithStatus;
    /*0x024*/     ULONG32      DebuggerDataList;
    }DBGKD_GET_VERSION32, *PDBGKD_GET_VERSION32;
    typedef struct _DBGKD_GET_VERSION64 {
    /*0x000*/     UINT16       MajorVersion;
    /*0x002*/     UINT16       MinorVersion;
    /*0x004*/     UINT16       ProtocolVersion;
    /*0x006*/     UINT16       Flags;
    /*0x008*/     UINT16       MachineType;
    /*0x00A*/     UINT8        MaxPacketType;
    /*0x00B*/     UINT8        MaxStateChange;
    /*0x00C*/     UINT8        MaxManipulate;
    /*0x00D*/     UINT8        Simulation;
    /*0x00E*/     UINT16       Unused[1];
    /*0x010*/     UINT64       KernBase;
    /*0x018*/     UINT64       PsLoadedModuleList;
    /*0x020*/     UINT64       DebuggerDataList;
    }DBGKD_GET_VERSION64, *PDBGKD_GET_VERSION64;
    typedef struct _DBGKD_LOAD_SYMBOLS32 {
    /*0x000*/     ULONG32      PathNameLength;
    /*0x004*/     ULONG32      BaseOfDll;
    /*0x008*/     ULONG32      ProcessId;
    /*0x00C*/     ULONG32      CheckSum;
    /*0x010*/     ULONG32      SizeOfImage;
    /*0x014*/     UINT8        UnloadSymbols;
    /*0x015*/     UINT8        _PADDING0_[0x3];
    }DBGKD_LOAD_SYMBOLS32, *PDBGKD_LOAD_SYMBOLS32;
    typedef struct _DBGKD_LOAD_SYMBOLS64 {
    /*0x000*/     ULONG32      PathNameLength;
    /*0x004*/     UINT8        _PADDING0_[0x4];
    /*0x008*/     UINT64       BaseOfDll;
    /*0x010*/     UINT64       ProcessId;
    /*0x018*/     ULONG32      CheckSum;
    /*0x01C*/     ULONG32      SizeOfImage;
    /*0x020*/     UINT8        UnloadSymbols;
    /*0x021*/     UINT8        _PADDING1_[0x7];
    }DBGKD_LOAD_SYMBOLS64, *PDBGKD_LOAD_SYMBOLS64;
    typedef struct _DBGKD_QUERY_MEMORY {
    /*0x000*/     UINT64       Address;
    /*0x008*/     UINT64       Reserved;
    /*0x010*/     ULONG32      AddressSpace;
    /*0x014*/     ULONG32      Flags;
    }DBGKD_QUERY_MEMORY, *PDBGKD_QUERY_MEMORY;
    typedef struct _DBGKD_QUERY_SPECIAL_CALLS {
    /*0x000*/     ULONG32      NumberOfSpecialCalls;
    }DBGKD_QUERY_SPECIAL_CALLS, *PDBGKD_QUERY_SPECIAL_CALLS;
    typedef struct _DBGKD_READ_MEMORY32 {
    /*0x000*/     ULONG32      TargetBaseAddress;
    /*0x004*/     ULONG32      TransferCount;
    /*0x008*/     ULONG32      ActualBytesRead;
    }DBGKD_READ_MEMORY32, *PDBGKD_READ_MEMORY32;
    typedef struct _DBGKD_READ_MEMORY64 {
    /*0x000*/     UINT64       TargetBaseAddress;
    /*0x008*/     ULONG32      TransferCount;
    /*0x00C*/     ULONG32      ActualBytesRead;
    }DBGKD_READ_MEMORY64, *PDBGKD_READ_MEMORY64;
    typedef struct _DBGKD_READ_WRITE_IO32 {
    /*0x000*/     ULONG32      DataSize;
    /*0x004*/     ULONG32      IoAddress;
    /*0x008*/     ULONG32      DataValue;
    }DBGKD_READ_WRITE_IO32, *PDBGKD_READ_WRITE_IO32;
    typedef struct _DBGKD_READ_WRITE_IO64 {
    /*0x000*/     UINT64       IoAddress;
    /*0x008*/     ULONG32      DataSize;
    /*0x00C*/     ULONG32      DataValue;
    }DBGKD_READ_WRITE_IO64, *PDBGKD_READ_WRITE_IO64;
    typedef struct _DBGKD_READ_WRITE_IO_EXTENDED32 {
    /*0x000*/     ULONG32      DataSize;
    /*0x004*/     ULONG32      InterfaceType;
    /*0x008*/     ULONG32      BusNumber;
    /*0x00C*/     ULONG32      AddressSpace;
    /*0x010*/     ULONG32      IoAddress;
    /*0x014*/     ULONG32      DataValue;
    }DBGKD_READ_WRITE_IO_EXTENDED32, *PDBGKD_READ_WRITE_IO_EXTENDED32;
    typedef struct _DBGKD_READ_WRITE_IO_EXTENDED64 {
    /*0x000*/     ULONG32      DataSize;
    /*0x004*/     ULONG32      InterfaceType;
    /*0x008*/     ULONG32      BusNumber;
    /*0x00C*/     ULONG32      AddressSpace;
    /*0x010*/     UINT64       IoAddress;
    /*0x018*/     ULONG32      DataValue;
    /*0x01C*/     UINT8        _PADDING0_[0x4];
    }DBGKD_READ_WRITE_IO_EXTENDED64, *PDBGKD_READ_WRITE_IO_EXTENDED64;
    typedef struct _DBGKD_READ_WRITE_MSR {
    /*0x000*/     ULONG32      Msr;
    /*0x004*/     ULONG32      DataValueLow;
    /*0x008*/     ULONG32      DataValueHigh;
    }DBGKD_READ_WRITE_MSR, *PDBGKD_READ_WRITE_MSR;
    typedef struct _DBGKD_RESTORE_BREAKPOINT {
    /*0x000*/     ULONG32      BreakPointHandle;
    }DBGKD_RESTORE_BREAKPOINT, *PDBGKD_RESTORE_BREAKPOINT;
    typedef struct _DBGKD_SEARCH_MEMORY {
                  union
                  {
    /*0x000*/         UINT64       SearchAddress;
    /*0x000*/         UINT64       FoundAddress;
                  };
    /*0x008*/     UINT64       SearchLength;
    /*0x010*/     ULONG32      PatternLength;
    /*0x014*/     UINT8        _PADDING0_[0x4];
    }DBGKD_SEARCH_MEMORY, *PDBGKD_SEARCH_MEMORY;
    typedef struct _DBGKD_SET_CONTEXT {
    /*0x000*/     ULONG32      ContextFlags;
    }DBGKD_SET_CONTEXT, *PDBGKD_SET_CONTEXT;
    typedef struct _DBGKD_SET_INTERNAL_BREAKPOINT32 {
    /*0x000*/     ULONG32      BreakpointAddress;
    /*0x004*/     ULONG32      Flags;
    }DBGKD_SET_INTERNAL_BREAKPOINT32, *PDBGKD_SET_INTERNAL_BREAKPOINT32;
    typedef struct _DBGKD_SET_INTERNAL_BREAKPOINT64 {
    /*0x000*/     UINT64       BreakpointAddress;
    /*0x008*/     ULONG32      Flags;
    /*0x00C*/     UINT8        _PADDING0_[0x4];
    }DBGKD_SET_INTERNAL_BREAKPOINT64, *PDBGKD_SET_INTERNAL_BREAKPOINT64;
    typedef struct _DBGKD_SET_SPECIAL_CALL32 {
    /*0x000*/     ULONG32      SpecialCall;
    }DBGKD_SET_SPECIAL_CALL32, *PDBGKD_SET_SPECIAL_CALL32;
    typedef struct _DBGKD_SET_SPECIAL_CALL64 {
    /*0x000*/     UINT64       SpecialCall;
    }DBGKD_SET_SPECIAL_CALL64, *PDBGKD_SET_SPECIAL_CALL64;
    typedef struct _DBGKD_WRITE_BREAKPOINT32 {
    /*0x000*/     ULONG32      BreakPointAddress;
    /*0x004*/     ULONG32      BreakPointHandle;
    }DBGKD_WRITE_BREAKPOINT32, *PDBGKD_WRITE_BREAKPOINT32;
    typedef struct _DBGKD_WRITE_BREAKPOINT64 {
    /*0x000*/     UINT64       BreakPointAddress;
    /*0x008*/     ULONG32      BreakPointHandle;
    /*0x00C*/     UINT8        _PADDING0_[0x4];
    }DBGKD_WRITE_BREAKPOINT64, *PDBGKD_WRITE_BREAKPOINT64;
    typedef struct _DBGKD_WRITE_MEMORY32 {
    /*0x000*/     ULONG32      TargetBaseAddress;
    /*0x004*/     ULONG32      TransferCount;
    /*0x008*/     ULONG32      ActualBytesWritten;
    }DBGKD_WRITE_MEMORY32, *PDBGKD_WRITE_MEMORY32;
    typedef struct _DBGKD_WRITE_MEMORY64 {
    /*0x000*/     UINT64       TargetBaseAddress;
    /*0x008*/     ULONG32      TransferCount;
    /*0x00C*/     ULONG32      ActualBytesWritten;
    }DBGKD_WRITE_MEMORY64, *PDBGKD_WRITE_MEMORY64;
    typedef struct _DESCRIPTOR {
    /*0x000*/     UINT16       Pad;
    /*0x002*/     UINT16       Limit;
    /*0x004*/     ULONG32      Base;
    }DESCRIPTOR, *PDESCRIPTOR;
    typedef struct _DEVICE_CAPABILITIES {
    /*0x000*/     UINT16       Size;
    /*0x002*/     UINT16       Version;
                  struct
                  {
    /*0x004*/         ULONG32      DeviceD1 : 1;
    /*0x004*/         ULONG32      DeviceD2 : 1;
    /*0x004*/         ULONG32      LockSupported : 1;
    /*0x004*/         ULONG32      EjectSupported : 1;
    /*0x004*/         ULONG32      Removable : 1;
    /*0x004*/         ULONG32      DockDevice : 1;
    /*0x004*/         ULONG32      UniqueID : 1;
    /*0x004*/         ULONG32      SilentInstall : 1;
    /*0x004*/         ULONG32      RawDeviceOK : 1;
    /*0x004*/         ULONG32      SurpriseRemovalOK : 1;
    /*0x004*/         ULONG32      WakeFromD0 : 1;
    /*0x004*/         ULONG32      WakeFromD1 : 1;
    /*0x004*/         ULONG32      WakeFromD2 : 1;
    /*0x004*/         ULONG32      WakeFromD3 : 1;
    /*0x004*/         ULONG32      HardwareDisabled : 1;
    /*0x004*/         ULONG32      NonDynamic : 1;
    /*0x004*/         ULONG32      WarmEjectSupported : 1;
    /*0x004*/         ULONG32      NoDisplayInUI : 1;
    /*0x004*/         ULONG32      Reserved : 14;
                  };
    /*0x008*/     ULONG32      Address;
    /*0x00C*/     ULONG32      UINumber;
    /*0x010*/     enum _DEVICE_POWER_STATE DeviceState[7];
    /*0x02C*/     enum _SYSTEM_POWER_STATE SystemWake;
    /*0x030*/     enum _DEVICE_POWER_STATE DeviceWake;
    /*0x034*/     ULONG32      D1Latency;
    /*0x038*/     ULONG32      D2Latency;
    /*0x03C*/     ULONG32      D3Latency;
    }DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES;
    typedef struct _DEVICE_MAP {
    /*0x000*/     struct _OBJECT_DIRECTORY* DosDevicesDirectory;
    /*0x004*/     struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory;
    /*0x008*/     ULONG32      ReferenceCount;
    /*0x00C*/     ULONG32      DriveMap;
    /*0x010*/     UINT8        DriveType[32];
    }DEVICE_MAP, *PDEVICE_MAP;
    typedef struct _DEVICE_RELATIONS {
    /*0x000*/     ULONG32      Count;
    /*0x004*/     struct _DEVICE_OBJECT* Objects[1];
    }DEVICE_RELATIONS, *PDEVICE_RELATIONS;
    typedef struct _DEVOBJ_EXTENSION {
    /*0x000*/     INT16        Type;
    /*0x002*/     UINT16       Size;
    /*0x004*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x008*/     ULONG32      PowerFlags;
    /*0x00C*/     struct _DEVICE_OBJECT_POWER_EXTENSION* Dope;
    /*0x010*/     ULONG32      ExtensionFlags;
    /*0x014*/     VOID*        DeviceNode;
    /*0x018*/     struct _DEVICE_OBJECT* AttachedTo;
    /*0x01C*/     LONG32       StartIoCount;
    /*0x020*/     LONG32       StartIoKey;
    /*0x024*/     ULONG32      StartIoFlags;
    /*0x028*/     struct _VPB* Vpb;
    }DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION;
    typedef struct _EPROCESS_QUOTA_ENTRY {
    /*0x000*/     ULONG32      Usage;
    /*0x004*/     ULONG32      Limit;
    /*0x008*/     ULONG32      Peak;
    /*0x00C*/     ULONG32      Return;
    }EPROCESS_QUOTA_ENTRY, *PEPROCESS_QUOTA_ENTRY;
    typedef struct _EXCEPTION_POINTERS {
    /*0x000*/     struct _EXCEPTION_RECORD* ExceptionRecord;
    /*0x004*/     struct _CONTEXT* ContextRecord;
    }EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
    typedef struct _EXCEPTION_RECORD {
    /*0x000*/     LONG32       ExceptionCode;
    /*0x004*/     ULONG32      ExceptionFlags;
    /*0x008*/     struct _EXCEPTION_RECORD* ExceptionRecord;
    /*0x00C*/     VOID*        ExceptionAddress;
    /*0x010*/     ULONG32      NumberParameters;
    /*0x014*/     ULONG32      ExceptionInformation[15];
    }EXCEPTION_RECORD, *PEXCEPTION_RECORD;
    typedef struct _EXCEPTION_RECORD32 {
    /*0x000*/     LONG32       ExceptionCode;
    /*0x004*/     ULONG32      ExceptionFlags;
    /*0x008*/     ULONG32      ExceptionRecord;
    /*0x00C*/     ULONG32      ExceptionAddress;
    /*0x010*/     ULONG32      NumberParameters;
    /*0x014*/     ULONG32      ExceptionInformation[15];
    }EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
    typedef struct _EXCEPTION_RECORD64 {
    /*0x000*/     LONG32       ExceptionCode;
    /*0x004*/     ULONG32      ExceptionFlags;
    /*0x008*/     UINT64       ExceptionRecord;
    /*0x010*/     UINT64       ExceptionAddress;
    /*0x018*/     ULONG32      NumberParameters;
    /*0x01C*/     ULONG32      __unusedAlignment;
    /*0x020*/     UINT64       ExceptionInformation[15];
    }EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
    typedef struct _EXCEPTION_REGISTRATION_RECORD {
    /*0x000*/     struct _EXCEPTION_REGISTRATION_RECORD* Next;
    /*0x004*/     PVOID Handler;
    }EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
    typedef struct _EX_FAST_REF {
                  union
                  {
    /*0x000*/         VOID*        Object;
    /*0x000*/         ULONG32      RefCnt : 3;
    /*0x000*/         ULONG32      Value;
                  };
    }EX_FAST_REF, *PEX_FAST_REF;
    typedef struct _EX_PUSH_LOCK {
                  union
                  {
                      struct
                      {
    /*0x000*/             ULONG32      Waiting : 1;
    /*0x000*/             ULONG32      Exclusive : 1;
    /*0x000*/             ULONG32      Shared : 30;
                      };
    /*0x000*/         ULONG32      Value;
    /*0x000*/         VOID*        Ptr;
                  };
    }EX_PUSH_LOCK, *PEX_PUSH_LOCK;
    typedef struct _EX_PUSH_LOCK_CACHE_AWARE {
    /*0x000*/     struct _EX_PUSH_LOCK* Locks[1];
    }EX_PUSH_LOCK_CACHE_AWARE, *PEX_PUSH_LOCK_CACHE_AWARE;
    typedef struct _EX_RUNDOWN_REF {
                  union
                  {
    /*0x000*/         ULONG32      Count;
    /*0x000*/         VOID*        Ptr;
                  };
    }EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
    typedef struct _FAST_IO_DISPATCH {
    /*0x000*/     ULONG32      SizeOfFastIoDispatch;
    /*0x004*/     PVOID FastIoCheckIfPossible;
    /*0x008*/     PVOID FastIoRead;
    /*0x00C*/     PVOID FastIoWrite;
    /*0x010*/     PVOID FastIoQueryBasicInfo;
    /*0x014*/     PVOID FastIoQueryStandardInfo;
    /*0x018*/     PVOID FastIoLock;
    /*0x01C*/     PVOID FastIoUnlockSingle;
    /*0x020*/     PVOID FastIoUnlockAll;
    /*0x024*/     PVOID FastIoUnlockAllByKey;
    /*0x028*/     PVOID FastIoDeviceControl;
    /*0x02C*/     PVOID AcquireFileForNtCreateSection;
    /*0x030*/     PVOID ReleaseFileForNtCreateSection;
    /*0x034*/     PVOID FastIoDetachDevice;
    /*0x038*/     PVOID FastIoQueryNetworkOpenInfo;
    /*0x03C*/     PVOID AcquireForModWrite;
    /*0x040*/     PVOID MdlRead;
    /*0x044*/     PVOID MdlReadComplete;
    /*0x048*/     PVOID PrepareMdlWrite;
    /*0x04C*/     PVOID MdlWriteComplete;
    /*0x050*/     PVOID FastIoReadCompressed;
    /*0x054*/     PVOID FastIoWriteCompressed;
    /*0x058*/     PVOID MdlReadCompleteCompressed;
    /*0x05C*/     PVOID MdlWriteCompleteCompressed;
    /*0x060*/     PVOID FastIoQueryOpen;
    /*0x064*/     PVOID ReleaseForModWrite;
    /*0x068*/     PVOID AcquireForCcFlush;
    /*0x06C*/     PVOID ReleaseForCcFlush;
    }FAST_IO_DISPATCH, *PFAST_IO_DISPATCH;
    typedef struct _FILE_BASIC_INFORMATION {
    /*0x000*/     union _LARGE_INTEGER CreationTime;
    /*0x008*/     union _LARGE_INTEGER LastAccessTime;
    /*0x010*/     union _LARGE_INTEGER LastWriteTime;
    /*0x018*/     union _LARGE_INTEGER ChangeTime;
    /*0x020*/     ULONG32      FileAttributes;
    /*0x024*/     UINT8        _PADDING0_[0x4];
    }FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;
    typedef struct _FILE_NETWORK_OPEN_INFORMATION {
    /*0x000*/     union _LARGE_INTEGER CreationTime;
    /*0x008*/     union _LARGE_INTEGER LastAccessTime;
    /*0x010*/     union _LARGE_INTEGER LastWriteTime;
    /*0x018*/     union _LARGE_INTEGER ChangeTime;
    /*0x020*/     union _LARGE_INTEGER AllocationSize;
    /*0x028*/     union _LARGE_INTEGER EndOfFile;
    /*0x030*/     ULONG32      FileAttributes;
    /*0x034*/     UINT8        _PADDING0_[0x4];
    }FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION;
    typedef struct _FILE_STANDARD_INFORMATION {
    /*0x000*/     union _LARGE_INTEGER AllocationSize;
    /*0x008*/     union _LARGE_INTEGER EndOfFile;
    /*0x010*/     ULONG32      NumberOfLinks;
    /*0x014*/     UINT8        DeletePending;
    /*0x015*/     UINT8        Directory;
    /*0x016*/     UINT8        _PADDING0_[0x2];
    }FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION;
    typedef struct _flags {
    /*0x000*/     UINT8        Removable;
    }flags, *Pflags;
    typedef struct _FLOATING_SAVE_AREA {
    /*0x000*/     ULONG32      ControlWord;
    /*0x004*/     ULONG32      StatusWord;
    /*0x008*/     ULONG32      TagWord;
    /*0x00C*/     ULONG32      ErrorOffset;
    /*0x010*/     ULONG32      ErrorSelector;
    /*0x014*/     ULONG32      DataOffset;
    /*0x018*/     ULONG32      DataSelector;
    /*0x01C*/     UINT8        RegisterArea[80];
    /*0x06C*/     ULONG32      Cr0NpxState;
    }FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
    typedef struct _FNSAVE_FORMAT {
    /*0x000*/     ULONG32      ControlWord;
    /*0x004*/     ULONG32      StatusWord;
    /*0x008*/     ULONG32      TagWord;
    /*0x00C*/     ULONG32      ErrorOffset;
    /*0x010*/     ULONG32      ErrorSelector;
    /*0x014*/     ULONG32      DataOffset;
    /*0x018*/     ULONG32      DataSelector;
    /*0x01C*/     UINT8        RegisterArea[80];
    }FNSAVE_FORMAT, *PFNSAVE_FORMAT;
    typedef struct _FS_FILTER_CALLBACKS {
    /*0x000*/     ULONG32      SizeOfFsFilterCallbacks;
    /*0x004*/     ULONG32      Reserved;
    /*0x008*/     PVOID PreAcquireForSectionSynchronization;
    /*0x00C*/     PVOID PostAcquireForSectionSynchronization;
    /*0x010*/     PVOID PreReleaseForSectionSynchronization;
    /*0x014*/     PVOID PostReleaseForSectionSynchronization;
    /*0x018*/     PVOID PreAcquireForCcFlush;
    /*0x01C*/     PVOID PostAcquireForCcFlush;
    /*0x020*/     PVOID PreReleaseForCcFlush;
    /*0x024*/     PVOID PostReleaseForCcFlush;
    /*0x028*/     PVOID PreAcquireForModifiedPageWriter;
    /*0x02C*/     PVOID PostAcquireForModifiedPageWriter;
    /*0x030*/     PVOID PreReleaseForModifiedPageWriter;
    /*0x034*/     PVOID PostReleaseForModifiedPageWriter;
    }FS_FILTER_CALLBACKS, *PFS_FILTER_CALLBACKS;
    //Add by health_163@163.com, refer tohttp://ddk.h16.ru/index.php?BID=4&PID=204
    typedef union _FS_FILTER_PARAMETERS {
        struct {
          union _LARGE_INTEGER* EndingOffset;
        } AcquireForModifiedPageWriter;
        struct {
            struct _ERESOURCE* ResourceToRelease;
        } ReleaseForModifiedPageWriter;
        struct {
            enum _FS_FILTER_SECTION_SYNC_TYPE SyncType;
            ULONG PageProtection;
        } AcquireForSectionSynchronization;
        struct {
            PVOID Argument1;
            PVOID Argument2;
            PVOID Argument3;
            PVOID Argument4;
            PVOID Argument5;
        } Others;
    } FS_FILTER_PARAMETERS, *PFS_FILTER_PARAMETERS;
    typedef struct _FS_FILTER_CALLBACK_DATA {
    /*0x000*/     ULONG32      SizeOfFsFilterCallbackData;
    /*0x004*/     UINT8        Operation;
    /*0x005*/     UINT8        Reserved;
    /*0x006*/     UINT8        _PADDING0_[0x2];
    /*0x008*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x00C*/     struct _FILE_OBJECT* FileObject;
    /*0x010*/     union _FS_FILTER_PARAMETERS Parameters;
    }FS_FILTER_CALLBACK_DATA, *PFS_FILTER_CALLBACK_DATA;
    typedef struct _FXSAVE_FORMAT {
    /*0x000*/     UINT16       ControlWord;
    /*0x002*/     UINT16       StatusWord;
    /*0x004*/     UINT16       TagWord;
    /*0x006*/     UINT16       ErrorOpcode;
    /*0x008*/     ULONG32      ErrorOffset;
    /*0x00C*/     ULONG32      ErrorSelector;
    /*0x010*/     ULONG32      DataOffset;
    /*0x014*/     ULONG32      DataSelector;
    /*0x018*/     ULONG32      MXCsr;
    /*0x01C*/     ULONG32      MXCsrMask;
    /*0x020*/     UINT8        RegisterArea[128];
    /*0x0A0*/     UINT8        Reserved3[128];
    /*0x120*/     UINT8        Reserved4[224];
    /*0x200*/     UINT8        Align16Byte[8];
    }FXSAVE_FORMAT, *PFXSAVE_FORMAT;
    typedef struct _GDI_TEB_BATCH {
    /*0x000*/     ULONG32      Offset;
    /*0x004*/     ULONG32      HDC;
    /*0x008*/     ULONG32      Buffer[310];
    }GDI_TEB_BATCH, *PGDI_TEB_BATCH;
    typedef struct _GENERIC_MAPPING {
    /*0x000*/     ULONG32      GenericRead;
    /*0x004*/     ULONG32      GenericWrite;
    /*0x008*/     ULONG32      GenericExecute;
    /*0x00C*/     ULONG32      GenericAll;
    }GENERIC_MAPPING, *PGENERIC_MAPPING;
    typedef struct _GUID {
    /*0x000*/     ULONG32      Data1;
    /*0x004*/     UINT16       Data2;
    /*0x006*/     UINT16       Data3;
    /*0x008*/     UINT8        Data4[8];
    }GUID, *PGUID;
    typedef struct _HANDLE_TABLE_ENTRY {
                  union
                  {
    /*0x000*/         VOID*        Object;
    /*0x000*/         ULONG32      ObAttributes;
    /*0x000*/         struct _HANDLE_TABLE_ENTRY_INFO* InfoTable;
    /*0x000*/         ULONG32      Value;
                  };
                  union
                  {
    /*0x004*/         ULONG32      GrantedAccess;
                      struct
                      {
    /*0x004*/             UINT16       GrantedAccessIndex;
    /*0x006*/             UINT16       CreatorBackTraceIndex;
                      };
    /*0x004*/         LONG32       NextFreeTableEntry;
                  };
    }HANDLE_TABLE_ENTRY, *PHANDLE_TABLE_ENTRY;
    typedef struct _HANDLE_TABLE_ENTRY_INFO {
    /*0x000*/     ULONG32      AuditMask;
    }HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO;
    typedef struct _HARDWARE_PTE {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      Write : 1;
    /*0x000*/     ULONG32      Owner : 1;
    /*0x000*/     ULONG32      WriteThrough : 1;
    /*0x000*/     ULONG32      CacheDisable : 1;
    /*0x000*/     ULONG32      Accessed : 1;
    /*0x000*/     ULONG32      Dirty : 1;
    /*0x000*/     ULONG32      LargePage : 1;
    /*0x000*/     ULONG32      Global : 1;
    /*0x000*/     ULONG32      CopyOnWrite : 1;
    /*0x000*/     ULONG32      Prototype : 1;
    /*0x000*/     ULONG32      reserved : 1;
    /*0x000*/     ULONG32      PageFrameNumber : 20;
    }HARDWARE_PTE, *PHARDWARE_PTE;
    typedef struct _HBASE_BLOCK {
    /*0x000*/     ULONG32      Signature;
    /*0x004*/     ULONG32      Sequence1;
    /*0x008*/     ULONG32      Sequence2;
    /*0x00C*/     union _LARGE_INTEGER TimeStamp;
    /*0x014*/     ULONG32      Major;
    /*0x018*/     ULONG32      Minor;
    /*0x01C*/     ULONG32      Type;
    /*0x020*/     ULONG32      Format;
    /*0x024*/     ULONG32      RootCell;
    /*0x028*/     ULONG32      Length;
    /*0x02C*/     ULONG32      Cluster;
    /*0x030*/     UINT8        FileName[64];
    /*0x070*/     ULONG32      Reserved1[99];
    /*0x1FC*/     ULONG32      CheckSum;
    /*0x200*/     ULONG32      Reserved2[894];
    /*0xFF8*/     ULONG32      BootType;
    /*0xFFC*/     ULONG32      BootRecover;
    }HBASE_BLOCK, *PHBASE_BLOCK;
    typedef struct _HEAP_ENTRY {
                  union
                  {
                      struct
                      {
    /*0x000*/             UINT16       Size;
    /*0x002*/             UINT16       PreviousSize;
                      };
    /*0x000*/         VOID*        SubSegmentCode;
                  };
    /*0x004*/     UINT8        SmallTagIndex;
    /*0x005*/     UINT8        Flags;
    /*0x006*/     UINT8        UnusedBytes;
    /*0x007*/     UINT8        SegmentIndex;
    }HEAP_ENTRY, *PHEAP_ENTRY;
    typedef struct _HEAP_ENTRY_EXTRA {
                  union
                  {
                      struct
                      {
    /*0x000*/             UINT16       AllocatorBackTraceIndex;
    /*0x002*/             UINT16       TagIndex;
    /*0x004*/             ULONG32      Settable;
                      };
    /*0x000*/         UINT64       ZeroInit;
                  };
    }HEAP_ENTRY_EXTRA, *PHEAP_ENTRY_EXTRA;
    typedef struct _HEAP_FREE_ENTRY_EXTRA {
    /*0x000*/     UINT16       TagIndex;
    /*0x002*/     UINT16       FreeBackTraceIndex;
    }HEAP_FREE_ENTRY_EXTRA, *PHEAP_FREE_ENTRY_EXTRA;
    typedef struct _HEAP_LOOKASIDE {
    /*0x000*/     union _SLIST_HEADER ListHead;
    /*0x008*/     UINT16       Depth;
    /*0x00A*/     UINT16       MaximumDepth;
    /*0x00C*/     ULONG32      TotalAllocates;
    /*0x010*/     ULONG32      AllocateMisses;
    /*0x014*/     ULONG32      TotalFrees;
    /*0x018*/     ULONG32      FreeMisses;
    /*0x01C*/     ULONG32      LastTotalAllocates;
    /*0x020*/     ULONG32      LastAllocateMisses;
    /*0x024*/     ULONG32      Counters[2];
    /*0x02C*/     UINT8        _PADDING0_[0x4];
    }HEAP_LOOKASIDE, *PHEAP_LOOKASIDE;
    typedef struct _HEAP_PSEUDO_TAG_ENTRY {
    /*0x000*/     ULONG32      Allocs;
    /*0x004*/     ULONG32      Frees;
    /*0x008*/     ULONG32      Size;
    }HEAP_PSEUDO_TAG_ENTRY, *PHEAP_PSEUDO_TAG_ENTRY;
    typedef struct _HEAP_STOP_ON_TAG {
                  union
                  {
    /*0x000*/         ULONG32      HeapAndTagIndex;
                      struct
                      {
    /*0x000*/             UINT16       TagIndex;
    /*0x002*/             UINT16       HeapIndex;
                      };
                  };
    }HEAP_STOP_ON_TAG, *PHEAP_STOP_ON_TAG;
    typedef struct _HEAP_TAG_ENTRY {
    /*0x000*/     ULONG32      Allocs;
    /*0x004*/     ULONG32      Frees;
    /*0x008*/     ULONG32      Size;
    /*0x00C*/     UINT16       TagIndex;
    /*0x00E*/     UINT16       CreatorBackTraceIndex;
    /*0x010*/     UINT16       TagName[24];
    }HEAP_TAG_ENTRY, *PHEAP_TAG_ENTRY;
    typedef struct _HEAP_UCR_SEGMENT {
    /*0x000*/     struct _HEAP_UCR_SEGMENT* Next;
    /*0x004*/     ULONG32      ReservedSize;
    /*0x008*/     ULONG32      CommittedSize;
    /*0x00C*/     ULONG32      filler;
    }HEAP_UCR_SEGMENT, *PHEAP_UCR_SEGMENT;
    typedef struct _HEAP_UNCOMMMTTED_RANGE {
    /*0x000*/     struct _HEAP_UNCOMMMTTED_RANGE* Next;
    /*0x004*/     ULONG32      Address;
    /*0x008*/     ULONG32      Size;
    /*0x00C*/     ULONG32      filler;
    }HEAP_UNCOMMMTTED_RANGE, *PHEAP_UNCOMMMTTED_RANGE;
    typedef struct _HIVE_LIST_ENTRY {
    /*0x000*/     UINT16*      Name;
    /*0x004*/     UINT16*      BaseName;
    /*0x008*/     struct _CMHIVE* CmHive;
    /*0x00C*/     ULONG32      Flags;
    /*0x010*/     struct _CMHIVE* CmHive2;
    /*0x014*/     UINT8        ThreadFinished;
    /*0x015*/     UINT8        ThreadStarted;
    /*0x016*/     UINT8        Allocate;
    /*0x017*/     UINT8        _PADDING0_[0x1];
    }HIVE_LIST_ENTRY, *PHIVE_LIST_ENTRY;
    typedef struct _HMAP_DIRECTORY {
    /*0x000*/     struct _HMAP_TABLE* Directory[1024];
    }HMAP_DIRECTORY, *PHMAP_DIRECTORY;
    typedef struct _HMAP_ENTRY {
    /*0x000*/     ULONG32      BlockAddress;
    /*0x004*/     ULONG32      BinAddress;
    /*0x008*/     struct _CM_VIEW_OF_FILE* CmView;
    /*0x00C*/     ULONG32      MemAlloc;
    }HMAP_ENTRY, *PHMAP_ENTRY;
    typedef struct _IA64_DBGKD_CONTROL_SET {
    /*0x000*/     ULONG32      Continue;
    /*0x004*/     UINT64       CurrentSymbolStart;
    /*0x00C*/     UINT64       CurrentSymbolEnd;
    }IA64_DBGKD_CONTROL_SET, *PIA64_DBGKD_CONTROL_SET;
    typedef struct _IMAGE_DATA_DIRECTORY {
    /*0x000*/     ULONG32      VirtualAddress;
    /*0x004*/     ULONG32      Size;
    }IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
    typedef struct _IMAGE_DEBUG_DIRECTORY {
    /*0x000*/     ULONG32      Characteristics;
    /*0x004*/     ULONG32      TimeDateStamp;
    /*0x008*/     UINT16       MajorVersion;
    /*0x00A*/     UINT16       MinorVersion;
    /*0x00C*/     ULONG32      Type;
    /*0x010*/     ULONG32      SizeOfData;
    /*0x014*/     ULONG32      AddressOfRawData;
    /*0x018*/     ULONG32      PointerToRawData;
    }IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
    typedef struct _IMAGE_DOS_HEADER {
    /*0x000*/     UINT16       e_magic;
    /*0x002*/     UINT16       e_cblp;
    /*0x004*/     UINT16       e_cp;
    /*0x006*/     UINT16       e_crlc;
    /*0x008*/     UINT16       e_cparhdr;
    /*0x00A*/     UINT16       e_minalloc;
    /*0x00C*/     UINT16       e_maxalloc;
    /*0x00E*/     UINT16       e_ss;
    /*0x010*/     UINT16       e_sp;
    /*0x012*/     UINT16       e_csum;
    /*0x014*/     UINT16       e_ip;
    /*0x016*/     UINT16       e_cs;
    /*0x018*/     UINT16       e_lfarlc;
    /*0x01A*/     UINT16       e_ovno;
    /*0x01C*/     UINT16       e_res[4];
    /*0x024*/     UINT16       e_oemid;
    /*0x026*/     UINT16       e_oeminfo;
    /*0x028*/     UINT16       e_res2[10];
    /*0x03C*/     LONG32       e_lfanew;
    }IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
    typedef struct _IMAGE_FILE_HEADER {
    /*0x000*/     UINT16       Machine;
    /*0x002*/     UINT16       NumberOfSections;
    /*0x004*/     ULONG32      TimeDateStamp;
    /*0x008*/     ULONG32      PointerToSymbolTable;
    /*0x00C*/     ULONG32      NumberOfSymbols;
    /*0x010*/     UINT16       SizeOfOptionalHeader;
    /*0x012*/     UINT16       Characteristics;
    }IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
    typedef struct _IMAGE_ROM_OPTIONAL_HEADER {
    /*0x000*/     UINT16       Magic;
    /*0x002*/     UINT8        MajorLinkerVersion;
    /*0x003*/     UINT8        MinorLinkerVersion;
    /*0x004*/     ULONG32      SizeOfCode;
    /*0x008*/     ULONG32      SizeOfInitializedData;
    /*0x00C*/     ULONG32      SizeOfUninitializedData;
    /*0x010*/     ULONG32      AddressOfEntryPoint;
    /*0x014*/     ULONG32      BaseOfCode;
    /*0x018*/     ULONG32      BaseOfData;
    /*0x01C*/     ULONG32      BaseOfBss;
    /*0x020*/     ULONG32      GprMask;
    /*0x024*/     ULONG32      CprMask[4];
    /*0x034*/     ULONG32      GpValue;
    }IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER;
    typedef struct _IMAGE_SECTION_HEADER {
    /*0x000*/     UINT8        Name[8];
                  union
                  {
    /*0x008*/         ULONG32      PhysicalAddress;
    /*0x008*/         ULONG32      VirtualSize;
                  }Misc;
    /*0x00C*/     ULONG32      VirtualAddress;
    /*0x010*/     ULONG32      SizeOfRawData;
    /*0x014*/     ULONG32      PointerToRawData;
    /*0x018*/     ULONG32      PointerToRelocations;
    /*0x01C*/     ULONG32      PointerToLinenumbers;
    /*0x020*/     UINT16       NumberOfRelocations;
    /*0x022*/     UINT16       NumberOfLinenumbers;
    /*0x024*/     ULONG32      Characteristics;
    }IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
    typedef struct _INTERFACE {
    /*0x000*/     UINT16       Size;
    /*0x002*/     UINT16       Version;
    /*0x004*/     VOID*        Context;
    /*0x008*/     PVOID InterfaceReference;
    /*0x00C*/     PVOID InterfaceDereference;
    }INTERFACE, *PINTERFACE;
    typedef struct _INTERLOCK_SEQ {
                  union
                  {
                      struct
                      {
    /*0x000*/             UINT16       Depth;
    /*0x002*/             UINT16       FreeEntryOffset;
    /*0x004*/             UINT8        _PADDING0_[0x4];
                      };
                      struct
                      {
    /*0x000*/             ULONG32      OffsetAndDepth;
    /*0x004*/             ULONG32      Sequence;
                      };
    /*0x000*/         INT64        Exchg;
                  };
    }INTERLOCK_SEQ, *PINTERLOCK_SEQ;
    typedef struct _IO_CLIENT_EXTENSION {
    /*0x000*/     struct _IO_CLIENT_EXTENSION* NextExtension;
    /*0x004*/     VOID*        ClientIdentificationAddress;
    }IO_CLIENT_EXTENSION, *PIO_CLIENT_EXTENSION;
    typedef struct _IO_COMPLETION_CONTEXT {
    /*0x000*/     VOID*        Port;
    /*0x004*/     VOID*        Key;
    }IO_COMPLETION_CONTEXT, *PIO_COMPLETION_CONTEXT;
    typedef struct _IO_COUNTERS {
    /*0x000*/     UINT64       ReadOperationCount;
    /*0x008*/     UINT64       WriteOperationCount;
    /*0x010*/     UINT64       OtherOperationCount;
    /*0x018*/     UINT64       ReadTransferCount;
    /*0x020*/     UINT64       WriteTransferCount;
    /*0x028*/     UINT64       OtherTransferCount;
    }IO_COUNTERS, *PIO_COUNTERS;
    typedef struct _IO_RESOURCE_DESCRIPTOR {
    /*0x000*/     UINT8        Option;
    /*0x001*/     UINT8        Type;
    /*0x002*/     UINT8        ShareDisposition;
    /*0x003*/     UINT8        Spare1;
    /*0x004*/     UINT16       Flags;
    /*0x006*/     UINT16       Spare2;
                  union
                  {
                      struct
                      {
    /*0x008*/             ULONG32      Length;
    /*0x00C*/             ULONG32      Alignment;
    /*0x010*/             union _LARGE_INTEGER MinimumAddress;
    /*0x018*/             union _LARGE_INTEGER MaximumAddress;
                      }Port;
                      struct
                      {
    /*0x008*/             ULONG32      Length;
    /*0x00C*/             ULONG32      Alignment;
    /*0x010*/             union _LARGE_INTEGER MinimumAddress;
    /*0x018*/             union _LARGE_INTEGER MaximumAddress;
                      }Memory;
                      struct
                      {
    /*0x008*/             ULONG32      MinimumVector;
    /*0x00C*/             ULONG32      MaximumVector;
                      }Interrupt;
                      struct
                      {
    /*0x008*/             ULONG32      MinimumChannel;
    /*0x00C*/             ULONG32      MaximumChannel;
                      }Dma;
                      struct
                      {
    /*0x008*/             ULONG32      Length;
    /*0x00C*/             ULONG32      Alignment;
    /*0x010*/             union _LARGE_INTEGER MinimumAddress;
    /*0x018*/             union _LARGE_INTEGER MaximumAddress;
                      }Generic;
                      struct
                      {
    /*0x008*/             ULONG32      Data[3];
                      }DevicePrivate;
                      struct
                      {
    /*0x008*/             ULONG32      Length;
    /*0x00C*/             ULONG32      MinBusNumber;
    /*0x010*/             ULONG32      MaxBusNumber;
    /*0x014*/             ULONG32      Reserved;
                      }BusNumber;
                      struct
                      {
    /*0x008*/             ULONG32      Priority;
    /*0x00C*/             ULONG32      Reserved1;
    /*0x010*/             ULONG32      Reserved2;
                      }ConfigData;
                  }u;
    }IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;
    typedef struct _IO_SECURITY_CONTEXT {
    /*0x000*/     struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos;
    /*0x004*/     struct _ACCESS_STATE* AccessState;
    /*0x008*/     ULONG32      DesiredAccess;
    /*0x00C*/     ULONG32      FullCreateOptions;
    }IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT;

    //Add by health_163@163.com, refer tohttp://msdn.microsoft.com/en-us/library/ff559842(v=vs.85).aspx
    typedef union _POWER_STATE {
        SYSTEM_POWER_STATE SystemState;
        DEVICE_POWER_STATE DeviceState;
    }POWER_STATE, *PPOWER_STATE;

    typedef struct _IO_STACK_LOCATION {
    /*0x000*/     UINT8        MajorFunction;
    /*0x001*/     UINT8        MinorFunction;
    /*0x002*/     UINT8        Flags;
    /*0x003*/     UINT8        Control;
                  union
                  {
                      struct
                      {
    /*0x004*/             struct _IO_SECURITY_CONTEXT* SecurityContext;
    /*0x008*/             ULONG32      Options;
    /*0x00C*/             UINT16       FileAttributes;
    /*0x00E*/             UINT16       ShareAccess;
    /*0x010*/             ULONG32      EaLength;
                      }Create;
                      struct
                      {
    /*0x004*/             struct _IO_SECURITY_CONTEXT* SecurityContext;
    /*0x008*/             ULONG32      Options;
    /*0x00C*/             UINT16       Reserved;
    /*0x00E*/             UINT16       ShareAccess;
    /*0x010*/             struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters;
                      }CreatePipe;
                      struct
                      {
    /*0x004*/             struct _IO_SECURITY_CONTEXT* SecurityContext;
    /*0x008*/             ULONG32      Options;
    /*0x00C*/             UINT16       Reserved;
    /*0x00E*/             UINT16       ShareAccess;
    /*0x010*/             struct _MAILSLOT_CREATE_PARAMETERS* Parameters;
                      }CreateMailslot;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             ULONG32      Key;
    /*0x00C*/             union _LARGE_INTEGER ByteOffset;
                      }Read;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             ULONG32      Key;
    /*0x00C*/             union _LARGE_INTEGER ByteOffset;
                      }Write;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             struct _STRING* FileName;
    /*0x00C*/             enum _FILE_INFORMATION_CLASS FileInformationClass;
    /*0x010*/             ULONG32      FileIndex;
                      }QueryDirectory;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             ULONG32      CompletionFilter;
                      }NotifyDirectory;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             enum _FILE_INFORMATION_CLASS FileInformationClass;
                      }QueryFile;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             enum _FILE_INFORMATION_CLASS FileInformationClass;
    /*0x00C*/             struct _FILE_OBJECT* FileObject;
                          union
                          {
                              struct
                              {
    /*0x010*/                     UINT8        ReplaceIfExists;
    /*0x011*/                     UINT8        AdvanceOnly;
    /*0x012*/                     UINT8        _PADDING0_[0x2];
                              };
    /*0x010*/                 ULONG32      ClusterCount;
    /*0x010*/                 VOID*        DeleteHandle;
                          };
                      }SetFile;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             VOID*        EaList;
    /*0x00C*/             ULONG32      EaListLength;
    /*0x010*/             ULONG32      EaIndex;
                      }QueryEa;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
                      }SetEa;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             enum _FSINFOCLASS FsInformationClass;
                      }QueryVolume;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             enum _FSINFOCLASS FsInformationClass;
                      }SetVolume;
                      struct
                      {
    /*0x004*/             ULONG32      OutputBufferLength;
    /*0x008*/             ULONG32      InputBufferLength;
    /*0x00C*/             ULONG32      FsControlCode;
    /*0x010*/             VOID*        Type3InputBuffer;
                      }FileSystemControl;
                      struct
                      {
    /*0x004*/             union _LARGE_INTEGER* Length;
    /*0x008*/             ULONG32      Key;
    /*0x00C*/             union _LARGE_INTEGER ByteOffset;
                      }LockControl;
                      struct
                      {
    /*0x004*/             ULONG32      OutputBufferLength;
    /*0x008*/             ULONG32      InputBufferLength;
    /*0x00C*/             ULONG32      IoControlCode;
    /*0x010*/             VOID*        Type3InputBuffer;
                      }DeviceIoControl;
                      struct
                      {
    /*0x004*/             ULONG32      SecurityInformation;
    /*0x008*/             ULONG32      Length;
                      }QuerySecurity;
                      struct
                      {
    /*0x004*/             ULONG32      SecurityInformation;
    /*0x008*/             VOID*        SecurityDescriptor;
                      }SetSecurity;
                      struct
                      {
    /*0x004*/             struct _VPB* Vpb;
    /*0x008*/             struct _DEVICE_OBJECT* DeviceObject;
                      }MountVolume;
                      struct
                      {
    /*0x004*/             struct _VPB* Vpb;
    /*0x008*/             struct _DEVICE_OBJECT* DeviceObject;
                      }VerifyVolume;
                      struct
                      {
    /*0x004*/             struct _SCSI_REQUEST_BLOCK* Srb;
                      }Scsi;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
    /*0x008*/             VOID*        StartSid;
    /*0x00C*/             struct _FILE_GET_QUOTA_INFORMATION* SidList;
    /*0x010*/             ULONG32      SidListLength;
                      }QueryQuota;
                      struct
                      {
    /*0x004*/             ULONG32      Length;
                      }SetQuota;
                      struct
                      {
    /*0x004*/             enum _DEVICE_RELATION_TYPE Type;
                      }QueryDeviceRelations;
                      struct
                      {
    /*0x004*/             struct _GUID* InterfaceType;
    /*0x008*/             UINT16       Size;
    /*0x00A*/             UINT16       Version;
    /*0x00C*/             struct _INTERFACE* Interface;
    /*0x010*/             VOID*        InterfaceSpecificData;
                      }QueryInterface;
                      struct
                      {
    /*0x004*/             struct _DEVICE_CAPABILITIES* Capabilities;
                      }DeviceCapabilities;
                      struct
                      {
    /*0x004*/             struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList;
                      }FilterResourceRequirements;
                      struct
                      {
    /*0x004*/             ULONG32      WhichSpace;
    /*0x008*/             VOID*        Buffer;
    /*0x00C*/             ULONG32      Offset;
    /*0x010*/             ULONG32      Length;
                      }ReadWriteConfig;
                      struct
                      {
    /*0x004*/             UINT8        Lock;
                      }SetLock;
                      struct
                      {
    /*0x004*/             enum _BUS_QUERY_ID_TYPE IdType;
                      }QueryId;
                      struct
                      {
    /*0x004*/             enum _DEVICE_TEXT_TYPE DeviceTextType;
    /*0x008*/             ULONG32      LocaleId;
                      }QueryDeviceText;
                      struct
                      {
    /*0x004*/             UINT8        InPath;
    /*0x005*/             UINT8        Reserved[3];
    /*0x008*/             enum _DEVICE_USAGE_NOTIFICATION_TYPE Type;
                      }UsageNotification;
                      struct
                      {
    /*0x004*/             enum _SYSTEM_POWER_STATE PowerState;
                      }WaitWake;
                      struct
                      {
    /*0x004*/             struct _POWER_SEQUENCE* PowerSequence;
                      }PowerSequence;
                      struct
                      {
    /*0x004*/             ULONG32      SystemContext;
    /*0x008*/             enum _POWER_STATE_TYPE Type;
    /*0x00C*/             union _POWER_STATE State;
    /*0x010*/             enum _POWER_ACTION ShutdownType;
                      }Power;
                      struct
                      {
    /*0x004*/             struct _CM_RESOURCE_LIST* AllocatedResources;
    /*0x008*/             struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated;
                      }StartDevice;
                      struct
                      {
    /*0x004*/             ULONG32      ProviderId;
    /*0x008*/             VOID*        DataPath;
    /*0x00C*/             ULONG32      BufferSize;
    /*0x010*/             VOID*        Buffer;
                      }WMI;
                      struct
                      {
    /*0x004*/             VOID*        Argument1;
    /*0x008*/             VOID*        Argument2;
    /*0x00C*/             VOID*        Argument3;
    /*0x010*/             VOID*        Argument4;
                      }Others;
                  }Parameters;
    /*0x014*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x018*/     struct _FILE_OBJECT* FileObject;
    /*0x01C*/     PVOID CompletionRoutine;
    /*0x020*/     VOID*        Context;
    }IO_STACK_LOCATION, *PIO_STACK_LOCATION;
    typedef struct _IO_STATUS_BLOCK {
                  union
                  {
    /*0x000*/         LONG32       Status;
    /*0x000*/         VOID*        Pointer;
                  };
    /*0x004*/     ULONG32      Information;
    }IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
    typedef struct _KEXECUTE_OPTIONS {
    /*0x000*/     UINT8        ExecuteDisable : 1;
    /*0x000*/     UINT8        ExecuteEnable : 1;
    /*0x000*/     UINT8        DisableThunkEmulation : 1;
    /*0x000*/     UINT8        Permanent : 1;
    /*0x000*/     UINT8        ExecuteDispatchEnable : 1;
    /*0x000*/     UINT8        ImageDispatchEnable : 1;
    /*0x000*/     UINT8        Spare : 2;
    }KEXECUTE_OPTIONS, *PKEXECUTE_OPTIONS;
    typedef struct _KGDTENTRY {
    /*0x000*/     UINT16       LimitLow;
    /*0x002*/     UINT16       BaseLow;
                  union
                  {
                      struct
                      {
    /*0x004*/             UINT8        BaseMid;
    /*0x005*/             UINT8        Flags1;
    /*0x006*/             UINT8        Flags2;
    /*0x007*/             UINT8        BaseHi;
                      }Bytes;
                      struct
                      {
    /*0x004*/             ULONG32      BaseMid : 8;
    /*0x004*/             ULONG32      Type : 5;
    /*0x004*/             ULONG32      Dpl : 2;
    /*0x004*/             ULONG32      Pres : 1;
    /*0x004*/             ULONG32      LimitHi : 4;
    /*0x004*/             ULONG32      Sys : 1;
    /*0x004*/             ULONG32      Reserved_0 : 1;
    /*0x004*/             ULONG32      Default_Big : 1;
    /*0x004*/             ULONG32      Granularity : 1;
    /*0x004*/             ULONG32      BaseHi : 8;
                      }Bits;
                  }HighWord;
    }KGDTENTRY, *PKGDTENTRY;
    typedef struct _KIDTENTRY {
    /*0x000*/     UINT16       Offset;
    /*0x002*/     UINT16       Selector;
    /*0x004*/     UINT16       Access;
    /*0x006*/     UINT16       ExtendedOffset;
    }KIDTENTRY, *PKIDTENTRY;
    typedef struct _KiIoAccessMap {
    /*0x000*/     UINT8        DirectionMap[32];
    /*0x020*/     UINT8        IoMap[8196];
    }KiIoAccessMap, *PKiIoAccessMap;
    typedef struct _KSPIN_LOCK_QUEUE {
    /*0x000*/     struct _KSPIN_LOCK_QUEUE* Next;
    /*0x004*/     ULONG32*     Lock;
    }KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
    typedef struct _KSYSTEM_TIME {
    /*0x000*/     ULONG32      LowPart;
    /*0x004*/     LONG32       High1Time;
    /*0x008*/     LONG32       High2Time;
    }KSYSTEM_TIME, *PKSYSTEM_TIME;
    typedef struct _KTRAP_FRAME {
    /*0x000*/     ULONG32      DbgEbp;
    /*0x004*/     ULONG32      DbgEip;
    /*0x008*/     ULONG32      DbgArgMark;
    /*0x00C*/     ULONG32      DbgArgPointer;
    /*0x010*/     ULONG32      TempSegCs;
    /*0x014*/     ULONG32      TempEsp;
    /*0x018*/     ULONG32      Dr0;
    /*0x01C*/     ULONG32      Dr1;
    /*0x020*/     ULONG32      Dr2;
    /*0x024*/     ULONG32      Dr3;
    /*0x028*/     ULONG32      Dr6;
    /*0x02C*/     ULONG32      Dr7;
    /*0x030*/     ULONG32      SegGs;
    /*0x034*/     ULONG32      SegEs;
    /*0x038*/     ULONG32      SegDs;
    /*0x03C*/     ULONG32      Edx;
    /*0x040*/     ULONG32      Ecx;
    /*0x044*/     ULONG32      Eax;
    /*0x048*/     ULONG32      PreviousPreviousMode;
    /*0x04C*/     struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList;
    /*0x050*/     ULONG32      SegFs;
    /*0x054*/     ULONG32      Edi;
    /*0x058*/     ULONG32      Esi;
    /*0x05C*/     ULONG32      Ebx;
    /*0x060*/     ULONG32      Ebp;
    /*0x064*/     ULONG32      ErrCode;
    /*0x068*/     ULONG32      Eip;
    /*0x06C*/     ULONG32      SegCs;
    /*0x070*/     ULONG32      EFlags;
    /*0x074*/     ULONG32      HardwareEsp;
    /*0x078*/     ULONG32      HardwareSegSs;
    /*0x07C*/     ULONG32      V86Es;
    /*0x080*/     ULONG32      V86Ds;
    /*0x084*/     ULONG32      V86Fs;
    /*0x088*/     ULONG32      V86Gs;
    }KTRAP_FRAME, *PKTRAP_FRAME;
    typedef struct _LIST_ENTRY {
    /*0x000*/     struct _LIST_ENTRY* Flink;
    /*0x004*/     struct _LIST_ENTRY* Blink;
    }LIST_ENTRY, *PLIST_ENTRY;
    typedef struct _LIST_ENTRY32 {
    /*0x000*/     ULONG32      Flink;
    /*0x004*/     ULONG32      Blink;
    }LIST_ENTRY32, *PLIST_ENTRY32;
    typedef struct _LIST_ENTRY64 {
    /*0x000*/     UINT64       Flink;
    /*0x008*/     UINT64       Blink;
    }LIST_ENTRY64, *PLIST_ENTRY64;
    typedef struct _MAILSLOT_CREATE_PARAMETERS {
    /*0x000*/     ULONG32      MailslotQuota;
    /*0x004*/     ULONG32      MaximumMessageSize;
    /*0x008*/     union _LARGE_INTEGER ReadTimeout;
    /*0x010*/     UINT8        TimeoutSpecified;
    /*0x011*/     UINT8        _PADDING0_[0x7];
    }MAILSLOT_CREATE_PARAMETERS, *PMAILSLOT_CREATE_PARAMETERS;
    typedef struct _MDL {
    /*0x000*/     struct _MDL* Next;
    /*0x004*/     INT16        Size;
    /*0x006*/     INT16        MdlFlags;
    /*0x008*/     struct _EPROCESS* Process;
    /*0x00C*/     VOID*        MappedSystemVa;
    /*0x010*/     VOID*        StartVa;
    /*0x014*/     ULONG32      ByteCount;
    /*0x018*/     ULONG32      ByteOffset;
    }MDL, *PMDL;
    typedef struct _MI_VERIFIER_POOL_HEADER {
    /*0x000*/     ULONG32      ListIndex;
    /*0x004*/     struct _MI_VERIFIER_DRIVER_ENTRY* Verifier;
    }MI_VERIFIER_POOL_HEADER, *PMI_VERIFIER_POOL_HEADER;
    typedef struct _MMADDRESS_LIST {
    /*0x000*/     ULONG32      StartVpn;
    /*0x004*/     ULONG32      EndVpn;
    }MMADDRESS_LIST, *PMMADDRESS_LIST;
    typedef struct _MMCOLOR_TABLES {
    /*0x000*/     ULONG32      Flink;
    /*0x004*/     VOID*        Blink;
    /*0x008*/     ULONG32      Count;
    }MMCOLOR_TABLES, *PMMCOLOR_TABLES;
    typedef struct _MMEXTEND_INFO {
    /*0x000*/     UINT64       CommittedSize;
    /*0x008*/     ULONG32      ReferenceCount;
    /*0x00C*/     UINT8        _PADDING0_[0x4];
    }MMEXTEND_INFO, *PMMEXTEND_INFO;
    typedef struct _MMPFNENTRY {
    /*0x000*/     ULONG32      Modified : 1;
    /*0x000*/     ULONG32      ReadInProgress : 1;
    /*0x000*/     ULONG32      WriteInProgress : 1;
    /*0x000*/     ULONG32      PrototypePte : 1;
    /*0x000*/     ULONG32      PageColor : 3;
    /*0x000*/     ULONG32      ParityError : 1;
    /*0x000*/     ULONG32      PageLocation : 3;
    /*0x000*/     ULONG32      RemovalRequested : 1;
    /*0x000*/     ULONG32      CacheAttribute : 2;
    /*0x000*/     ULONG32      Rom : 1;
    /*0x000*/     ULONG32      LockCharged : 1;
    /*0x000*/     ULONG32      DontUse : 16;
    }MMPFNENTRY, *PMMPFNENTRY;
    typedef struct _MMPFNLIST {
    /*0x000*/     ULONG32      Total;
    /*0x004*/     enum _MMLISTS ListName;
    /*0x008*/     ULONG32      Flink;
    /*0x00C*/     ULONG32      Blink;
    }MMPFNLIST, *PMMPFNLIST;
    typedef struct _MMPTE_HARDWARE {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      Write : 1;
    /*0x000*/     ULONG32      Owner : 1;
    /*0x000*/     ULONG32      WriteThrough : 1;
    /*0x000*/     ULONG32      CacheDisable : 1;
    /*0x000*/     ULONG32      Accessed : 1;
    /*0x000*/     ULONG32      Dirty : 1;
    /*0x000*/     ULONG32      LargePage : 1;
    /*0x000*/     ULONG32      Global : 1;
    /*0x000*/     ULONG32      CopyOnWrite : 1;
    /*0x000*/     ULONG32      Prototype : 1;
    /*0x000*/     ULONG32      reserved : 1;
    /*0x000*/     ULONG32      PageFrameNumber : 20;
    }MMPTE_HARDWARE, *PMMPTE_HARDWARE;
    typedef struct _MMPTE_LIST {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      OneEntry : 1;
    /*0x000*/     ULONG32      filler0 : 8;
    /*0x000*/     ULONG32      Prototype : 1;
    /*0x000*/     ULONG32      filler1 : 1;
    /*0x000*/     ULONG32      NextEntry : 20;
    }MMPTE_LIST, *PMMPTE_LIST;
    typedef struct _MMPTE_PROTOTYPE {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      ProtoAddressLow : 7;
    /*0x000*/     ULONG32      ReadOnly : 1;
    /*0x000*/     ULONG32      WhichPool : 1;
    /*0x000*/     ULONG32      Prototype : 1;
    /*0x000*/     ULONG32      ProtoAddressHigh : 21;
    }MMPTE_PROTOTYPE, *PMMPTE_PROTOTYPE;
    typedef struct _MMPTE_SOFTWARE {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      PageFileLow : 4;
    /*0x000*/     ULONG32      Protection : 5;
    /*0x000*/     ULONG32      Prototype : 1;
    /*0x000*/     ULONG32      Transition : 1;
    /*0x000*/     ULONG32      PageFileHigh : 20;
    }MMPTE_SOFTWARE, *PMMPTE_SOFTWARE;
    typedef struct _MMPTE_SUBSECTION {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      SubsectionAddressLow : 4;
    /*0x000*/     ULONG32      Protection : 5;
    /*0x000*/     ULONG32      Prototype : 1;
    /*0x000*/     ULONG32      SubsectionAddressHigh : 20;
    /*0x000*/     ULONG32      WhichPool : 1;
    }MMPTE_SUBSECTION, *PMMPTE_SUBSECTION;
    typedef struct _MMPTE_TRANSITION {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      Write : 1;
    /*0x000*/     ULONG32      Owner : 1;
    /*0x000*/     ULONG32      WriteThrough : 1;
    /*0x000*/     ULONG32      CacheDisable : 1;
    /*0x000*/     ULONG32      Protection : 5;
    /*0x000*/     ULONG32      Prototype : 1;
    /*0x000*/     ULONG32      Transition : 1;
    /*0x000*/     ULONG32      PageFrameNumber : 20;
    }MMPTE_TRANSITION, *PMMPTE_TRANSITION;
    typedef struct _MMSECTION_FLAGS {
    /*0x000*/     UINT32       BeingDeleted : 1;
    /*0x000*/     UINT32       BeingCreated : 1;
    /*0x000*/     UINT32       BeingPurged : 1;
    /*0x000*/     UINT32       NoModifiedWriting : 1;
    /*0x000*/     UINT32       FailAllIo : 1;
    /*0x000*/     UINT32       Image : 1;
    /*0x000*/     UINT32       Based : 1;
    /*0x000*/     UINT32       File : 1;
    /*0x000*/     UINT32       Networked : 1;
    /*0x000*/     UINT32       NoCache : 1;
    /*0x000*/     UINT32       PhysicalMemory : 1;
    /*0x000*/     UINT32       CopyOnWrite : 1;
    /*0x000*/     UINT32       Reserve : 1;
    /*0x000*/     UINT32       Commit : 1;
    /*0x000*/     UINT32       FloppyMedia : 1;
    /*0x000*/     UINT32       WasPurged : 1;
    /*0x000*/     UINT32       UserReference : 1;
    /*0x000*/     UINT32       GlobalMemory : 1;
    /*0x000*/     UINT32       DeleteOnClose : 1;
    /*0x000*/     UINT32       FilePointerNull : 1;
    /*0x000*/     UINT32       DebugSymbolsLoaded : 1;
    /*0x000*/     UINT32       SetMappedFileIoComplete : 1;
    /*0x000*/     UINT32       CollidedFlush : 1;
    /*0x000*/     UINT32       NoChange : 1;
    /*0x000*/     UINT32       HadUserReference : 1;
    /*0x000*/     UINT32       ImageMappedInSystemSpace : 1;
    /*0x000*/     UINT32       UserWritable : 1;
    /*0x000*/     UINT32       Accessed : 1;
    /*0x000*/     UINT32       GlobalOnlyPerSession : 1;
    /*0x000*/     UINT32       Rom : 1;
    /*0x000*/     UINT32       filler : 2;
    }MMSECTION_FLAGS, *PMMSECTION_FLAGS;
    typedef struct _MMSUBSECTION_FLAGS {
    /*0x000*/     UINT32       ReadOnly : 1;
    /*0x000*/     UINT32       ReadWrite : 1;
    /*0x000*/     UINT32       SubsectionStatic : 1;
    /*0x000*/     UINT32       GlobalMemory : 1;
    /*0x000*/     UINT32       Protection : 5;
    /*0x000*/     UINT32       LargePages : 1;
    /*0x000*/     UINT32       StartingSector4132 : 10;
    /*0x000*/     UINT32       SectorEndOffset : 12;
    }MMSUBSECTION_FLAGS, *PMMSUBSECTION_FLAGS;
    typedef struct _MMSUPPORT_FLAGS {
    /*0x000*/     UINT32       SessionSpace : 1;
    /*0x000*/     UINT32       BeingTrimmed : 1;
    /*0x000*/     UINT32       SessionLeader : 1;
    /*0x000*/     UINT32       TrimHard : 1;
    /*0x000*/     UINT32       WorkingSetHard : 1;
    /*0x000*/     UINT32       AddressSpaceBeingDeleted : 1;
    /*0x000*/     UINT32       Available : 10;
    /*0x000*/     UINT32       AllowWorkingSetAdjustment : 8;
    /*0x000*/     UINT32       MemoryPriority : 8;
    }MMSUPPORT_FLAGS, *PMMSUPPORT_FLAGS;
    typedef struct _MMVAD_FLAGS {
    /*0x000*/     ULONG32      CommitCharge : 19;
    /*0x000*/     ULONG32      PhysicalMapping : 1;
    /*0x000*/     ULONG32      ImageMap : 1;
    /*0x000*/     ULONG32      UserPhysicalPages : 1;
    /*0x000*/     ULONG32      NoChange : 1;
    /*0x000*/     ULONG32      WriteWatch : 1;
    /*0x000*/     ULONG32      Protection : 5;
    /*0x000*/     ULONG32      LargePages : 1;
    /*0x000*/     ULONG32      MemCommit : 1;
    /*0x000*/     ULONG32      PrivateMemory : 1;
    }MMVAD_FLAGS, *PMMVAD_FLAGS;
    typedef struct _MMVAD_FLAGS2 {
    /*0x000*/     UINT32       FileOffset : 24;
    /*0x000*/     UINT32       SecNoChange : 1;
    /*0x000*/     UINT32       OneSecured : 1;
    /*0x000*/     UINT32       MultipleSecured : 1;
    /*0x000*/     UINT32       ReadOnly : 1;
    /*0x000*/     UINT32       LongVad : 1;
    /*0x000*/     UINT32       ExtendableFile : 1;
    /*0x000*/     UINT32       Inherit : 1;
    /*0x000*/     UINT32       CopyOnWrite : 1;
    }MMVAD_FLAGS2, *PMMVAD_FLAGS2;
    typedef struct _MMVIEW {
    /*0x000*/     ULONG32      Entry;
    /*0x004*/     struct _CONTROL_AREA* ControlArea;
    }MMVIEW, *PMMVIEW;
    typedef struct _MMWSL {
    /*0x000*/     ULONG32      Quota;
    /*0x004*/     ULONG32      FirstFree;
    /*0x008*/     ULONG32      FirstDynamic;
    /*0x00C*/     ULONG32      LastEntry;
    /*0x010*/     ULONG32      NextSlot;
    /*0x014*/     struct _MMWSLE* Wsle;
    /*0x018*/     ULONG32      LastInitializedWsle;
    /*0x01C*/     ULONG32      NonDirectCount;
    /*0x020*/     struct _MMWSLE_HASH* HashTable;
    /*0x024*/     ULONG32      HashTableSize;
    /*0x028*/     ULONG32      NumberOfCommittedPageTables;
    /*0x02C*/     VOID*        HashTableStart;
    /*0x030*/     VOID*        HighestPermittedHashAddress;
    /*0x034*/     ULONG32      NumberOfImageWaiters;
    /*0x038*/     ULONG32      VadBitMapHint;
    /*0x03C*/     UINT16       UsedPageTableEntries[768];
    /*0x63C*/     ULONG32      CommittedPageTables[24];
    }MMWSL, *PMMWSL;
    typedef struct _MMWSLENTRY {
    /*0x000*/     ULONG32      Valid : 1;
    /*0x000*/     ULONG32      LockedInWs : 1;
    /*0x000*/     ULONG32      LockedInMemory : 1;
    /*0x000*/     ULONG32      Protection : 5;
    /*0x000*/     ULONG32      Hashed : 1;
    /*0x000*/     ULONG32      Direct : 1;
    /*0x000*/     ULONG32      Age : 2;
    /*0x000*/     ULONG32      VirtualPageNumber : 20;
    }MMWSLENTRY, *PMMWSLENTRY;
    typedef struct _MMWSLE_HASH {
    /*0x000*/     VOID*        Key;
    /*0x004*/     ULONG32      Index;
    }MMWSLE_HASH, *PMMWSLE_HASH;
    typedef struct _MM_DRIVER_VERIFIER_DATA {
    /*0x000*/     ULONG32      Level;
    /*0x004*/     ULONG32      RaiseIrqls;
    /*0x008*/     ULONG32      AcquireSpinLocks;
    /*0x00C*/     ULONG32      SynchronizeExecutions;
    /*0x010*/     ULONG32      AllocationsAttempted;
    /*0x014*/     ULONG32      AllocationsSucceeded;
    /*0x018*/     ULONG32      AllocationsSucceededSpecialPool;
    /*0x01C*/     ULONG32      AllocationsWithNoTag;
    /*0x020*/     ULONG32      TrimRequests;
    /*0x024*/     ULONG32      Trims;
    /*0x028*/     ULONG32      AllocationsFailed;
    /*0x02C*/     ULONG32      AllocationsFailedDeliberately;
    /*0x030*/     ULONG32      Loads;
    /*0x034*/     ULONG32      Unloads;
    /*0x038*/     ULONG32      UnTrackedPool;
    /*0x03C*/     ULONG32      UserTrims;
    /*0x040*/     ULONG32      CurrentPagedPoolAllocations;
    /*0x044*/     ULONG32      CurrentNonPagedPoolAllocations;
    /*0x048*/     ULONG32      PeakPagedPoolAllocations;
    /*0x04C*/     ULONG32      PeakNonPagedPoolAllocations;
    /*0x050*/     ULONG32      PagedBytes;
    /*0x054*/     ULONG32      NonPagedBytes;
    /*0x058*/     ULONG32      PeakPagedBytes;
    /*0x05C*/     ULONG32      PeakNonPagedBytes;
    /*0x060*/     ULONG32      BurstAllocationsFailedDeliberately;
    /*0x064*/     ULONG32      SessionTrims;
    /*0x068*/     ULONG32      Reserved[2];
    }MM_DRIVER_VERIFIER_DATA, *PMM_DRIVER_VERIFIER_DATA;
    typedef struct _MM_PAGED_POOL_INFO {
    /*0x000*/     struct _RTL_BITMAP* PagedPoolAllocationMap;
    /*0x004*/     struct _RTL_BITMAP* EndOfPagedPoolBitmap;
    /*0x008*/     struct _RTL_BITMAP* PagedPoolLargeSessionAllocationMap;
    /*0x00C*/     struct _MMPTE* FirstPteForPagedPool;
    /*0x010*/     struct _MMPTE* LastPteForPagedPool;
    /*0x014*/     struct _MMPTE* NextPdeForPagedPoolExpansion;
    /*0x018*/     ULONG32      PagedPoolHint;
    /*0x01C*/     ULONG32      PagedPoolCommit;
    /*0x020*/     ULONG32      AllocatedPagedPool;
    }MM_PAGED_POOL_INFO, *PMM_PAGED_POOL_INFO;
    typedef struct _MM_SESSION_SPACE_FLAGS {
    /*0x000*/     ULONG32      Initialized : 1;
    /*0x000*/     ULONG32      Filler0 : 3;
    /*0x000*/     ULONG32      HasWsLock : 1;
    /*0x000*/     ULONG32      DeletePending : 1;
    /*0x000*/     ULONG32      Filler : 26;
    }MM_SESSION_SPACE_FLAGS, *PMM_SESSION_SPACE_FLAGS;
    typedef struct _NAMED_PIPE_CREATE_PARAMETERS {
    /*0x000*/     ULONG32      NamedPipeType;
    /*0x004*/     ULONG32      ReadMode;
    /*0x008*/     ULONG32      CompletionMode;
    /*0x00C*/     ULONG32      MaximumInstances;
    /*0x010*/     ULONG32      InboundQuota;
    /*0x014*/     ULONG32      OutboundQuota;
    /*0x018*/     union _LARGE_INTEGER DefaultTimeout;
    /*0x020*/     UINT8        TimeoutSpecified;
    /*0x021*/     UINT8        _PADDING0_[0x7];
    }NAMED_PIPE_CREATE_PARAMETERS, *PNAMED_PIPE_CREATE_PARAMETERS;
    typedef struct _NT_TIB {
    /*0x000*/     struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList;
    /*0x004*/     VOID*        StackBase;
    /*0x008*/     VOID*        StackLimit;
    /*0x00C*/     VOID*        SubSystemTib;
                  union
                  {
    /*0x010*/         VOID*        FiberData;
    /*0x010*/         ULONG32      Version;
                  };
    /*0x014*/     VOID*        ArbitraryUserPointer;
    /*0x018*/     struct _NT_TIB* Self;
    }NT_TIB, *PNT_TIB;
    typedef struct _OBJECT_ATTRIBUTES {
    /*0x000*/     ULONG32      Length;
    /*0x004*/     VOID*        RootDirectory;
    /*0x008*/     struct _UNICODE_STRING* ObjectName;
    /*0x00C*/     ULONG32      Attributes;
    /*0x010*/     VOID*        SecurityDescriptor;
    /*0x014*/     VOID*        SecurityQualityOfService;
    }OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
    typedef struct _OBJECT_DIRECTORY_ENTRY {
    /*0x000*/     struct _OBJECT_DIRECTORY_ENTRY* ChainLink;
    /*0x004*/     VOID*        Object;
    }OBJECT_DIRECTORY_ENTRY, *POBJECT_DIRECTORY_ENTRY;
    typedef struct _OBJECT_DUMP_CONTROL {
    /*0x000*/     VOID*        Stream;
    /*0x004*/     ULONG32      Detail;
    }OBJECT_DUMP_CONTROL, *POBJECT_DUMP_CONTROL;
    typedef struct _OBJECT_HANDLE_INFORMATION {
    /*0x000*/     ULONG32      HandleAttributes;
    /*0x004*/     ULONG32      GrantedAccess;
    }OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION;
    typedef struct _OWNER_ENTRY {
    /*0x000*/     ULONG32      OwnerThread;
                  union
                  {
    /*0x004*/         LONG32       OwnerCount;
    /*0x004*/         ULONG32      TableSize;
                  };
    }OWNER_ENTRY, *POWNER_ENTRY;
    typedef struct _PCI_BUS_INTERFACE_STANDARD {
    /*0x000*/     UINT16       Size;
    /*0x002*/     UINT16       Version;
    /*0x004*/     VOID*        Context;
    /*0x008*/     PVOID InterfaceReference;
    /*0x00C*/     PVOID InterfaceDereference;
    /*0x010*/     PVOID ReadConfig;
    /*0x014*/     PVOID WriteConfig;
    /*0x018*/     PVOID PinToLine;
    /*0x01C*/     PVOID LineToPin;
    }PCI_BUS_INTERFACE_STANDARD, *PPCI_BUS_INTERFACE_STANDARD;
    typedef struct _PCI_HEADER_TYPE_0 {
    /*0x000*/     ULONG32      BaseAddresses[6];
    /*0x018*/     ULONG32      CIS;
    /*0x01C*/     UINT16       SubVendorID;
    /*0x01E*/     UINT16       SubSystemID;
    /*0x020*/     ULONG32      ROMBaseAddress;
    /*0x024*/     UINT8        CapabilitiesPtr;
    /*0x025*/     UINT8        Reserved1[3];
    /*0x028*/     ULONG32      Reserved2;
    /*0x02C*/     UINT8        InterruptLine;
    /*0x02D*/     UINT8        InterruptPin;
    /*0x02E*/     UINT8        MinimumGrant;
    /*0x02F*/     UINT8        MaximumLatency;
    }PCI_HEADER_TYPE_0, *PPCI_HEADER_TYPE_0;
    typedef struct _PCI_HEADER_TYPE_1 {
    /*0x000*/     ULONG32      BaseAddresses[2];
    /*0x008*/     UINT8        PrimaryBus;
    /*0x009*/     UINT8        SecondaryBus;
    /*0x00A*/     UINT8        SubordinateBus;
    /*0x00B*/     UINT8        SecondaryLatency;
    /*0x00C*/     UINT8        IOBase;
    /*0x00D*/     UINT8        IOLimit;
    /*0x00E*/     UINT16       SecondaryStatus;
    /*0x010*/     UINT16       MemoryBase;
    /*0x012*/     UINT16       MemoryLimit;
    /*0x014*/     UINT16       PrefetchBase;
    /*0x016*/     UINT16       PrefetchLimit;
    /*0x018*/     ULONG32      PrefetchBaseUpper32;
    /*0x01C*/     ULONG32      PrefetchLimitUpper32;
    /*0x020*/     UINT16       IOBaseUpper16;
    /*0x022*/     UINT16       IOLimitUpper16;
    /*0x024*/     UINT8        CapabilitiesPtr;
    /*0x025*/     UINT8        Reserved1[3];
    /*0x028*/     ULONG32      ROMBaseAddress;
    /*0x02C*/     UINT8        InterruptLine;
    /*0x02D*/     UINT8        InterruptPin;
    /*0x02E*/     UINT16       BridgeControl;
    }PCI_HEADER_TYPE_1, *PPCI_HEADER_TYPE_1;
    typedef struct _PCI_INTERFACE {
    /*0x000*/     struct _GUID* InterfaceType;
    /*0x004*/     UINT16       MinSize;
    /*0x006*/     UINT16       MinVersion;
    /*0x008*/     UINT16       MaxVersion;
    /*0x00A*/     UINT16       Flags;
    /*0x00C*/     LONG32       ReferenceCount;
    /*0x010*/     enum _PCI_SIGNATURE Signature;
    /*0x014*/     PVOID Constructor;
    /*0x018*/     PVOID Initializer;
    }PCI_INTERFACE, *PPCI_INTERFACE;
    typedef struct _PCI_LOCK {
    /*0x000*/     ULONG32      Atom;
    /*0x004*/     UINT8        OldIrql;
    /*0x005*/     UINT8        _PADDING0_[0x3];
    }PCI_LOCK, *PPCI_LOCK;
    typedef struct _PCI_MJ_DISPATCH_TABLE {
    /*0x000*/     ULONG32      PnpIrpMaximumMinorFunction;
    /*0x004*/     struct _PCI_MN_DISPATCH_TABLE* PnpIrpDispatchTable;
    /*0x008*/     ULONG32      PowerIrpMaximumMinorFunction;
    /*0x00C*/     struct _PCI_MN_DISPATCH_TABLE* PowerIrpDispatchTable;
    /*0x010*/     enum _PCI_DISPATCH_STYLE SystemControlIrpDispatchStyle;
    /*0x014*/     PVOID SystemControlIrpDispatchFunction;
    /*0x018*/     enum _PCI_DISPATCH_STYLE OtherIrpDispatchStyle;
    /*0x01C*/     PVOID OtherIrpDispatchFunction;
    }PCI_MJ_DISPATCH_TABLE, *PPCI_MJ_DISPATCH_TABLE;
    typedef struct _PCI_MN_DISPATCH_TABLE {
    /*0x000*/     enum _PCI_DISPATCH_STYLE DispatchStyle;
    /*0x004*/     PVOID DispatchFunction;
    }PCI_MN_DISPATCH_TABLE, *PPCI_MN_DISPATCH_TABLE;
    typedef struct _PCI_POWER_STATE {
    /*0x000*/     enum _SYSTEM_POWER_STATE CurrentSystemState;
    /*0x004*/     enum _DEVICE_POWER_STATE CurrentDeviceState;
    /*0x008*/     enum _SYSTEM_POWER_STATE SystemWakeLevel;
    /*0x00C*/     enum _DEVICE_POWER_STATE DeviceWakeLevel;
    /*0x010*/     enum _DEVICE_POWER_STATE SystemStateMapping[7];
    /*0x02C*/     struct _IRP* WaitWakeIrp;
    /*0x030*/     PVOID SavedCancelRoutine;
    /*0x034*/     LONG32       Paging;
    /*0x038*/     LONG32       Hibernate;
    /*0x03C*/     LONG32       CrashDump;
    }PCI_POWER_STATE, *PPCI_POWER_STATE;
    typedef struct _PCI_SLOT_NUMBER {
                  union
                  {
                      struct
                      {
    /*0x000*/             ULONG32      DeviceNumber : 5;
    /*0x000*/             ULONG32      FunctionNumber : 3;
    /*0x000*/             ULONG32      Reserved : 24;
                      }bits;
    /*0x000*/         ULONG32      AsULONG;
                  }u;
    }PCI_SLOT_NUMBER, *PPCI_SLOT_NUMBER;
    typedef struct _PEB_FREE_BLOCK {
    /*0x000*/     struct _PEB_FREE_BLOCK* Next;
    /*0x004*/     ULONG32      Size;
    }PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
    typedef struct _PHYSICAL_MEMORY_RUN {
    /*0x000*/     ULONG32      BasePage;
    /*0x004*/     ULONG32      PageCount;
    }PHYSICAL_MEMORY_RUN, *PPHYSICAL_MEMORY_RUN;
    typedef struct _PM_SUPPORT {
    /*0x000*/     UINT8        Rsvd2 : 1;
    /*0x000*/     UINT8        D1 : 1;
    /*0x000*/     UINT8        D2 : 1;
    /*0x000*/     UINT8        PMED0 : 1;
    /*0x000*/     UINT8        PMED1 : 1;
    /*0x000*/     UINT8        PMED2 : 1;
    /*0x000*/     UINT8        PMED3Hot : 1;
    /*0x000*/     UINT8        PMED3Cold : 1;
    }PM_SUPPORT, *PPM_SUPPORT;
    typedef struct _POOL_HEADER {
                  union
                  {
                      struct
                      {
                          struct
                          {
    /*0x000*/                 UINT16       PreviousSize : 9;
    /*0x000*/                 UINT16       PoolIndex : 7;
                          };
                          struct
                          {
    /*0x002*/                 UINT16       BlockSize : 9;
    /*0x002*/                 UINT16       PoolType : 7;
                          };
                      };
    /*0x000*/         ULONG32      Ulong1;
                  };
                  union
                  {
    /*0x004*/         struct _EPROCESS* ProcessBilled;
    /*0x004*/         ULONG32      PoolTag;
                      struct
                      {
    /*0x004*/             UINT16       AllocatorBackTraceIndex;
    /*0x006*/             UINT16       PoolTagHash;
                      };
                  };
    }POOL_HEADER, *PPOOL_HEADER;
    typedef struct _POOL_TRACKER_BIG_PAGES {
    /*0x000*/     VOID*        Va;
    /*0x004*/     ULONG32      Key;
    /*0x008*/     ULONG32      NumberOfPages;
    }POOL_TRACKER_BIG_PAGES, *PPOOL_TRACKER_BIG_PAGES;
    typedef struct _POOL_TRACKER_TABLE {
    /*0x000*/     ULONG32      Key;
    /*0x004*/     ULONG32      NonPagedAllocs;
    /*0x008*/     ULONG32      NonPagedFrees;
    /*0x00C*/     ULONG32      NonPagedBytes;
    /*0x010*/     ULONG32      PagedAllocs;
    /*0x014*/     ULONG32      PagedFrees;
    /*0x018*/     ULONG32      PagedBytes;
    }POOL_TRACKER_TABLE, *PPOOL_TRACKER_TABLE;
    typedef struct _POP_ACTION_TRIGGER {
    /*0x000*/     enum _POP_POLICY_DEVICE_TYPE Type;
    /*0x004*/     UINT8        Flags;
    /*0x005*/     UINT8        Spare[3];
                  union
                  {
                      struct
                      {
    /*0x008*/             ULONG32      Level;
                      }Battery;
    /*0x008*/         struct _POP_TRIGGER_WAIT* Wait;
                  };
    }POP_ACTION_TRIGGER, *PPOP_ACTION_TRIGGER;
    typedef struct _POP_IDLE_HANDLER {
    /*0x000*/     ULONG32      Latency;
    /*0x004*/     ULONG32      TimeCheck;
    /*0x008*/     ULONG32      DemoteLimit;
    /*0x00C*/     ULONG32      PromoteLimit;
    /*0x010*/     ULONG32      PromoteCount;
    /*0x014*/     UINT8        Demote;
    /*0x015*/     UINT8        Promote;
    /*0x016*/     UINT8        PromotePercent;
    /*0x017*/     UINT8        DemotePercent;
    /*0x018*/     UINT8        State;
    /*0x019*/     UINT8        Spare[3];
    /*0x01C*/     PVOID IdleFunction;
    }POP_IDLE_HANDLER, *PPOP_IDLE_HANDLER;
    typedef struct _POP_POWER_ACTION {
    /*0x000*/     UINT8        Updates;
    /*0x001*/     UINT8        State;
    /*0x002*/     UINT8        Shutdown;
    /*0x003*/     UINT8        _PADDING0_[0x1];
    /*0x004*/     enum _POWER_ACTION Action;
    /*0x008*/     enum _SYSTEM_POWER_STATE LightestState;
    /*0x00C*/     ULONG32      Flags;
    /*0x010*/     LONG32       Status;
    /*0x014*/     UINT8        IrpMinor;
    /*0x015*/     UINT8        _PADDING1_[0x3];
    /*0x018*/     enum _SYSTEM_POWER_STATE SystemState;
    /*0x01C*/     enum _SYSTEM_POWER_STATE NextSystemState;
    /*0x020*/     struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode;
    /*0x024*/     struct _POP_DEVICE_SYS_STATE* DevState;
    /*0x028*/     struct _POP_HIBER_CONTEXT* HiberContext;
    /*0x02C*/     enum _SYSTEM_POWER_STATE LastWakeState;
    /*0x030*/     UINT64       WakeTime;
    /*0x038*/     UINT64       SleepTime;
    }POP_POWER_ACTION, *PPOP_POWER_ACTION;
    typedef struct _POP_SHUTDOWN_BUG_CHECK {
    /*0x000*/     ULONG32      Code;
    /*0x004*/     ULONG32      Parameter1;
    /*0x008*/     ULONG32      Parameter2;
    /*0x00C*/     ULONG32      Parameter3;
    /*0x010*/     ULONG32      Parameter4;
    }POP_SHUTDOWN_BUG_CHECK, *PPOP_SHUTDOWN_BUG_CHECK;
    typedef struct _POWER_ACTION_POLICY {
    /*0x000*/     enum _POWER_ACTION Action;
    /*0x004*/     ULONG32      Flags;
    /*0x008*/     ULONG32      EventCode;
    }POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY;
    typedef struct _POWER_SEQUENCE {
    /*0x000*/     ULONG32      SequenceD1;
    /*0x004*/     ULONG32      SequenceD2;
    /*0x008*/     ULONG32      SequenceD3;
    }POWER_SEQUENCE, *PPOWER_SEQUENCE;
    typedef struct _PO_HIBER_PERF {
    /*0x000*/     UINT64       IoTicks;
    /*0x008*/     UINT64       InitTicks;
    /*0x010*/     UINT64       CopyTicks;
    /*0x018*/     UINT64       StartCount;
    /*0x020*/     ULONG32      ElapsedTime;
    /*0x024*/     ULONG32      IoTime;
    /*0x028*/     ULONG32      CopyTime;
    /*0x02C*/     ULONG32      InitTime;
    /*0x030*/     ULONG32      PagesWritten;
    /*0x034*/     ULONG32      PagesProcessed;
    /*0x038*/     ULONG32      BytesCopied;
    /*0x03C*/     ULONG32      DumpCount;
    /*0x040*/     ULONG32      FileRuns;
    /*0x044*/     UINT8        _PADDING0_[0x4];
    }PO_HIBER_PERF, *PPO_HIBER_PERF;
    typedef struct _PO_MEMORY_RANGE_ARRAY {
                  union
                  {
                      struct
                      {
    /*0x000*/             ULONG32      PageNo;
    /*0x004*/             ULONG32      StartPage;
    /*0x008*/             ULONG32      EndPage;
    /*0x00C*/             ULONG32      CheckSum;
                      }Range;
                      struct
                      {
    /*0x000*/             struct _PO_MEMORY_RANGE_ARRAY* Next;
    /*0x004*/             ULONG32      NextTable;
    /*0x008*/             ULONG32      CheckSum;
    /*0x00C*/             ULONG32      EntryCount;
                      }Link;
                  };
    }PO_MEMORY_RANGE_ARRAY, *PPO_MEMORY_RANGE_ARRAY;
    typedef struct _PP_LOOKASIDE_LIST {
    /*0x000*/     struct _GENERAL_LOOKASIDE* P;
    /*0x004*/     struct _GENERAL_LOOKASIDE* L;
    }PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
    typedef struct _PRIVATE_CACHE_MAP_FLAGS {
    /*0x000*/     ULONG32      DontUse : 16;
    /*0x000*/     ULONG32      ReadAheadActive : 1;
    /*0x000*/     ULONG32      ReadAheadEnabled : 1;
    /*0x000*/     ULONG32      Available : 14;
    }PRIVATE_CACHE_MAP_FLAGS, *PPRIVATE_CACHE_MAP_FLAGS;
    typedef struct _PROCESSOR_IDLE_TIMES {
    /*0x000*/     UINT64       StartTime;
    /*0x008*/     UINT64       EndTime;
    /*0x010*/     ULONG32      IdleHandlerReserved[4];
    }PROCESSOR_IDLE_TIMES, *PPROCESSOR_IDLE_TIMES;
    typedef struct _PROCESSOR_PERF_STATE {
    /*0x000*/     UINT8        PercentFrequency;
    /*0x001*/     UINT8        MinCapacity;
    /*0x002*/     UINT16       Power;
    /*0x004*/     UINT8        IncreaseLevel;
    /*0x005*/     UINT8        DecreaseLevel;
    /*0x006*/     UINT16       Flags;
    /*0x008*/     ULONG32      IncreaseTime;
    /*0x00C*/     ULONG32      DecreaseTime;
    /*0x010*/     ULONG32      IncreaseCount;
    /*0x014*/     ULONG32      DecreaseCount;
    /*0x018*/     UINT64       PerformanceTime;
    }PROCESSOR_PERF_STATE, *PPROCESSOR_PERF_STATE;
    typedef struct _PROCESSOR_POWER_POLICY_INFO {
    /*0x000*/     ULONG32      TimeCheck;
    /*0x004*/     ULONG32      DemoteLimit;
    /*0x008*/     ULONG32      PromoteLimit;
    /*0x00C*/     UINT8        DemotePercent;
    /*0x00D*/     UINT8        PromotePercent;
    /*0x00E*/     UINT8        Spare[2];
                  struct
                  {
    /*0x010*/         ULONG32      AllowDemotion : 1;
    /*0x010*/         ULONG32      AllowPromotion : 1;
    /*0x010*/         ULONG32      Reserved : 30;
                  };
    }PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO;
    typedef struct _PROCESS_WS_WATCH_INFORMATION {
    /*0x000*/     VOID*        FaultingPc;
    /*0x004*/     VOID*        FaultingVa;
    }PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION;
    typedef struct _PS_IMPERSONATION_INFORMATION {
    /*0x000*/     VOID*        Token;
    /*0x004*/     UINT8        CopyOnOpen;
    /*0x005*/     UINT8        EffectiveOnly;
    /*0x006*/     UINT8        _PADDING0_[0x2];
    /*0x008*/     enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
    }PS_IMPERSONATION_INFORMATION, *PPS_IMPERSONATION_INFORMATION;
    typedef struct _PS_JOB_TOKEN_FILTER {
    /*0x000*/     ULONG32      CapturedSidCount;
    /*0x004*/     struct _SID_AND_ATTRIBUTES* CapturedSids;
    /*0x008*/     ULONG32      CapturedSidsLength;
    /*0x00C*/     ULONG32      CapturedGroupCount;
    /*0x010*/     struct _SID_AND_ATTRIBUTES* CapturedGroups;
    /*0x014*/     ULONG32      CapturedGroupsLength;
    /*0x018*/     ULONG32      CapturedPrivilegeCount;
    /*0x01C*/     struct _LUID_AND_ATTRIBUTES* CapturedPrivileges;
    /*0x020*/     ULONG32      CapturedPrivilegesLength;
    }PS_JOB_TOKEN_FILTER, *PPS_JOB_TOKEN_FILTER;
    typedef struct _QUAD {
    /*0x000*/     FLOAT64      DoNotUseThisField;
    }QUAD, *PQUAD;
    typedef struct _RTL_ATOM_TABLE_ENTRY {
    /*0x000*/     struct _RTL_ATOM_TABLE_ENTRY* HashLink;
    /*0x004*/     UINT16       HandleIndex;
    /*0x006*/     UINT16       Atom;
    /*0x008*/     UINT16       ReferenceCount;
    /*0x00A*/     UINT8        Flags;
    /*0x00B*/     UINT8        NameLength;
    /*0x00C*/     UINT16       Name[1];
    /*0x00E*/     UINT8        _PADDING0_[0x2];
    }RTL_ATOM_TABLE_ENTRY, *PRTL_ATOM_TABLE_ENTRY;
    typedef struct _RTL_BITMAP {
    /*0x000*/     ULONG32      SizeOfBitMap;
    /*0x004*/     ULONG32*     Buffer;
    }RTL_BITMAP, *PRTL_BITMAP;
    typedef struct _RTL_CRITICAL_SECTION {
    /*0x000*/     struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo;
    /*0x004*/     LONG32       LockCount;
    /*0x008*/     LONG32       RecursionCount;
    /*0x00C*/     VOID*        OwningThread;
    /*0x010*/     VOID*        LockSemaphore;
    /*0x014*/     ULONG32      SpinCount;
    }RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
    typedef struct _RTL_HANDLE_TABLE {
    /*0x000*/     ULONG32      MaximumNumberOfHandles;
    /*0x004*/     ULONG32      SizeOfHandleTableEntry;
    /*0x008*/     ULONG32      Reserved[2];
    /*0x010*/     struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles;
    /*0x014*/     struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles;
    /*0x018*/     struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles;
    /*0x01C*/     struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles;
    }RTL_HANDLE_TABLE, *PRTL_HANDLE_TABLE;
    typedef struct _RTL_HANDLE_TABLE_ENTRY {
                  union
                  {
    /*0x000*/         ULONG32      Flags;
    /*0x000*/         struct _RTL_HANDLE_TABLE_ENTRY* NextFree;
                  };
    }RTL_HANDLE_TABLE_ENTRY, *PRTL_HANDLE_TABLE_ENTRY;
    typedef struct _RTL_RANGE {
    /*0x000*/     UINT64       Start;
    /*0x008*/     UINT64       End;
    /*0x010*/     VOID*        UserData;
    /*0x014*/     VOID*        Owner;
    /*0x018*/     UINT8        Attributes;
    /*0x019*/     UINT8        Flags;
    /*0x01A*/     UINT8        _PADDING0_[0x6];
    }RTL_RANGE, *PRTL_RANGE;
    typedef struct _SCSI_REQUEST_BLOCK {
    }SCSI_REQUEST_BLOCK, *PSCSI_REQUEST_BLOCK;
    typedef struct _SECTION_IMAGE_INFORMATION {
    /*0x000*/     VOID*        TransferAddress;
    /*0x004*/     ULONG32      ZeroBits;
    /*0x008*/     ULONG32      MaximumStackSize;
    /*0x00C*/     ULONG32      CommittedStackSize;
    /*0x010*/     ULONG32      SubSystemType;
                  union
                  {
                      struct
                      {
    /*0x014*/             UINT16       SubSystemMinorVersion;
    /*0x016*/             UINT16       SubSystemMajorVersion;
                      };
    /*0x014*/         ULONG32      SubSystemVersion;
                  };
    /*0x018*/     ULONG32      GpValue;
    /*0x01C*/     UINT16       ImageCharacteristics;
    /*0x01E*/     UINT16       DllCharacteristics;
    /*0x020*/     UINT16       Machine;
    /*0x022*/     UINT8        ImageContainsCode;
    /*0x023*/     UINT8        Spare1;
    /*0x024*/     ULONG32      LoaderFlags;
    /*0x028*/     ULONG32      ImageFileSize;
    /*0x02C*/     ULONG32      Reserved[1];
    }SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION;
    typedef struct _SECTION_OBJECT {
    /*0x000*/     VOID*        StartingVa;
    /*0x004*/     VOID*        EndingVa;
    /*0x008*/     VOID*        Parent;
    /*0x00C*/     VOID*        LeftChild;
    /*0x010*/     VOID*        RightChild;
    /*0x014*/     struct _SEGMENT_OBJECT* Segment;
    }SECTION_OBJECT, *PSECTION_OBJECT;
    typedef struct _SECTION_OBJECT_POINTERS {
    /*0x000*/     VOID*        DataSectionObject;
    /*0x004*/     VOID*        SharedCacheMap;
    /*0x008*/     VOID*        ImageSectionObject;
    }SECTION_OBJECT_POINTERS, *PSECTION_OBJECT_POINTERS;
    typedef struct _SECURITY_DESCRIPTOR {
    /*0x000*/     UINT8        Revision;
    /*0x001*/     UINT8        Sbz1;
    /*0x002*/     UINT16       Control;
    /*0x004*/     VOID*        Owner;
    /*0x008*/     VOID*        Group;
    /*0x00C*/     struct _ACL* Sacl;
    /*0x010*/     struct _ACL* Dacl;
    }SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
    typedef struct _SECURITY_DESCRIPTOR_RELATIVE {
    /*0x000*/     UINT8        Revision;
    /*0x001*/     UINT8        Sbz1;
    /*0x002*/     UINT16       Control;
    /*0x004*/     ULONG32      Owner;
    /*0x008*/     ULONG32      Group;
    /*0x00C*/     ULONG32      Sacl;
    /*0x010*/     ULONG32      Dacl;
    }SECURITY_DESCRIPTOR_RELATIVE, *PSECURITY_DESCRIPTOR_RELATIVE;
    typedef struct _SECURITY_QUALITY_OF_SERVICE {
    /*0x000*/     ULONG32      Length;
    /*0x004*/     enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
    /*0x008*/     UINT8        ContextTrackingMode;
    /*0x009*/     UINT8        EffectiveOnly;
    /*0x00A*/     UINT8        _PADDING0_[0x2];
    }SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
    typedef struct _SECURITY_SUBJECT_CONTEXT {
    /*0x000*/     VOID*        ClientToken;
    /*0x004*/     enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
    /*0x008*/     VOID*        PrimaryToken;
    /*0x00C*/     VOID*        ProcessAuditId;
    }SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
    typedef struct _SECURITY_TOKEN_AUDIT_DATA {
    /*0x000*/     ULONG32      Length;
    /*0x004*/     ULONG32      GrantMask;
    /*0x008*/     ULONG32      DenyMask;
    }SECURITY_TOKEN_AUDIT_DATA, *PSECURITY_TOKEN_AUDIT_DATA;
    typedef struct _SEGMENT_OBJECT {
    /*0x000*/     VOID*        BaseAddress;
    /*0x004*/     ULONG32      TotalNumberOfPtes;
    /*0x008*/     union _LARGE_INTEGER SizeOfSegment;
    /*0x010*/     ULONG32      NonExtendedPtes;
    /*0x014*/     ULONG32      ImageCommitment;
    /*0x018*/     struct _CONTROL_AREA* ControlArea;
    /*0x01C*/     struct _SUBSECTION* Subsection;
    /*0x020*/     struct _LARGE_CONTROL_AREA* LargeControlArea;
    /*0x024*/     struct _MMSECTION_FLAGS* MmSectionFlags;
    /*0x028*/     struct _MMSUBSECTION_FLAGS* MmSubSectionFlags;
    /*0x02C*/     UINT8        _PADDING0_[0x4];
    }SEGMENT_OBJECT, *PSEGMENT_OBJECT;
    typedef struct _SEP_AUDIT_POLICY_CATEGORIES {
                  struct
                  {
    /*0x000*/         ULONG32      System : 4;
    /*0x000*/         ULONG32      Logon : 4;
    /*0x000*/         ULONG32      ObjectAccess : 4;
    /*0x000*/         ULONG32      PrivilegeUse : 4;
    /*0x000*/         ULONG32      DetailedTracking : 4;
    /*0x000*/         ULONG32      PolicyChange : 4;
    /*0x000*/         ULONG32      AccountManagement : 4;
    /*0x000*/         ULONG32      DirectoryServiceAccess : 4;
                  };
    /*0x004*/     ULONG32      AccountLogon : 4;
    }SEP_AUDIT_POLICY_CATEGORIES, *PSEP_AUDIT_POLICY_CATEGORIES;
    typedef struct _SEP_AUDIT_POLICY_OVERLAY {
    /*0x000*/     UINT64       PolicyBits : 36;
    /*0x000*/     UINT64       SetBit : 1;
    }SEP_AUDIT_POLICY_OVERLAY, *PSEP_AUDIT_POLICY_OVERLAY;
    typedef struct _SE_AUDIT_PROCESS_CREATION_INFO {
    /*0x000*/     struct _OBJECT_NAME_INFORMATION* ImageFileName;
    }SE_AUDIT_PROCESS_CREATION_INFO, *PSE_AUDIT_PROCESS_CREATION_INFO;
    typedef struct _SID_AND_ATTRIBUTES {
    /*0x000*/     VOID*        Sid;
    /*0x004*/     ULONG32      Attributes;
    }SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES;
    typedef struct _SID_IDENTIFIER_AUTHORITY {
    /*0x000*/     UINT8        Value[6];
    }SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
    typedef struct _SINGLE_LIST_ENTRY {
    /*0x000*/     struct _SINGLE_LIST_ENTRY* Next;
    }SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
    typedef struct _STRING {
    /*0x000*/     UINT16       Length;
    /*0x002*/     UINT16       MaximumLength;
    /*0x004*/     CHAR*        Buffer;
    }STRING, *PSTRING;
    typedef struct _SUPPORTED_RANGE {
    /*0x000*/     struct _SUPPORTED_RANGE* Next;
    /*0x004*/     ULONG32      SystemAddressSpace;
    /*0x008*/     INT64        SystemBase;
    /*0x010*/     INT64        Base;
    /*0x018*/     INT64        Limit;
    }SUPPORTED_RANGE, *PSUPPORTED_RANGE;
    typedef struct _TEB_ACTIVE_FRAME {
    /*0x000*/     ULONG32      Flags;
    /*0x004*/     struct _TEB_ACTIVE_FRAME* Previous;
    /*0x008*/     struct _TEB_ACTIVE_FRAME_CONTEXT* Context;
    }TEB_ACTIVE_FRAME, *PTEB_ACTIVE_FRAME;
    typedef struct _TEB_ACTIVE_FRAME_CONTEXT {
    /*0x000*/     ULONG32      Flags;
    /*0x004*/     CHAR*        FrameName;
    }TEB_ACTIVE_FRAME_CONTEXT, *PTEB_ACTIVE_FRAME_CONTEXT;
    typedef struct _TERMINATION_PORT {
    /*0x000*/     struct _TERMINATION_PORT* Next;
    /*0x004*/     VOID*        Port;
    }TERMINATION_PORT, *PTERMINATION_PORT;
    typedef struct _THERMAL_INFORMATION {
    /*0x000*/     ULONG32      ThermalStamp;
    /*0x004*/     ULONG32      ThermalConstant1;
    /*0x008*/     ULONG32      ThermalConstant2;
    /*0x00C*/     ULONG32      Processors;
    /*0x010*/     ULONG32      SamplingPeriod;
    /*0x014*/     ULONG32      CurrentTemperature;
    /*0x018*/     ULONG32      PassiveTripPoint;
    /*0x01C*/     ULONG32      CriticalTripPoint;
    /*0x020*/     UINT8        ActiveTripPointCount;
    /*0x021*/     UINT8        _PADDING0_[0x3];
    /*0x024*/     ULONG32      ActiveTripPoint[10];
    }THERMAL_INFORMATION, *PTHERMAL_INFORMATION;
    typedef struct _TRACE_ENABLE_FLAG_EXTENSION {
    /*0x000*/     UINT16       Offset;
    /*0x002*/     UINT8        Length;
    /*0x003*/     UINT8        Flag;
    }TRACE_ENABLE_FLAG_EXTENSION, *PTRACE_ENABLE_FLAG_EXTENSION;
    typedef struct _VACB_LEVEL_REFERENCE {
    /*0x000*/     LONG32       Reference;
    /*0x004*/     LONG32       SpecialReference;
    }VACB_LEVEL_REFERENCE, *PVACB_LEVEL_REFERENCE;
    typedef struct _VI_POOL_ENTRY_INUSE {
    /*0x000*/     VOID*        VirtualAddress;
    /*0x004*/     VOID*        CallingAddress;
    /*0x008*/     ULONG32      NumberOfBytes;
    /*0x00C*/     ULONG32      Tag;
    }VI_POOL_ENTRY_INUSE, *PVI_POOL_ENTRY_INUSE;
    typedef struct _VPB {
    /*0x000*/     INT16        Type;
    /*0x002*/     INT16        Size;
    /*0x004*/     UINT16       Flags;
    /*0x006*/     UINT16       VolumeLabelLength;
    /*0x008*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x00C*/     struct _DEVICE_OBJECT* RealDevice;
    /*0x010*/     ULONG32      SerialNumber;
    /*0x014*/     ULONG32      ReferenceCount;
    /*0x018*/     UINT16       VolumeLabel[32];
    }VPB, *PVPB;
    typedef struct _WMI_BUFFER_STATE {
    /*0x000*/     ULONG32      Free : 1;
    /*0x000*/     ULONG32      InUse : 1;
    /*0x000*/     ULONG32      Flush : 1;
    /*0x000*/     ULONG32      Unused : 29;
    }WMI_BUFFER_STATE, *PWMI_BUFFER_STATE;
    typedef struct _WMI_CLIENT_CONTEXT {
    /*0x000*/     UINT8        ProcessorNumber;
    /*0x001*/     UINT8        Alignment;
    /*0x002*/     UINT16       LoggerId;
    }WMI_CLIENT_CONTEXT, *PWMI_CLIENT_CONTEXT;
    typedef struct _WMI_LOGGER_MODE {
    /*0x000*/     ULONG32      SequentialFile : 1;
    /*0x000*/     ULONG32      CircularFile : 1;
    /*0x000*/     ULONG32      AppendFile : 1;
    /*0x000*/     ULONG32      Unused1 : 5;
    /*0x000*/     ULONG32      RealTime : 1;
    /*0x000*/     ULONG32      DelayOpenFile : 1;
    /*0x000*/     ULONG32      BufferOnly : 1;
    /*0x000*/     ULONG32      PrivateLogger : 1;
    /*0x000*/     ULONG32      AddHeader : 1;
    /*0x000*/     ULONG32      UseExisting : 1;
    /*0x000*/     ULONG32      UseGlobalSequence : 1;
    /*0x000*/     ULONG32      UseLocalSequence : 1;
    /*0x000*/     ULONG32      Unused2 : 16;
    }WMI_LOGGER_MODE, *PWMI_LOGGER_MODE;
    typedef struct _Wx86ThreadState {
    /*0x000*/     ULONG32*     CallBx86Eip;
    /*0x004*/     VOID*        DeallocationCpu;
    /*0x008*/     UINT8        UseKnownWx86Dll;
    /*0x009*/     CHAR         OleStubInvoked;
    /*0x00A*/     UINT8        _PADDING0_[0x2];
    }Wx86ThreadState, *PWx86ThreadState;
    typedef struct _X86_DBGKD_CONTROL_SET {
    /*0x000*/     ULONG32      TraceFlag;
    /*0x004*/     ULONG32      Dr7;
    /*0x008*/     ULONG32      CurrentSymbolStart;
    /*0x00C*/     ULONG32      CurrentSymbolEnd;
    }X86_DBGKD_CONTROL_SET, *PX86_DBGKD_CONTROL_SET;
    typedef struct _ACTIVATION_CONTEXT_STACK {
    /*0x000*/     ULONG32      Flags;
    /*0x004*/     ULONG32      NextCookieSequenceNumber;
    /*0x008*/     VOID*        ActiveFrame;
    /*0x00C*/     struct _LIST_ENTRY FrameListCache;
    }ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK;
    typedef struct _ARBITER_INSTANCE {
    /*0x000*/     ULONG32      Signature;
    /*0x004*/     struct _KEVENT* MutexEvent;
    /*0x008*/     UINT16*      Name;
    /*0x00C*/     INT32        ResourceType;
    /*0x010*/     struct _RTL_RANGE_LIST* Allocation;
    /*0x014*/     struct _RTL_RANGE_LIST* PossibleAllocation;
    /*0x018*/     struct _ARBITER_ORDERING_LIST OrderingList;
    /*0x020*/     struct _ARBITER_ORDERING_LIST ReservedList;
    /*0x028*/     LONG32       ReferenceCount;
    /*0x02C*/     struct _ARBITER_INTERFACE* Interface;
    /*0x030*/     ULONG32      AllocationStackMaxSize;
    /*0x034*/     struct _ARBITER_ALLOCATION_STATE* AllocationStack;
    /*0x038*/     PVOID UnpackRequirement;
    /*0x03C*/     PVOID PackResource;
    /*0x040*/     PVOID UnpackResource;
    /*0x044*/     PVOID ScoreRequirement;
    /*0x048*/     PVOID TestAllocation;
    /*0x04C*/     PVOID RetestAllocation;
    /*0x050*/     PVOID CommitAllocation;
    /*0x054*/     PVOID RollbackAllocation;
    /*0x058*/     PVOID BootAllocation;
    /*0x05C*/     PVOID QueryArbitrate;
    /*0x060*/     PVOID QueryConflict;
    /*0x064*/     PVOID AddReserved;
    /*0x068*/     PVOID StartArbiter;
    /*0x06C*/     PVOID PreprocessEntry;
    /*0x070*/     PVOID AllocateEntry;
    /*0x074*/     PVOID GetNextAllocationRange;
    /*0x078*/     PVOID FindSuitableRange;
    /*0x07C*/     PVOID AddAllocation;
    /*0x080*/     PVOID BacktrackAllocation;
    /*0x084*/     PVOID OverrideConflict;
    /*0x088*/     UINT8        TransactionInProgress;
    /*0x089*/     UINT8        _PADDING0_[0x3];
    /*0x08C*/     VOID*        Extension;
    /*0x090*/     struct _DEVICE_OBJECT* BusDeviceObject;
    /*0x094*/     VOID*        ConflictCallbackContext;
    /*0x098*/     PVOID ConflictCallback;
    }ARBITER_INSTANCE, *PARBITER_INSTANCE;
    typedef struct _ARBITER_LIST_ENTRY {
    /*0x000*/     struct _LIST_ENTRY ListEntry;
    /*0x008*/     ULONG32      AlternativeCount;
    /*0x00C*/     struct _IO_RESOURCE_DESCRIPTOR* Alternatives;
    /*0x010*/     struct _DEVICE_OBJECT* PhysicalDeviceObject;
    /*0x014*/     enum _ARBITER_REQUEST_SOURCE RequestSource;
    /*0x018*/     ULONG32      Flags;
    /*0x01C*/     LONG32       WorkSpace;
    /*0x020*/     enum _INTERFACE_TYPE InterfaceType;
    /*0x024*/     ULONG32      SlotNumber;
    /*0x028*/     ULONG32      BusNumber;
    /*0x02C*/     struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment;
    /*0x030*/     struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative;
    /*0x034*/     enum _ARBITER_RESULT Result;
    }ARBITER_LIST_ENTRY, *PARBITER_LIST_ENTRY;
    typedef struct _BITMAP_RANGE {
    /*0x000*/     struct _LIST_ENTRY Links;
    /*0x008*/     INT64        BasePage;
    /*0x010*/     ULONG32      FirstDirtyPage;
    /*0x014*/     ULONG32      LastDirtyPage;
    /*0x018*/     ULONG32      DirtyPages;
    /*0x01C*/     ULONG32*     Bitmap;
    }BITMAP_RANGE, *PBITMAP_RANGE;
    typedef struct _CALL_HASH_ENTRY {
    /*0x000*/     struct _LIST_ENTRY ListEntry;
    /*0x008*/     VOID*        CallersAddress;
    /*0x00C*/     VOID*        CallersCaller;
    /*0x010*/     ULONG32      CallCount;
    }CALL_HASH_ENTRY, *PCALL_HASH_ENTRY;
    typedef struct _CALL_PERFORMANCE_DATA {
    /*0x000*/     ULONG32      SpinLock;
    /*0x004*/     struct _LIST_ENTRY HashTable[64];
    }CALL_PERFORMANCE_DATA, *PCALL_PERFORMANCE_DATA;
    typedef struct _CM_KEY_BODY {
    /*0x000*/     ULONG32      Type;
    /*0x004*/     struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock;
    /*0x008*/     struct _CM_NOTIFY_BLOCK* NotifyBlock;
    /*0x00C*/     VOID*        ProcessID;
    /*0x010*/     ULONG32      Callers;
    /*0x014*/     VOID*        CallerAddress[10];
    /*0x03C*/     struct _LIST_ENTRY KeyBodyList;
    }CM_KEY_BODY, *PCM_KEY_BODY;
    typedef struct _CM_KEY_CONTROL_BLOCK {
    /*0x000*/     ULONG32      RefCount;
                  struct
                  {
    /*0x004*/         ULONG32      ExtFlags : 8;
    /*0x004*/         ULONG32      PrivateAlloc : 1;
    /*0x004*/         ULONG32      Delete : 1;
    /*0x004*/         ULONG32      DelayedCloseIndex : 12;
    /*0x004*/         ULONG32      TotalLevels : 10;
                  };
                  union
                  {
    /*0x008*/         struct _CM_KEY_HASH KeyHash;
                      struct
                      {
    /*0x008*/             ULONG32      ConvKey;
    /*0x00C*/             struct _CM_KEY_HASH* NextHash;
    /*0x010*/             struct _HHIVE* KeyHive;
    /*0x014*/             ULONG32      KeyCell;
                      };
                  };
    /*0x018*/     struct _CM_KEY_CONTROL_BLOCK* ParentKcb;
    /*0x01C*/     struct _CM_NAME_CONTROL_BLOCK* NameBlock;
    /*0x020*/     struct _CM_KEY_SECURITY_CACHE* CachedSecurity;
    /*0x024*/     struct _CACHED_CHILD_LIST ValueCache;
                  union
                  {
    /*0x02C*/         struct _CM_INDEX_HINT_BLOCK* IndexHint;
    /*0x02C*/         ULONG32      HashKey;
    /*0x02C*/         ULONG32      SubKeyCount;
                  };
                  union
                  {
    /*0x030*/         struct _LIST_ENTRY KeyBodyListHead;
    /*0x030*/         struct _LIST_ENTRY FreeListEntry;
                  };
    /*0x038*/     union _LARGE_INTEGER KcbLastWriteTime;
    /*0x040*/     UINT16       KcbMaxNameLen;
    /*0x042*/     UINT16       KcbMaxValueNameLen;
    /*0x044*/     ULONG32      KcbMaxValueDataLen;
                  struct
                  {
    /*0x048*/         ULONG32      KcbUserFlags : 4;
    /*0x048*/         ULONG32      KcbVirtControlFlags : 4;
    /*0x048*/         ULONG32      KcbDebug : 8;
    /*0x048*/         ULONG32      Flags : 16;
                  };
    }CM_KEY_CONTROL_BLOCK, *PCM_KEY_CONTROL_BLOCK;
    typedef struct _CM_KEY_NODE {
    /*0x000*/     UINT16       Signature;
    /*0x002*/     UINT16       Flags;
    /*0x004*/     union _LARGE_INTEGER LastWriteTime;
    /*0x00C*/     ULONG32      Spare;
    /*0x010*/     ULONG32      Parent;
    /*0x014*/     ULONG32      SubKeyCounts[2];
                  union
                  {
                      struct
                      {
    /*0x01C*/             ULONG32      SubKeyLists[2];
    /*0x024*/             struct _CHILD_LIST ValueList;
                      };
    /*0x01C*/         struct _CM_KEY_REFERENCE ChildHiveReference;
                  };
    /*0x02C*/     ULONG32      Security;
    /*0x030*/     ULONG32      Class;
                  struct
                  {
    /*0x034*/         ULONG32      MaxNameLen : 16;
    /*0x034*/         ULONG32      UserFlags : 4;
    /*0x034*/         ULONG32      VirtControlFlags : 4;
    /*0x034*/         ULONG32      Debug : 8;
                  };
    /*0x038*/     ULONG32      MaxClassLen;
    /*0x03C*/     ULONG32      MaxValueNameLen;
    /*0x040*/     ULONG32      MaxValueDataLen;
    /*0x044*/     ULONG32      WorkVar;
    /*0x048*/     UINT16       NameLength;
    /*0x04A*/     UINT16       ClassLength;
    /*0x04C*/     UINT16       Name[1];
    /*0x04E*/     UINT8        _PADDING0_[0x2];
    }CM_KEY_NODE, *PCM_KEY_NODE;
    typedef struct _CM_KEY_SECURITY {
    /*0x000*/     UINT16       Signature;
    /*0x002*/     UINT16       Reserved;
    /*0x004*/     ULONG32      Flink;
    /*0x008*/     ULONG32      Blink;
    /*0x00C*/     ULONG32      ReferenceCount;
    /*0x010*/     ULONG32      DescriptorLength;
    /*0x014*/     struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor;
    }CM_KEY_SECURITY, *PCM_KEY_SECURITY;
    typedef struct _CM_KEY_SECURITY_CACHE {
    /*0x000*/     ULONG32      Cell;
    /*0x004*/     ULONG32      ConvKey;
    /*0x008*/     struct _LIST_ENTRY List;
    /*0x010*/     ULONG32      DescriptorLength;
    /*0x014*/     struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor;
    }CM_KEY_SECURITY_CACHE, *PCM_KEY_SECURITY_CACHE;
    typedef struct _CM_NAME_CONTROL_BLOCK {
    /*0x000*/     UINT8        Compressed;
    /*0x001*/     UINT8        _PADDING0_[0x1];
    /*0x002*/     UINT16       RefCount;
                  union
                  {
    /*0x004*/         struct _CM_NAME_HASH NameHash;
                      struct
                      {
    /*0x004*/             ULONG32      ConvKey;
    /*0x008*/             struct _CM_KEY_HASH* NextHash;
    /*0x00C*/             UINT16       NameLength;
    /*0x00E*/             UINT16       Name[1];
                      };
                  };
    }CM_NAME_CONTROL_BLOCK, *PCM_NAME_CONTROL_BLOCK;
    typedef struct _CM_NOTIFY_BLOCK {
    /*0x000*/     struct _LIST_ENTRY HiveList;
    /*0x008*/     struct _LIST_ENTRY PostList;
    /*0x010*/     struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock;
    /*0x014*/     struct _CM_KEY_BODY* KeyBody;
                  struct
                  {
    /*0x018*/         ULONG32      Filter : 30;
    /*0x018*/         ULONG32      WatchTree : 1;
    /*0x018*/         ULONG32      NotifyPending : 1;
                  };
    /*0x01C*/     struct _SECURITY_SUBJECT_CONTEXT SubjectContext;
    }CM_NOTIFY_BLOCK, *PCM_NOTIFY_BLOCK;
    typedef struct _CM_PARTIAL_RESOURCE_LIST {
    /*0x000*/     UINT16       Version;
    /*0x002*/     UINT16       Revision;
    /*0x004*/     ULONG32      Count;
    /*0x008*/     struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
    }CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
    typedef struct _CM_VIEW_OF_FILE {
    /*0x000*/     struct _LIST_ENTRY LRUViewList;
    /*0x008*/     struct _LIST_ENTRY PinViewList;
    /*0x010*/     ULONG32      FileOffset;
    /*0x014*/     ULONG32      Size;
    /*0x018*/     ULONG32*     ViewAddress;
    /*0x01C*/     VOID*        Bcb;
    /*0x020*/     ULONG32      UseCount;
    }CM_VIEW_OF_FILE, *PCM_VIEW_OF_FILE;
    typedef struct _CONTEXT {
    /*0x000*/     ULONG32      ContextFlags;
    /*0x004*/     ULONG32      Dr0;
    /*0x008*/     ULONG32      Dr1;
    /*0x00C*/     ULONG32      Dr2;
    /*0x010*/     ULONG32      Dr3;
    /*0x014*/     ULONG32      Dr6;
    /*0x018*/     ULONG32      Dr7;
    /*0x01C*/     struct _FLOATING_SAVE_AREA FloatSave;
    /*0x08C*/     ULONG32      SegGs;
    /*0x090*/     ULONG32      SegFs;
    /*0x094*/     ULONG32      SegEs;
    /*0x098*/     ULONG32      SegDs;
    /*0x09C*/     ULONG32      Edi;
    /*0x0A0*/     ULONG32      Esi;
    /*0x0A4*/     ULONG32      Ebx;
    /*0x0A8*/     ULONG32      Edx;
    /*0x0AC*/     ULONG32      Ecx;
    /*0x0B0*/     ULONG32      Eax;
    /*0x0B4*/     ULONG32      Ebp;
    /*0x0B8*/     ULONG32      Eip;
    /*0x0BC*/     ULONG32      SegCs;
    /*0x0C0*/     ULONG32      EFlags;
    /*0x0C4*/     ULONG32      Esp;
    /*0x0C8*/     ULONG32      SegSs;
    /*0x0CC*/     UINT8        ExtendedRegisters[512];
    }CONTEXT, *PCONTEXT;
    typedef struct _CONTROL_AREA {
    /*0x000*/     struct _SEGMENT* Segment;
    /*0x004*/     struct _LIST_ENTRY DereferenceList;
    /*0x00C*/     ULONG32      NumberOfSectionReferences;
    /*0x010*/     ULONG32      NumberOfPfnReferences;
    /*0x014*/     ULONG32      NumberOfMappedViews;
    /*0x018*/     UINT16       NumberOfSubsections;
    /*0x01A*/     UINT16       FlushInProgressCount;
    /*0x01C*/     ULONG32      NumberOfUserReferences;
                  union
                  {
    /*0x020*/         ULONG32      LongFlags;
    /*0x020*/         struct _MMSECTION_FLAGS Flags;
                  }u;
    /*0x024*/     struct _FILE_OBJECT* FilePointer;
    /*0x028*/     struct _EVENT_COUNTER* WaitingForDeletion;
    /*0x02C*/     UINT16       ModifiedWriteCount;
    /*0x02E*/     UINT16       NumberOfSystemCacheViews;
    }CONTROL_AREA, *PCONTROL_AREA;
    typedef struct _CURDIR {
    /*0x000*/     struct _UNICODE_STRING DosPath;
    /*0x008*/     VOID*        Handle;
    }CURDIR, *PCURDIR;
    typedef struct _DBGKD_ANY_CONTROL_SET {
                  union
                  {
    /*0x000*/         struct _X86_DBGKD_CONTROL_SET X86ControlSet;
    /*0x000*/         ULONG32      AlphaControlSet;
    /*0x000*/         struct _IA64_DBGKD_CONTROL_SET IA64ControlSet;
    /*0x000*/         struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet;
                  };
    }DBGKD_ANY_CONTROL_SET, *PDBGKD_ANY_CONTROL_SET;
    typedef struct _DBGKM_EXCEPTION32 {
    /*0x000*/     struct _EXCEPTION_RECORD32 ExceptionRecord;
    /*0x050*/     ULONG32      FirstChance;
    }DBGKM_EXCEPTION32, *PDBGKM_EXCEPTION32;
    typedef struct _DBGKM_EXCEPTION64 {
    /*0x000*/     struct _EXCEPTION_RECORD64 ExceptionRecord;
    /*0x098*/     ULONG32      FirstChance;
    /*0x09C*/     UINT8        _PADDING0_[0x4];
    }DBGKM_EXCEPTION64, *PDBGKM_EXCEPTION64;
    typedef struct _DEFERRED_WRITE {
    /*0x000*/     INT16        NodeTypeCode;
    /*0x002*/     INT16        NodeByteSize;
    /*0x004*/     struct _FILE_OBJECT* FileObject;
    /*0x008*/     ULONG32      BytesToWrite;
    /*0x00C*/     struct _LIST_ENTRY DeferredWriteLinks;
    /*0x014*/     struct _KEVENT* Event;
    /*0x018*/     PVOID PostRoutine;
    /*0x01C*/     VOID*        Context1;
    /*0x020*/     VOID*        Context2;
    /*0x024*/     UINT8        LimitModifiedPages;
    /*0x025*/     UINT8        _PADDING0_[0x3];
    }DEFERRED_WRITE, *PDEFERRED_WRITE;
    typedef struct _DEVICE_NODE {
    /*0x000*/     struct _DEVICE_NODE* Sibling;
    /*0x004*/     struct _DEVICE_NODE* Child;
    /*0x008*/     struct _DEVICE_NODE* Parent;
    /*0x00C*/     struct _DEVICE_NODE* LastChild;
    /*0x010*/     ULONG32      Level;
    /*0x014*/     struct _PO_DEVICE_NOTIFY* Notify;
    /*0x018*/     enum _PNP_DEVNODE_STATE State;
    /*0x01C*/     enum _PNP_DEVNODE_STATE PreviousState;
    /*0x020*/     enum _PNP_DEVNODE_STATE StateHistory[20];
    /*0x070*/     ULONG32      StateHistoryEntry;
    /*0x074*/     LONG32       CompletionStatus;
    /*0x078*/     struct _IRP* PendingIrp;
    /*0x07C*/     ULONG32      Flags;
    /*0x080*/     ULONG32      UserFlags;
    /*0x084*/     ULONG32      Problem;
    /*0x088*/     struct _DEVICE_OBJECT* PhysicalDeviceObject;
    /*0x08C*/     struct _CM_RESOURCE_LIST* ResourceList;
    /*0x090*/     struct _CM_RESOURCE_LIST* ResourceListTranslated;
    /*0x094*/     struct _UNICODE_STRING InstancePath;
    /*0x09C*/     struct _UNICODE_STRING ServiceName;
    /*0x0A4*/     struct _DEVICE_OBJECT* DuplicatePDO;
    /*0x0A8*/     struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements;
    /*0x0AC*/     enum _INTERFACE_TYPE InterfaceType;
    /*0x0B0*/     ULONG32      BusNumber;
    /*0x0B4*/     enum _INTERFACE_TYPE ChildInterfaceType;
    /*0x0B8*/     ULONG32      ChildBusNumber;
    /*0x0BC*/     UINT16       ChildBusTypeIndex;
    /*0x0BE*/     UINT8        RemovalPolicy;
    /*0x0BF*/     UINT8        HardwareRemovalPolicy;
    /*0x0C0*/     struct _LIST_ENTRY TargetDeviceNotify;
    /*0x0C8*/     struct _LIST_ENTRY DeviceArbiterList;
    /*0x0D0*/     struct _LIST_ENTRY DeviceTranslatorList;
    /*0x0D8*/     UINT16       NoTranslatorMask;
    /*0x0DA*/     UINT16       QueryTranslatorMask;
    /*0x0DC*/     UINT16       NoArbiterMask;
    /*0x0DE*/     UINT16       QueryArbiterMask;
                  union
                  {
    /*0x0E0*/         struct _DEVICE_NODE* LegacyDeviceNode;
    /*0x0E0*/         struct _DEVICE_RELATIONS* PendingDeviceRelations;
                  }OverUsed1;
                  union
                  {
    /*0x0E4*/         struct _DEVICE_NODE* NextResourceDeviceNode;
                  }OverUsed2;
    /*0x0E8*/     struct _CM_RESOURCE_LIST* BootResources;
    /*0x0EC*/     ULONG32      CapabilityFlags;
                  struct
                  {
    /*0x0F0*/         enum _PROFILE_STATUS DockStatus;
    /*0x0F4*/         struct _LIST_ENTRY ListEntry;
    /*0x0FC*/         UINT16*      SerialNumber;
                  }DockInfo;
    /*0x100*/     ULONG32      DisableableDepends;
    /*0x104*/     struct _LIST_ENTRY PendedSetInterfaceState;
    /*0x10C*/     struct _LIST_ENTRY LegacyBusListEntry;
    /*0x114*/     ULONG32      DriverUnloadRetryCount;
    }DEVICE_NODE, *PDEVICE_NODE;
    typedef struct _DISPATCHER_HEADER {
    /*0x000*/     UINT8        Type;
    /*0x001*/     UINT8        Absolute;
    /*0x002*/     UINT8        Size;
    /*0x003*/     UINT8        Inserted;
    /*0x004*/     LONG32       SignalState;
    /*0x008*/     struct _LIST_ENTRY WaitListHead;
    }DISPATCHER_HEADER, *PDISPATCHER_HEADER;
    typedef struct _DRIVER_EXTENSION {
    /*0x000*/     struct _DRIVER_OBJECT* DriverObject;
    /*0x004*/     PVOID AddDevice;
    /*0x008*/     ULONG32      Count;
    /*0x00C*/     struct _UNICODE_STRING ServiceKeyName;
    /*0x014*/     struct _IO_CLIENT_EXTENSION* ClientDriverExtension;
    /*0x018*/     struct _FS_FILTER_CALLBACKS* FsFilterCallbacks;
    }DRIVER_EXTENSION, *PDRIVER_EXTENSION;
    typedef struct _DRIVER_OBJECT {
    /*0x000*/     INT16        Type;
    /*0x002*/     INT16        Size;
    /*0x004*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x008*/     ULONG32      Flags;
    /*0x00C*/     VOID*        DriverStart;
    /*0x010*/     ULONG32      DriverSize;
    /*0x014*/     VOID*        DriverSection;
    /*0x018*/     struct _DRIVER_EXTENSION* DriverExtension;
    /*0x01C*/     struct _UNICODE_STRING DriverName;
    /*0x024*/     struct _UNICODE_STRING* HardwareDatabase;
    /*0x028*/     struct _FAST_IO_DISPATCH* FastIoDispatch;
    /*0x02C*/     PVOID DriverInit;
    /*0x030*/     PVOID DriverStartIo;
    /*0x034*/     PVOID DriverUnload;
    /*0x038*/     PVOID MajorFunction[28];
    }DRIVER_OBJECT, *PDRIVER_OBJECT;
    typedef struct _DUAL {
    /*0x000*/     ULONG32      Length;
    /*0x004*/     struct _HMAP_DIRECTORY* Map;
    /*0x008*/     struct _HMAP_TABLE* SmallDir;
    /*0x00C*/     ULONG32      Guard;
    /*0x010*/     struct _RTL_BITMAP FreeDisplay[24];
    /*0x0D0*/     ULONG32      FreeSummary;
    /*0x0D4*/     struct _LIST_ENTRY FreeBins;
    }DUAL, *PDUAL;
    typedef struct _DUMP_INITIALIZATION_CONTEXT {
    /*0x000*/     ULONG32      Length;
    /*0x004*/     ULONG32      Reserved;
    /*0x008*/     VOID*        MemoryBlock;
    /*0x00C*/     VOID*        CommonBuffer[2];
    /*0x014*/     UINT8        _PADDING0_[0x4];
    /*0x018*/     union _LARGE_INTEGER PhysicalAddress[2];
    /*0x028*/     PVOID StallRoutine;
    /*0x02C*/     PVOID OpenRoutine;
    /*0x030*/     PVOID WriteRoutine;
    /*0x034*/     PVOID FinishRoutine;
    /*0x038*/     struct _ADAPTER_OBJECT* AdapterObject;
    /*0x03C*/     VOID*        MappedRegisterBase;
    /*0x040*/     VOID*        PortConfiguration;
    /*0x044*/     UINT8        CrashDump;
    /*0x045*/     UINT8        _PADDING1_[0x3];
    /*0x048*/     ULONG32      MaximumTransferSize;
    /*0x04C*/     ULONG32      CommonBufferSize;
    /*0x050*/     VOID*        TargetAddress;
    /*0x054*/     PVOID WritePendingRoutine;
    /*0x058*/     ULONG32      PartitionStyle;
                  union
                  {
                      struct
                      {
    /*0x05C*/             ULONG32      Signature;
    /*0x060*/             ULONG32      CheckSum;
                      }Mbr;
                      struct
                      {
    /*0x05C*/             struct _GUID DiskId;
                      }Gpt;
                  }DiskInfo;
    }DUMP_INITIALIZATION_CONTEXT, *PDUMP_INITIALIZATION_CONTEXT;
    typedef struct _EPROCESS_QUOTA_BLOCK {
    /*0x000*/     struct _EPROCESS_QUOTA_ENTRY QuotaEntry[3];
    /*0x030*/     struct _LIST_ENTRY QuotaList;
    /*0x038*/     ULONG32      ReferenceCount;
    /*0x03C*/     ULONG32      ProcessCount;
    }EPROCESS_QUOTA_BLOCK, *PEPROCESS_QUOTA_BLOCK;
    typedef struct _ERESOURCE {
    /*0x000*/     struct _LIST_ENTRY SystemResourcesList;
    /*0x008*/     struct _OWNER_ENTRY* OwnerTable;
    /*0x00C*/     INT16        ActiveCount;
    /*0x00E*/     UINT16       Flag;
    /*0x010*/     struct _KSEMAPHORE* SharedWaiters;
    /*0x014*/     struct _KEVENT* ExclusiveWaiters;
    /*0x018*/     struct _OWNER_ENTRY OwnerThreads[2];
    /*0x028*/     ULONG32      ContentionCount;
    /*0x02C*/     UINT16       NumberOfSharedWaiters;
    /*0x02E*/     UINT16       NumberOfExclusiveWaiters;
                  union
                  {
    /*0x030*/         VOID*        Address;
    /*0x030*/         ULONG32      CreatorBackTraceIndex;
                  };
    /*0x034*/     ULONG32      SpinLock;
    }ERESOURCE, *PERESOURCE;
    typedef struct _FX_SAVE_AREA {
                  union
                  {
    /*0x000*/         struct _FNSAVE_FORMAT FnArea;
    /*0x000*/         struct _FXSAVE_FORMAT FxArea;
                  }U;
    /*0x208*/     ULONG32      NpxSavedCpu;
    /*0x20C*/     ULONG32      Cr0NpxState;
    }FX_SAVE_AREA, *PFX_SAVE_AREA;
    typedef struct _GENERAL_LOOKASIDE {
    /*0x000*/     union _SLIST_HEADER ListHead;
    /*0x008*/     UINT16       Depth;
    /*0x00A*/     UINT16       MaximumDepth;
    /*0x00C*/     ULONG32      TotalAllocates;
                  union
                  {
    /*0x010*/         ULONG32      AllocateMisses;
    /*0x010*/         ULONG32      AllocateHits;
                  };
    /*0x014*/     ULONG32      TotalFrees;
                  union
                  {
    /*0x018*/         ULONG32      FreeMisses;
    /*0x018*/         ULONG32      FreeHits;
                  };
    /*0x01C*/     enum _POOL_TYPE Type;
    /*0x020*/     ULONG32      Tag;
    /*0x024*/     ULONG32      Size;
    /*0x028*/     PVOID Allocate;
    /*0x02C*/     PVOID Free;
    /*0x030*/     struct _LIST_ENTRY ListEntry;
    /*0x038*/     ULONG32      LastTotalAllocates;
                  union
                  {
    /*0x03C*/         ULONG32      LastAllocateMisses;
    /*0x03C*/         ULONG32      LastAllocateHits;
                  };
    /*0x040*/     ULONG32      Future[2];
    /*0x048*/     UINT8        _PADDING0_[0x38];
    }GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE;
    typedef struct _HANDLE_TABLE {
    /*0x000*/     ULONG32      TableCode;
    /*0x004*/     struct _EPROCESS* QuotaProcess;
    /*0x008*/     VOID*        UniqueProcessId;
    /*0x00C*/     struct _EX_PUSH_LOCK HandleTableLock[4];
    /*0x01C*/     struct _LIST_ENTRY HandleTableList;
    /*0x024*/     struct _EX_PUSH_LOCK HandleContentionEvent;
    /*0x028*/     struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo;
    /*0x02C*/     LONG32       ExtraInfoPages;
    /*0x030*/     ULONG32      FirstFree;
    /*0x034*/     ULONG32      LastFree;
    /*0x038*/     ULONG32      NextHandleNeedingPool;
    /*0x03C*/     LONG32       HandleCount;
                  union
                  {
    /*0x040*/         ULONG32      Flags;
    /*0x040*/         UINT8        StrictFIFO : 1;
                  };
    }HANDLE_TABLE, *PHANDLE_TABLE;
    typedef struct _HANDLE_TRACE_DB_ENTRY {
    /*0x000*/     struct _CLIENT_ID ClientId;
    /*0x008*/     VOID*        Handle;
    /*0x00C*/     ULONG32      Type;
    /*0x010*/     VOID*        StackTrace[16];
    }HANDLE_TRACE_DB_ENTRY, *PHANDLE_TRACE_DB_ENTRY;
    typedef struct _HEAP {
    /*0x000*/     struct _HEAP_ENTRY Entry;
    /*0x008*/     ULONG32      Signature;
    /*0x00C*/     ULONG32      Flags;
    /*0x010*/     ULONG32      ForceFlags;
    /*0x014*/     ULONG32      VirtualMemoryThreshold;
    /*0x018*/     ULONG32      SegmentReserve;
    /*0x01C*/     ULONG32      SegmentCommit;
    /*0x020*/     ULONG32      DeCommitFreeBlockThreshold;
    /*0x024*/     ULONG32      DeCommitTotalFreeThreshold;
    /*0x028*/     ULONG32      TotalFreeSize;
    /*0x02C*/     ULONG32      MaximumAllocationSize;
    /*0x030*/     UINT16       ProcessHeapsListIndex;
    /*0x032*/     UINT16       HeaderValidateLength;
    /*0x034*/     VOID*        HeaderValidateCopy;
    /*0x038*/     UINT16       NextAvailableTagIndex;
    /*0x03A*/     UINT16       MaximumTagIndex;
    /*0x03C*/     struct _HEAP_TAG_ENTRY* TagEntries;
    /*0x040*/     struct _HEAP_UCR_SEGMENT* UCRSegments;
    /*0x044*/     struct _HEAP_UNCOMMMTTED_RANGE* UnusedUnCommittedRanges;
    /*0x048*/     ULONG32      AlignRound;
    /*0x04C*/     ULONG32      AlignMask;
    /*0x050*/     struct _LIST_ENTRY VirtualAllocdBlocks;
    /*0x058*/     struct _HEAP_SEGMENT* Segments[64];
                  union
                  {
    /*0x158*/         ULONG32      FreeListsInUseUlong[4];
    /*0x158*/         UINT8        FreeListsInUseBytes[16];
                  }u;
                  union
                  {
    /*0x168*/         UINT16       FreeListsInUseTerminate;
    /*0x168*/         UINT16       DecommitCount;
                  }u2;
    /*0x16A*/     UINT16       AllocatorBackTraceIndex;
    /*0x16C*/     ULONG32      NonDedicatedListLength;
    /*0x170*/     VOID*        LargeBlocksIndex;
    /*0x174*/     struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries;
    /*0x178*/     struct _LIST_ENTRY FreeLists[128];
    /*0x578*/     struct _HEAP_LOCK* LockVariable;
    /*0x57C*/     PVOID CommitRoutine;
    /*0x580*/     VOID*        FrontEndHeap;
    /*0x584*/     UINT16       FrontHeapLockCount;
    /*0x586*/     UINT8        FrontEndHeapType;
    /*0x587*/     UINT8        LastSegmentIndex;
    }HEAP, *PHEAP;
    typedef struct _HEAP_FREE_ENTRY {
                  union
                  {
                      struct
                      {
    /*0x000*/             UINT16       Size;
    /*0x002*/             UINT16       PreviousSize;
                      };
    /*0x000*/         VOID*        SubSegmentCode;
                  };
    /*0x004*/     UINT8        SmallTagIndex;
    /*0x005*/     UINT8        Flags;
    /*0x006*/     UINT8        UnusedBytes;
    /*0x007*/     UINT8        SegmentIndex;
    /*0x008*/     struct _LIST_ENTRY FreeList;
    }HEAP_FREE_ENTRY, *PHEAP_FREE_ENTRY;
    typedef struct _HEAP_SEGMENT {
    /*0x000*/     struct _HEAP_ENTRY Entry;
    /*0x008*/     ULONG32      Signature;
    /*0x00C*/     ULONG32      Flags;
    /*0x010*/     struct _HEAP* Heap;
    /*0x014*/     ULONG32      LargestUnCommittedRange;
    /*0x018*/     VOID*        BaseAddress;
    /*0x01C*/     ULONG32      NumberOfPages;
    /*0x020*/     struct _HEAP_ENTRY* FirstEntry;
    /*0x024*/     struct _HEAP_ENTRY* LastValidEntry;
    /*0x028*/     ULONG32      NumberOfUnCommittedPages;
    /*0x02C*/     ULONG32      NumberOfUnCommittedRanges;
    /*0x030*/     struct _HEAP_UNCOMMMTTED_RANGE* UnCommittedRanges;
    /*0x034*/     UINT16       AllocatorBackTraceIndex;
    /*0x036*/     UINT16       Reserved;
    /*0x038*/     struct _HEAP_ENTRY* LastEntryInSegment;
    }HEAP_SEGMENT, *PHEAP_SEGMENT;
    typedef struct _HEAP_STOP_ON_VALUES {
    /*0x000*/     ULONG32      AllocAddress;
    /*0x004*/     struct _HEAP_STOP_ON_TAG AllocTag;
    /*0x008*/     ULONG32      ReAllocAddress;
    /*0x00C*/     struct _HEAP_STOP_ON_TAG ReAllocTag;
    /*0x010*/     ULONG32      FreeAddress;
    /*0x014*/     struct _HEAP_STOP_ON_TAG FreeTag;
    }HEAP_STOP_ON_VALUES, *PHEAP_STOP_ON_VALUES;
    typedef struct _HEAP_SUBSEGMENT {
    /*0x000*/     VOID*        Bucket;
    /*0x004*/     struct _HEAP_USERDATA_HEADER* UserBlocks;
    /*0x008*/     struct _INTERLOCK_SEQ AggregateExchg;
                  union
                  {
                      struct
                      {
    /*0x010*/             UINT16       BlockSize;
    /*0x012*/             UINT16       FreeThreshold;
    /*0x014*/             UINT16       BlockCount;
    /*0x016*/             UINT8        SizeIndex;
    /*0x017*/             UINT8        AffinityIndex;
                      };
    /*0x010*/         ULONG32      Alignment[2];
                  };
    /*0x018*/     struct _SINGLE_LIST_ENTRY SFreeListEntry;
    /*0x01C*/     ULONG32      Lock;
    }HEAP_SUBSEGMENT, *PHEAP_SUBSEGMENT;
    typedef struct _HEAP_USERDATA_HEADER {
                  union
                  {
    /*0x000*/         struct _SINGLE_LIST_ENTRY SFreeListEntry;
    /*0x000*/         struct _HEAP_SUBSEGMENT* SubSegment;
                  };
    /*0x004*/     VOID*        HeapHandle;
    /*0x008*/     ULONG32      SizeIndex;
    /*0x00C*/     ULONG32      Signature;
    }HEAP_USERDATA_HEADER, *PHEAP_USERDATA_HEADER;
    typedef struct _HEAP_VIRTUAL_ALLOC_ENTRY {
    /*0x000*/     struct _LIST_ENTRY Entry;
    /*0x008*/     struct _HEAP_ENTRY_EXTRA ExtraStuff;
    /*0x010*/     ULONG32      CommitSize;
    /*0x014*/     ULONG32      ReserveSize;
    /*0x018*/     struct _HEAP_ENTRY BusyBlock;
    }HEAP_VIRTUAL_ALLOC_ENTRY, *PHEAP_VIRTUAL_ALLOC_ENTRY;
    typedef struct _HMAP_TABLE {
    /*0x000*/     struct _HMAP_ENTRY Table[512];
    }HMAP_TABLE, *PHMAP_TABLE;
    typedef struct _IMAGE_OPTIONAL_HEADER {
    /*0x000*/     UINT16       Magic;
    /*0x002*/     UINT8        MajorLinkerVersion;
    /*0x003*/     UINT8        MinorLinkerVersion;
    /*0x004*/     ULONG32      SizeOfCode;
    /*0x008*/     ULONG32      SizeOfInitializedData;
    /*0x00C*/     ULONG32      SizeOfUninitializedData;
    /*0x010*/     ULONG32      AddressOfEntryPoint;
    /*0x014*/     ULONG32      BaseOfCode;
    /*0x018*/     ULONG32      BaseOfData;
    /*0x01C*/     ULONG32      ImageBase;
    /*0x020*/     ULONG32      SectionAlignment;
    /*0x024*/     ULONG32      FileAlignment;
    /*0x028*/     UINT16       MajorOperatingSystemVersion;
    /*0x02A*/     UINT16       MinorOperatingSystemVersion;
    /*0x02C*/     UINT16       MajorImageVersion;
    /*0x02E*/     UINT16       MinorImageVersion;
    /*0x030*/     UINT16       MajorSubsystemVersion;
    /*0x032*/     UINT16       MinorSubsystemVersion;
    /*0x034*/     ULONG32      Win32VersionValue;
    /*0x038*/     ULONG32      SizeOfImage;
    /*0x03C*/     ULONG32      SizeOfHeaders;
    /*0x040*/     ULONG32      CheckSum;
    /*0x044*/     UINT16       Subsystem;
    /*0x046*/     UINT16       DllCharacteristics;
    /*0x048*/     ULONG32      SizeOfStackReserve;
    /*0x04C*/     ULONG32      SizeOfStackCommit;
    /*0x050*/     ULONG32      SizeOfHeapReserve;
    /*0x054*/     ULONG32      SizeOfHeapCommit;
    /*0x058*/     ULONG32      LoaderFlags;
    /*0x05C*/     ULONG32      NumberOfRvaAndSizes;
    /*0x060*/     struct _IMAGE_DATA_DIRECTORY DataDirectory[16];
    }IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;
    typedef struct _IO_RESOURCE_LIST {
    /*0x000*/     UINT16       Version;
    /*0x002*/     UINT16       Revision;
    /*0x004*/     ULONG32      Count;
    /*0x008*/     struct _IO_RESOURCE_DESCRIPTOR Descriptors[1];
    }IO_RESOURCE_LIST, *PIO_RESOURCE_LIST;
    typedef struct _IO_TIMER {
    /*0x000*/     INT16        Type;
    /*0x002*/     INT16        TimerFlag;
    /*0x004*/     struct _LIST_ENTRY TimerList;
    /*0x00C*/     PVOID TimerRoutine;
    /*0x010*/     VOID*        Context;
    /*0x014*/     struct _DEVICE_OBJECT* DeviceObject;
    }IO_TIMER, *PIO_TIMER;
    typedef struct _KAPC {
    /*0x000*/     INT16        Type;
    /*0x002*/     INT16        Size;
    /*0x004*/     ULONG32      Spare0;
    /*0x008*/     struct _KTHREAD* Thread;
    /*0x00C*/     struct _LIST_ENTRY ApcListEntry;
    /*0x014*/     PVOID KernelRoutine;
    /*0x018*/     PVOID RundownRoutine;
    /*0x01C*/     PVOID NormalRoutine;
    /*0x020*/     VOID*        NormalContext;
    /*0x024*/     VOID*        SystemArgument1;
    /*0x028*/     VOID*        SystemArgument2;
    /*0x02C*/     CHAR         ApcStateIndex;
    /*0x02D*/     CHAR         ApcMode;
    /*0x02E*/     UINT8        Inserted;
    /*0x02F*/     UINT8        _PADDING0_[0x1];
    }KAPC, *PKAPC;
    typedef struct _KAPC_STATE {
    /*0x000*/     struct _LIST_ENTRY ApcListHead[2];
    /*0x010*/     struct _KPROCESS* Process;
    /*0x014*/     UINT8        KernelApcInProgress;
    /*0x015*/     UINT8        KernelApcPending;
    /*0x016*/     UINT8        UserApcPending;
    /*0x017*/     UINT8        _PADDING0_[0x1];
    }KAPC_STATE, *PKAPC_STATE;
    typedef struct _KDEVICE_QUEUE {
    /*0x000*/     INT16        Type;
    /*0x002*/     INT16        Size;
    /*0x004*/     struct _LIST_ENTRY DeviceListHead;
    /*0x00C*/     ULONG32      Lock;
    /*0x010*/     UINT8        Busy;
    /*0x011*/     UINT8        _PADDING0_[0x3];
    }KDEVICE_QUEUE, *PKDEVICE_QUEUE;
    typedef struct _KDEVICE_QUEUE_ENTRY {
    /*0x000*/     struct _LIST_ENTRY DeviceListEntry;
    /*0x008*/     ULONG32      SortKey;
    /*0x00C*/     UINT8        Inserted;
    /*0x00D*/     UINT8        _PADDING0_[0x3];
    }KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY;
    typedef struct _KDPC {
    /*0x000*/     INT16        Type;
    /*0x002*/     UINT8        Number;
    /*0x003*/     UINT8        Importance;
    /*0x004*/     struct _LIST_ENTRY DpcListEntry;
    /*0x00C*/     PVOID DeferredRoutine;
    /*0x010*/     VOID*        DeferredContext;
    /*0x014*/     VOID*        SystemArgument1;
    /*0x018*/     VOID*        SystemArgument2;
    /*0x01C*/     ULONG32*     Lock;
    }KDPC, *PKDPC;
    typedef struct _KINTERRUPT {
    /*0x000*/     INT16        Type;
    /*0x002*/     INT16        Size;
    /*0x004*/     struct _LIST_ENTRY InterruptListEntry;
    /*0x00C*/     PVOID ServiceRoutine;
    /*0x010*/     VOID*        ServiceContext;
    /*0x014*/     ULONG32      SpinLock;
    /*0x018*/     ULONG32      TickCount;
    /*0x01C*/     ULONG32*     ActualLock;
    /*0x020*/     PVOID DispatchAddress;
    /*0x024*/     ULONG32      Vector;
    /*0x028*/     UINT8        Irql;
    /*0x029*/     UINT8        SynchronizeIrql;
    /*0x02A*/     UINT8        FloatingSave;
    /*0x02B*/     UINT8        Connected;
    /*0x02C*/     CHAR         Number;
    /*0x02D*/     UINT8        ShareVector;
    /*0x02E*/     UINT8        _PADDING0_[0x2];
    /*0x030*/     enum _KINTERRUPT_MODE Mode;
    /*0x034*/     ULONG32      ServiceCount;
    /*0x038*/     ULONG32      DispatchCount;
    /*0x03C*/     ULONG32      DispatchCode[106];
    }KINTERRUPT, *PKINTERRUPT;
    typedef struct _KLOCK_QUEUE_HANDLE {
    /*0x000*/     struct _KSPIN_LOCK_QUEUE LockQueue;
    /*0x008*/     UINT8        OldIrql;
    /*0x009*/     UINT8        _PADDING0_[0x3];
    }KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
    typedef struct _KNODE {
    /*0x000*/     ULONG32      ProcessorMask;
    /*0x004*/     ULONG32      Color;
    /*0x008*/     ULONG32      MmShiftedColor;
    /*0x00C*/     ULONG32      FreeCount[2];
    /*0x014*/     UINT8        _PADDING0_[0x4];
    /*0x018*/     union _SLIST_HEADER DeadStackList;
    /*0x020*/     union _SLIST_HEADER PfnDereferenceSListHead;
    /*0x028*/     struct _SINGLE_LIST_ENTRY* PfnDeferredList;
    /*0x02C*/     UINT8        Seed;
    /*0x02D*/     struct _flags Flags;
    /*0x02E*/     UINT8        _PADDING1_[0x2];
    }KNODE, *PKNODE;
    typedef struct _KSPECIAL_REGISTERS {
    /*0x000*/     ULONG32      Cr0;
    /*0x004*/     ULONG32      Cr2;
    /*0x008*/     ULONG32      Cr3;
    /*0x00C*/     ULONG32      Cr4;
    /*0x010*/     ULONG32      KernelDr0;
    /*0x014*/     ULONG32      KernelDr1;
    /*0x018*/     ULONG32      KernelDr2;
    /*0x01C*/     ULONG32      KernelDr3;
    /*0x020*/     ULONG32      KernelDr6;
    /*0x024*/     ULONG32      KernelDr7;
    /*0x028*/     struct _DESCRIPTOR Gdtr;
    /*0x030*/     struct _DESCRIPTOR Idtr;
    /*0x038*/     UINT16       Tr;
    /*0x03A*/     UINT16       Ldtr;
    /*0x03C*/     ULONG32      Reserved[6];
    }KSPECIAL_REGISTERS, *PKSPECIAL_REGISTERS;
    typedef struct _KTSS {
    /*0x000*/      UINT16       Backlink;
    /*0x002*/      UINT16       Reserved0;
    /*0x004*/      ULONG32      Esp0;
    /*0x008*/      UINT16       Ss0;
    /*0x00A*/      UINT16       Reserved1;
    /*0x00C*/      ULONG32      NotUsed1[4];
    /*0x01C*/      ULONG32      CR3;
    /*0x020*/      ULONG32      Eip;
    /*0x024*/      ULONG32      EFlags;
    /*0x028*/      ULONG32      Eax;
    /*0x02C*/      ULONG32      Ecx;
    /*0x030*/      ULONG32      Edx;
    /*0x034*/      ULONG32      Ebx;
    /*0x038*/      ULONG32      Esp;
    /*0x03C*/      ULONG32      Ebp;
    /*0x040*/      ULONG32      Esi;
    /*0x044*/      ULONG32      Edi;
    /*0x048*/      UINT16       Es;
    /*0x04A*/      UINT16       Reserved2;
    /*0x04C*/      UINT16       Cs;
    /*0x04E*/      UINT16       Reserved3;
    /*0x050*/      UINT16       Ss;
    /*0x052*/      UINT16       Reserved4;
    /*0x054*/      UINT16       Ds;
    /*0x056*/      UINT16       Reserved5;
    /*0x058*/      UINT16       Fs;
    /*0x05A*/      UINT16       Reserved6;
    /*0x05C*/      UINT16       Gs;
    /*0x05E*/      UINT16       Reserved7;
    /*0x060*/      UINT16       LDT;
    /*0x062*/      UINT16       Reserved8;
    /*0x064*/      UINT16       Flags;
    /*0x066*/      UINT16       IoMapBase;
    /*0x068*/      struct _KiIoAccessMap IoMaps[1];
    /*0x208C*/     UINT8        IntDirectionMap[32];
    }KTSS, *PKTSS;
    typedef struct _KUSER_SHARED_DATA {
    /*0x000*/     ULONG32      TickCountLow;
    /*0x004*/     ULONG32      TickCountMultiplier;
    /*0x008*/     struct _KSYSTEM_TIME InterruptTime;
    /*0x014*/     struct _KSYSTEM_TIME SystemTime;
    /*0x020*/     struct _KSYSTEM_TIME TimeZoneBias;
    /*0x02C*/     UINT16       ImageNumberLow;
    /*0x02E*/     UINT16       ImageNumberHigh;
    /*0x030*/     UINT16       NtSystemRoot[260];
    /*0x238*/     ULONG32      MaxStackTraceDepth;
    /*0x23C*/     ULONG32      CryptoExponent;
    /*0x240*/     ULONG32      TimeZoneId;
    /*0x244*/     ULONG32      Reserved2[8];
    /*0x264*/     enum _NT_PRODUCT_TYPE NtProductType;
    /*0x268*/     UINT8        ProductTypeIsValid;
    /*0x269*/     UINT8        _PADDING0_[0x3];
    /*0x26C*/     ULONG32      NtMajorVersion;
    /*0x270*/     ULONG32      NtMinorVersion;
    /*0x274*/     UINT8        ProcessorFeatures[64];
    /*0x2B4*/     ULONG32      Reserved1;
    /*0x2B8*/     ULONG32      Reserved3;
    /*0x2BC*/     ULONG32      TimeSlip;
    /*0x2C0*/     enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
    /*0x2C4*/     UINT8        _PADDING1_[0x4];
    /*0x2C8*/     union _LARGE_INTEGER SystemExpirationDate;
    /*0x2D0*/     ULONG32      SuiteMask;
    /*0x2D4*/     UINT8        KdDebuggerEnabled;
    /*0x2D5*/     UINT8        NXSupportPolicy;
    /*0x2D6*/     UINT8        _PADDING2_[0x2];
    /*0x2D8*/     ULONG32      ActiveConsoleId;
    /*0x2DC*/     ULONG32      DismountCount;
    /*0x2E0*/     ULONG32      ComPlusPackage;
    /*0x2E4*/     ULONG32      LastSystemRITEventTickCount;
    /*0x2E8*/     ULONG32      NumberOfPhysicalPages;
    /*0x2EC*/     UINT8        SafeBootMode;
    /*0x2ED*/     UINT8        _PADDING3_[0x3];
    /*0x2F0*/     ULONG32      TraceLogging;
    /*0x2F4*/     UINT8        _PADDING4_[0x4];
    /*0x2F8*/     UINT64       TestRetInstruction;
    /*0x300*/     ULONG32      SystemCall;
    /*0x304*/     ULONG32      SystemCallReturn;
    /*0x308*/     UINT64       SystemCallPad[3];
                  union
                  {
    /*0x320*/         struct _KSYSTEM_TIME TickCount;
    /*0x320*/         UINT64       TickCountQuad;
                  };
    /*0x330*/     ULONG32      Cookie;
    /*0x334*/     UINT8        _PADDING5_[0x4];
    }KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
    typedef struct _KWAIT_BLOCK {
    /*0x000*/     struct _LIST_ENTRY WaitListEntry;
    /*0x008*/     struct _KTHREAD* Thread;
    /*0x00C*/     VOID*        Object;
    /*0x010*/     struct _KWAIT_BLOCK* NextWaitBlock;
    /*0x014*/     UINT16       WaitKey;
    /*0x016*/     UINT16       WaitType;
    }KWAIT_BLOCK, *PKWAIT_BLOCK;
    typedef struct _LARGE_CONTROL_AREA {
    /*0x000*/     struct _SEGMENT* Segment;
    /*0x004*/     struct _LIST_ENTRY DereferenceList;
    /*0x00C*/     ULONG32      NumberOfSectionReferences;
    /*0x010*/     ULONG32      NumberOfPfnReferences;
    /*0x014*/     ULONG32      NumberOfMappedViews;
    /*0x018*/     UINT16       NumberOfSubsections;
    /*0x01A*/     UINT16       FlushInProgressCount;
    /*0x01C*/     ULONG32      NumberOfUserReferences;
                  union
                  {
    /*0x020*/         ULONG32      LongFlags;
    /*0x020*/         struct _MMSECTION_FLAGS Flags;
                  }u;
    /*0x024*/     struct _FILE_OBJECT* FilePointer;
    /*0x028*/     struct _EVENT_COUNTER* WaitingForDeletion;
    /*0x02C*/     UINT16       ModifiedWriteCount;
    /*0x02E*/     UINT16       NumberOfSystemCacheViews;
    /*0x030*/     ULONG32      StartingFrame;
    /*0x034*/     struct _LIST_ENTRY UserGlobalList;
    /*0x03C*/     ULONG32      SessionId;
    }LARGE_CONTROL_AREA, *PLARGE_CONTROL_AREA;
    typedef struct _LDR_DATA_TABLE_ENTRY {
    /*0x000*/     struct _LIST_ENTRY InLoadOrderLinks;
    /*0x008*/     struct _LIST_ENTRY InMemoryOrderLinks;
    /*0x010*/     struct _LIST_ENTRY InInitializationOrderLinks;
    /*0x018*/     VOID*        DllBase;
    /*0x01C*/     VOID*        EntryPoint;
    /*0x020*/     ULONG32      SizeOfImage;
    /*0x024*/     struct _UNICODE_STRING FullDllName;
    /*0x02C*/     struct _UNICODE_STRING BaseDllName;
    /*0x034*/     ULONG32      Flags;
    /*0x038*/     UINT16       LoadCount;
    /*0x03A*/     UINT16       TlsIndex;
                  union
                  {
    /*0x03C*/         struct _LIST_ENTRY HashLinks;
                      struct
                      {
    /*0x03C*/             VOID*        SectionPointer;
    /*0x040*/             ULONG32      CheckSum;
                      };
                  };
                  union
                  {
    /*0x044*/         ULONG32      TimeDateStamp;
    /*0x044*/         VOID*        LoadedImports;
                  };
    /*0x048*/     VOID*        EntryPointActivationContext;
    /*0x04C*/     VOID*        PatchInformation;
    }LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
    typedef struct _LPCP_PORT_QUEUE {
    /*0x000*/     struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue;
    /*0x004*/     struct _KSEMAPHORE* Semaphore;
    /*0x008*/     struct _LIST_ENTRY ReceiveHead;
    }LPCP_PORT_QUEUE, *PLPCP_PORT_QUEUE;
    typedef struct _LUID_AND_ATTRIBUTES {
    /*0x000*/     struct _LUID Luid;
    /*0x008*/     ULONG32      Attributes;
    }LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
    typedef struct _MI_VERIFIER_DRIVER_ENTRY {
    /*0x000*/     struct _LIST_ENTRY Links;
    /*0x008*/     ULONG32      Loads;
    /*0x00C*/     ULONG32      Unloads;
    /*0x010*/     struct _UNICODE_STRING BaseName;
    /*0x018*/     VOID*        StartAddress;
    /*0x01C*/     VOID*        EndAddress;
    /*0x020*/     ULONG32      Flags;
    /*0x024*/     ULONG32      Signature;
    /*0x028*/     ULONG32      Reserved;
    /*0x02C*/     ULONG32      VerifierPoolLock;
    /*0x030*/     struct _VI_POOL_ENTRY* PoolHash;
    /*0x034*/     ULONG32      PoolHashSize;
    /*0x038*/     ULONG32      PoolHashFree;
    /*0x03C*/     ULONG32      PoolHashReserved;
    /*0x040*/     ULONG32      CurrentPagedPoolAllocations;
    /*0x044*/     ULONG32      CurrentNonPagedPoolAllocations;
    /*0x048*/     ULONG32      PeakPagedPoolAllocations;
    /*0x04C*/     ULONG32      PeakNonPagedPoolAllocations;
    /*0x050*/     ULONG32      PagedBytes;
    /*0x054*/     ULONG32      NonPagedBytes;
    /*0x058*/     ULONG32      PeakPagedBytes;
    /*0x05C*/     ULONG32      PeakNonPagedBytes;
    }MI_VERIFIER_DRIVER_ENTRY, *PMI_VERIFIER_DRIVER_ENTRY;
    typedef struct _MMFREE_POOL_ENTRY {
    /*0x000*/     struct _LIST_ENTRY List;
    /*0x008*/     ULONG32      Size;
    /*0x00C*/     ULONG32      Signature;
    /*0x010*/     struct _MMFREE_POOL_ENTRY* Owner;
    }MMFREE_POOL_ENTRY, *PMMFREE_POOL_ENTRY;
    typedef struct _MMMOD_WRITER_MDL_ENTRY {
    /*0x000*/     struct _LIST_ENTRY Links;
    /*0x008*/     union _LARGE_INTEGER WriteOffset;
                  union
                  {
    /*0x010*/         struct _IO_STATUS_BLOCK IoStatus;
    /*0x010*/         union _LARGE_INTEGER LastByte;
                  }u;
    /*0x018*/     struct _IRP* Irp;
    /*0x01C*/     ULONG32      LastPageToWrite;
    /*0x020*/     struct _MMMOD_WRITER_LISTHEAD* PagingListHead;
    /*0x024*/     struct _LIST_ENTRY* CurrentList;
    /*0x028*/     struct _MMPAGING_FILE* PagingFile;
    /*0x02C*/     struct _FILE_OBJECT* File;
    /*0x030*/     struct _CONTROL_AREA* ControlArea;
    /*0x034*/     struct _ERESOURCE* FileResource;
    /*0x038*/     struct _MDL  Mdl;
    /*0x054*/     ULONG32      Page[1];
    }MMMOD_WRITER_MDL_ENTRY, *PMMMOD_WRITER_MDL_ENTRY;
    typedef struct _MMPAGING_FILE {
    /*0x000*/     ULONG32      Size;
    /*0x004*/     ULONG32      MaximumSize;
    /*0x008*/     ULONG32      MinimumSize;
    /*0x00C*/     ULONG32      FreeSpace;
    /*0x010*/     ULONG32      CurrentUsage;
    /*0x014*/     ULONG32      PeakUsage;
    /*0x018*/     ULONG32      Hint;
    /*0x01C*/     ULONG32      HighestPage;
    /*0x020*/     struct _MMMOD_WRITER_MDL_ENTRY* Entry[2];
    /*0x028*/     struct _RTL_BITMAP* Bitmap;
    /*0x02C*/     struct _FILE_OBJECT* File;
    /*0x030*/     struct _UNICODE_STRING PageFileName;
    /*0x038*/     ULONG32      PageFileNumber;
    /*0x03C*/     UINT8        Extended;
    /*0x03D*/     UINT8        HintSetToZero;
    /*0x03E*/     UINT8        BootPartition;
    /*0x03F*/     UINT8        _PADDING0_[0x1];
    /*0x040*/     VOID*        FileHandle;
    }MMPAGING_FILE, *PMMPAGING_FILE;
    typedef struct _MMPTE {
                  union
                  {
    /*0x000*/         ULONG32      Long;
    /*0x000*/         struct _MMPTE_HARDWARE Hard;
    /*0x000*/         struct _HARDWARE_PTE Flush;
    /*0x000*/         struct _MMPTE_PROTOTYPE Proto;
    /*0x000*/         struct _MMPTE_SOFTWARE Soft;
    /*0x000*/         struct _MMPTE_TRANSITION Trans;
    /*0x000*/         struct _MMPTE_SUBSECTION Subsect;
    /*0x000*/         struct _MMPTE_LIST List;
                  }u;
    }MMPTE, *PMMPTE;
    typedef struct _MMSUPPORT {
    /*0x000*/     union _LARGE_INTEGER LastTrimTime;
    /*0x008*/     struct _MMSUPPORT_FLAGS Flags;
    /*0x00C*/     ULONG32      PageFaultCount;
    /*0x010*/     ULONG32      PeakWorkingSetSize;
    /*0x014*/     ULONG32      WorkingSetSize;
    /*0x018*/     ULONG32      MinimumWorkingSetSize;
    /*0x01C*/     ULONG32      MaximumWorkingSetSize;
    /*0x020*/     struct _MMWSL* VmWorkingSetList;
    /*0x024*/     struct _LIST_ENTRY WorkingSetExpansionLinks;
    /*0x02C*/     ULONG32      Claim;
    /*0x030*/     ULONG32      NextEstimationSlot;
    /*0x034*/     ULONG32      NextAgingSlot;
    /*0x038*/     ULONG32      EstimatedAvailable;
    /*0x03C*/     ULONG32      GrowthSinceLastEstimate;
    }MMSUPPORT, *PMMSUPPORT;
    typedef struct _MMVAD {
    /*0x000*/     ULONG32      StartingVpn;
    /*0x004*/     ULONG32      EndingVpn;
    /*0x008*/     struct _MMVAD* Parent;
    /*0x00C*/     struct _MMVAD* LeftChild;
    /*0x010*/     struct _MMVAD* RightChild;
                  union
                  {
    /*0x014*/         ULONG32      LongFlags;
    /*0x014*/         struct _MMVAD_FLAGS VadFlags;
                  }u;
    /*0x018*/     struct _CONTROL_AREA* ControlArea;
    /*0x01C*/     struct _MMPTE* FirstPrototypePte;
    /*0x020*/     struct _MMPTE* LastContiguousPte;
                  union
                  {
    /*0x024*/         ULONG32      LongFlags2;
    /*0x024*/         struct _MMVAD_FLAGS2 VadFlags2;
                  }u2;
    }MMVAD, *PMMVAD;
    typedef struct _MMVAD_LONG {
    /*0x000*/     ULONG32      StartingVpn;
    /*0x004*/     ULONG32      EndingVpn;
    /*0x008*/     struct _MMVAD* Parent;
    /*0x00C*/     struct _MMVAD* LeftChild;
    /*0x010*/     struct _MMVAD* RightChild;
                  union
                  {
    /*0x014*/         ULONG32      LongFlags;
    /*0x014*/         struct _MMVAD_FLAGS VadFlags;
                  }u;
    /*0x018*/     struct _CONTROL_AREA* ControlArea;
    /*0x01C*/     struct _MMPTE* FirstPrototypePte;
    /*0x020*/     struct _MMPTE* LastContiguousPte;
                  union
                  {
    /*0x024*/         ULONG32      LongFlags2;
    /*0x024*/         struct _MMVAD_FLAGS2 VadFlags2;
                  }u2;
                  union
                  {
    /*0x028*/         struct _LIST_ENTRY List;
    /*0x028*/         struct _MMADDRESS_LIST Secured;
                  }u3;
                  union
                  {
    /*0x030*/         struct _MMBANKED_SECTION* Banked;
    /*0x030*/         struct _MMEXTEND_INFO* ExtendedInfo;
                  }u4;
    }MMVAD_LONG, *PMMVAD_LONG;
    typedef struct _MMVAD_SHORT {
    /*0x000*/     ULONG32      StartingVpn;
    /*0x004*/     ULONG32      EndingVpn;
    /*0x008*/     struct _MMVAD* Parent;
    /*0x00C*/     struct _MMVAD* LeftChild;
    /*0x010*/     struct _MMVAD* RightChild;
                  union
                  {
    /*0x014*/         ULONG32      LongFlags;
    /*0x014*/         struct _MMVAD_FLAGS VadFlags;
                  }u;
    }MMVAD_SHORT, *PMMVAD_SHORT;
    typedef struct _MMWSLE {
                  union
                  {
    /*0x000*/         VOID*        VirtualAddress;
    /*0x000*/         ULONG32      Long;
    /*0x000*/         struct _MMWSLENTRY e1;
                  }u1;
    }MMWSLE, *PMMWSLE;
    typedef struct _OBJECT_CREATE_INFORMATION {
    /*0x000*/     ULONG32      Attributes;
    /*0x004*/     VOID*        RootDirectory;
    /*0x008*/     VOID*        ParseContext;
    /*0x00C*/     CHAR         ProbeMode;
    /*0x00D*/     UINT8        _PADDING0_[0x3];
    /*0x010*/     ULONG32      PagedPoolCharge;
    /*0x014*/     ULONG32      NonPagedPoolCharge;
    /*0x018*/     ULONG32      SecurityDescriptorCharge;
    /*0x01C*/     VOID*        SecurityDescriptor;
    /*0x020*/     struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos;
    /*0x024*/     struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
    }OBJECT_CREATE_INFORMATION, *POBJECT_CREATE_INFORMATION;
    typedef struct _OBJECT_DIRECTORY {
    /*0x000*/     struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37];
    /*0x094*/     struct _EX_PUSH_LOCK Lock;
    /*0x098*/     struct _DEVICE_MAP* DeviceMap;
    /*0x09C*/     ULONG32      SessionId;
    /*0x0A0*/     UINT16       Reserved;
    /*0x0A2*/     UINT16       SymbolicLinkUsageCount;
    }OBJECT_DIRECTORY, *POBJECT_DIRECTORY;
    typedef struct _OBJECT_HEADER {
    /*0x000*/     LONG32       PointerCount;
                  union
                  {
    /*0x004*/         LONG32       HandleCount;
    /*0x004*/         VOID*        NextToFree;
                  };
    /*0x008*/     struct _OBJECT_TYPE* Type;
    /*0x00C*/     UINT8        NameInfoOffset;
    /*0x00D*/     UINT8        HandleInfoOffset;
    /*0x00E*/     UINT8        QuotaInfoOffset;
    /*0x00F*/     UINT8        Flags;
                  union
                  {
    /*0x010*/         struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo;
    /*0x010*/         VOID*        QuotaBlockCharged;
                  };
    /*0x014*/     VOID*        SecurityDescriptor;
    /*0x018*/     struct _QUAD Body;
    }OBJECT_HEADER, *POBJECT_HEADER;
    typedef struct _OBJECT_HEADER_CREATOR_INFO {
    /*0x000*/     struct _LIST_ENTRY TypeList;
    /*0x008*/     VOID*        CreatorUniqueProcess;
    /*0x00C*/     UINT16       CreatorBackTraceIndex;
    /*0x00E*/     UINT16       Reserved;
    }OBJECT_HEADER_CREATOR_INFO, *POBJECT_HEADER_CREATOR_INFO;
    typedef struct _OBJECT_HEADER_NAME_INFO {
    /*0x000*/     struct _OBJECT_DIRECTORY* Directory;
    /*0x004*/     struct _UNICODE_STRING Name;
    /*0x00C*/     ULONG32      QueryReferences;
    }OBJECT_HEADER_NAME_INFO, *POBJECT_HEADER_NAME_INFO;
    typedef struct _OBJECT_NAME_INFORMATION {
    /*0x000*/     struct _UNICODE_STRING Name;
    }OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
    typedef struct _OBJECT_SYMBOLIC_LINK {
    /*0x000*/     union _LARGE_INTEGER CreationTime;
    /*0x008*/     struct _UNICODE_STRING LinkTarget;
    /*0x010*/     struct _UNICODE_STRING LinkTargetRemaining;
    /*0x018*/     VOID*        LinkTargetObject;
    /*0x01C*/     ULONG32      DosDeviceDriveIndex;
    }OBJECT_SYMBOLIC_LINK, *POBJECT_SYMBOLIC_LINK;
    typedef struct _OBJECT_TYPE_INITIALIZER {
    /*0x000*/     UINT16       Length;
    /*0x002*/     UINT8        UseDefaultObject;
    /*0x003*/     UINT8        CaseInsensitive;
    /*0x004*/     ULONG32      InvalidAttributes;
    /*0x008*/     struct _GENERIC_MAPPING GenericMapping;
    /*0x018*/     ULONG32      ValidAccessMask;
    /*0x01C*/     UINT8        SecurityRequired;
    /*0x01D*/     UINT8        MaintainHandleCount;
    /*0x01E*/     UINT8        MaintainTypeList;
    /*0x01F*/     UINT8        _PADDING0_[0x1];
    /*0x020*/     enum _POOL_TYPE PoolType;
    /*0x024*/     ULONG32      DefaultPagedPoolCharge;
    /*0x028*/     ULONG32      DefaultNonPagedPoolCharge;
    /*0x02C*/     PVOID DumpProcedure;
    /*0x030*/     PVOID OpenProcedure;
    /*0x034*/     PVOID CloseProcedure;
    /*0x038*/     PVOID DeleteProcedure;
    /*0x03C*/     PVOID ParseProcedure;
    /*0x040*/     PVOID SecurityProcedure;
    /*0x044*/     PVOID QueryNameProcedure;
    /*0x048*/     PVOID OkayToCloseProcedure;
    }OBJECT_TYPE_INITIALIZER, *POBJECT_TYPE_INITIALIZER;
    typedef struct _PAGEFAULT_HISTORY {
    /*0x000*/     ULONG32      CurrentIndex;
    /*0x004*/     ULONG32      MaxIndex;
    /*0x008*/     ULONG32      SpinLock;
    /*0x00C*/     VOID*        Reserved;
    /*0x010*/     struct _PROCESS_WS_WATCH_INFORMATION WatchInfo[1];
    }PAGEFAULT_HISTORY, *PPAGEFAULT_HISTORY;
    typedef struct _PCI_FUNCTION_RESOURCES {
    /*0x000*/     struct _IO_RESOURCE_DESCRIPTOR Limit[7];
    /*0x0E0*/     struct _CM_PARTIAL_RESOURCE_DESCRIPTOR Current[7];
    }PCI_FUNCTION_RESOURCES, *PPCI_FUNCTION_RESOURCES;
    typedef struct _PCI_HEADER_TYPE_2 {
    /*0x000*/     ULONG32      SocketRegistersBaseAddress;
    /*0x004*/     UINT8        CapabilitiesPtr;
    /*0x005*/     UINT8        Reserved;
    /*0x006*/     UINT16       SecondaryStatus;
    /*0x008*/     UINT8        PrimaryBus;
    /*0x009*/     UINT8        SecondaryBus;
    /*0x00A*/     UINT8        SubordinateBus;
    /*0x00B*/     UINT8        SecondaryLatency;
    /*0x00C*/     struct
                  {
                    ULONG32    Base;
                    ULONG32    Limit;
                  }Range[4];
    /*0x02C*/     UINT8        InterruptLine;
    /*0x02D*/     UINT8        InterruptPin;
    /*0x02E*/     UINT16       BridgeControl;
    }PCI_HEADER_TYPE_2, *PPCI_HEADER_TYPE_2;
    typedef struct _PCI_PMC {
                  struct
                  {
    /*0x000*/         UINT8        Version : 3;
    /*0x000*/         UINT8        PMEClock : 1;
    /*0x000*/         UINT8        Rsvd1 : 1;
    /*0x000*/         UINT8        DeviceSpecificInitialization : 1;
    /*0x000*/         UINT8        Rsvd2 : 2;
                  };
    /*0x001*/     struct _PM_SUPPORT Support;
    }PCI_PMC, *PPCI_PMC;
    typedef struct _PCI_SECONDARY_EXTENSION {
    /*0x000*/     struct _SINGLE_LIST_ENTRY List;
    /*0x004*/     enum _PCI_SIGNATURE ExtensionType;
    /*0x008*/     PVOID Destructor;
    }PCI_SECONDARY_EXTENSION, *PPCI_SECONDARY_EXTENSION;
    typedef struct _PEB {
    /*0x000*/     UINT8        InheritedAddressSpace;
    /*0x001*/     UINT8        ReadImageFileExecOptions;
    /*0x002*/     UINT8        BeingDebugged;
    /*0x003*/     UINT8        SpareBool;
    /*0x004*/     VOID*        Mutant;
    /*0x008*/     VOID*        ImageBaseAddress;
    /*0x00C*/     struct _PEB_LDR_DATA* Ldr;
    /*0x010*/     struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters;
    /*0x014*/     VOID*        SubSystemData;
    /*0x018*/     VOID*        ProcessHeap;
    /*0x01C*/     struct _RTL_CRITICAL_SECTION* FastPebLock;
    /*0x020*/     VOID*        FastPebLockRoutine;
    /*0x024*/     VOID*        FastPebUnlockRoutine;
    /*0x028*/     ULONG32      EnvironmentUpdateCount;
    /*0x02C*/     VOID*        KernelCallbackTable;
    /*0x030*/     ULONG32      SystemReserved[1];
    /*0x034*/     ULONG32      AtlThunkSListPtr32;
    /*0x038*/     struct _PEB_FREE_BLOCK* FreeList;
    /*0x03C*/     ULONG32      TlsExpansionCounter;
    /*0x040*/     VOID*        TlsBitmap;
    /*0x044*/     ULONG32      TlsBitmapBits[2];
    /*0x04C*/     VOID*        ReadOnlySharedMemoryBase;
    /*0x050*/     VOID*        ReadOnlySharedMemoryHeap;
    /*0x054*/     VOID**       ReadOnlyStaticServerData;
    /*0x058*/     VOID*        AnsiCodePageData;
    /*0x05C*/     VOID*        OemCodePageData;
    /*0x060*/     VOID*        UnicodeCaseTableData;
    /*0x064*/     ULONG32      NumberOfProcessors;
    /*0x068*/     ULONG32      NtGlobalFlag;
    /*0x06C*/     UINT8        _PADDING0_[0x4];
    /*0x070*/     union _LARGE_INTEGER CriticalSectionTimeout;
    /*0x078*/     ULONG32      HeapSegmentReserve;
    /*0x07C*/     ULONG32      HeapSegmentCommit;
    /*0x080*/     ULONG32      HeapDeCommitTotalFreeThreshold;
    /*0x084*/     ULONG32      HeapDeCommitFreeBlockThreshold;
    /*0x088*/     ULONG32      NumberOfHeaps;
    /*0x08C*/     ULONG32      MaximumNumberOfHeaps;
    /*0x090*/     VOID**       ProcessHeaps;
    /*0x094*/     VOID*        GdiSharedHandleTable;
    /*0x098*/     VOID*        ProcessStarterHelper;
    /*0x09C*/     ULONG32      GdiDCAttributeList;
    /*0x0A0*/     VOID*        LoaderLock;
    /*0x0A4*/     ULONG32      OSMajorVersion;
    /*0x0A8*/     ULONG32      OSMinorVersion;
    /*0x0AC*/     UINT16       OSBuildNumber;
    /*0x0AE*/     UINT16       OSCSDVersion;
    /*0x0B0*/     ULONG32      OSPlatformId;
    /*0x0B4*/     ULONG32      ImageSubsystem;
    /*0x0B8*/     ULONG32      ImageSubsystemMajorVersion;
    /*0x0BC*/     ULONG32      ImageSubsystemMinorVersion;
    /*0x0C0*/     ULONG32      ImageProcessAffinityMask;
    /*0x0C4*/     ULONG32      GdiHandleBuffer[34];
    /*0x14C*/     PVOID PostProcessInitRoutine;
    /*0x150*/     VOID*        TlsExpansionBitmap;
    /*0x154*/     ULONG32      TlsExpansionBitmapBits[32];
    /*0x1D4*/     ULONG32      SessionId;
    /*0x1D8*/     union _ULARGE_INTEGER AppCompatFlags;
    /*0x1E0*/     union _ULARGE_INTEGER AppCompatFlagsUser;
    /*0x1E8*/     VOID*        pShimData;
    /*0x1EC*/     VOID*        AppCompatInfo;
    /*0x1F0*/     struct _UNICODE_STRING CSDVersion;
    /*0x1F8*/     VOID*        ActivationContextData;
    /*0x1FC*/     VOID*        ProcessAssemblyStorageMap;
    /*0x200*/     VOID*        SystemDefaultActivationContextData;
    /*0x204*/     VOID*        SystemAssemblyStorageMap;
    /*0x208*/     ULONG32      MinimumStackCommit;
    /*0x20C*/     UINT8        _PADDING1_[0x4];
    }PEB, *PPEB;
    typedef struct _PEB_LDR_DATA {
    /*0x000*/     ULONG32      Length;
    /*0x004*/     UINT8        Initialized;
    /*0x005*/     UINT8        _PADDING0_[0x3];
    /*0x008*/     VOID*        SsHandle;
    /*0x00C*/     struct _LIST_ENTRY InLoadOrderModuleList;
    /*0x014*/     struct _LIST_ENTRY InMemoryOrderModuleList;
    /*0x01C*/     struct _LIST_ENTRY InInitializationOrderModuleList;
    /*0x024*/     VOID*        EntryInProgress;
    }PEB_LDR_DATA, *PPEB_LDR_DATA;
    typedef struct _PHYSICAL_MEMORY_DESCRIPTOR {
    /*0x000*/     ULONG32      NumberOfRuns;
    /*0x004*/     ULONG32      NumberOfPages;
    /*0x008*/     struct _PHYSICAL_MEMORY_RUN Run[1];
    }PHYSICAL_MEMORY_DESCRIPTOR, *PPHYSICAL_MEMORY_DESCRIPTOR;
    typedef struct _PI_BUS_EXTENSION {
    /*0x000*/     ULONG32      Flags;
    /*0x004*/     ULONG32      NumberCSNs;
    /*0x008*/     UINT8*       ReadDataPort;
    /*0x00C*/     UINT8        DataPortMapped;
    /*0x00D*/     UINT8        _PADDING0_[0x3];
    /*0x010*/     UINT8*       AddressPort;
    /*0x014*/     UINT8        AddrPortMapped;
    /*0x015*/     UINT8        _PADDING1_[0x3];
    /*0x018*/     UINT8*       CommandPort;
    /*0x01C*/     UINT8        CmdPortMapped;
    /*0x01D*/     UINT8        _PADDING2_[0x3];
    /*0x020*/     ULONG32      NextSlotNumber;
    /*0x024*/     struct _SINGLE_LIST_ENTRY DeviceList;
    /*0x028*/     struct _SINGLE_LIST_ENTRY CardList;
    /*0x02C*/     struct _DEVICE_OBJECT* PhysicalBusDevice;
    /*0x030*/     struct _DEVICE_OBJECT* FunctionalBusDevice;
    /*0x034*/     struct _DEVICE_OBJECT* AttachedDevice;
    /*0x038*/     ULONG32      BusNumber;
    /*0x03C*/     enum _SYSTEM_POWER_STATE SystemPowerState;
    /*0x040*/     enum _DEVICE_POWER_STATE DevicePowerState;
    }PI_BUS_EXTENSION, *PPI_BUS_EXTENSION;
    typedef struct _PI_RESOURCE_ARBITER_ENTRY {
    /*0x000*/     struct _LIST_ENTRY DeviceArbiterList;
    /*0x008*/     UINT8        ResourceType;
    /*0x009*/     UINT8        _PADDING0_[0x3];
    /*0x00C*/     struct _ARBITER_INTERFACE* ArbiterInterface;
    /*0x010*/     ULONG32      Level;
    /*0x014*/     struct _LIST_ENTRY ResourceList;
    /*0x01C*/     struct _LIST_ENTRY BestResourceList;
    /*0x024*/     struct _LIST_ENTRY BestConfig;
    /*0x02C*/     struct _LIST_ENTRY ActiveArbiterList;
    /*0x034*/     UINT8        State;
    /*0x035*/     UINT8        ResourcesChanged;
    /*0x036*/     UINT8        _PADDING1_[0x2];
    }PI_RESOURCE_ARBITER_ENTRY, *PPI_RESOURCE_ARBITER_ENTRY;
    typedef struct _PLUGPLAY_EVENT_BLOCK {
    /*0x000*/     struct _GUID EventGuid;
    /*0x010*/     enum _PLUGPLAY_EVENT_CATEGORY EventCategory;
    /*0x014*/     ULONG32*     Result;
    /*0x018*/     ULONG32      Flags;
    /*0x01C*/     ULONG32      TotalSize;
    /*0x020*/     VOID*        DeviceObject;
                  union
                  {
                      struct
                      {
    /*0x024*/             struct _GUID ClassGuid;
    /*0x034*/             UINT16       SymbolicLinkName[1];
    /*0x036*/             UINT8        _PADDING0_[0x2];
                      }DeviceClass;
                      struct
                      {
    /*0x024*/             UINT16       DeviceIds[1];
                      }TargetDevice;
                      struct
                      {
    /*0x024*/             UINT16       DeviceId[1];
                      }InstallDevice;
                      struct
                      {
    /*0x024*/             VOID*        NotificationStructure;
    /*0x028*/             UINT16       DeviceIds[1];
    /*0x02A*/             UINT8        _PADDING0_[0x2];
                      }CustomNotification;
                      struct
                      {
    /*0x024*/             VOID*        Notification;
                      }ProfileNotification;
                      struct
                      {
    /*0x024*/             ULONG32      NotificationCode;
    /*0x028*/             ULONG32      NotificationData;
                      }PowerNotification;
                      struct
                      {
    /*0x024*/             enum _PNP_VETO_TYPE VetoType;
    /*0x028*/             UINT16       DeviceIdVetoNameBuffer[1];
    /*0x02A*/             UINT8        _PADDING0_[0x2];
                      }VetoNotification;
                      struct
                      {
    /*0x024*/             struct _GUID BlockedDriverGuid;
                      }BlockedDriverNotification;
                  }u;
    }PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK;
    typedef struct _POOL_BLOCK_HEAD {
    /*0x000*/     struct _POOL_HEADER Header;
    /*0x008*/     struct _LIST_ENTRY List;
    }POOL_BLOCK_HEAD, *PPOOL_BLOCK_HEAD;
    typedef struct _POOL_DESCRIPTOR {
    /*0x000*/     enum _POOL_TYPE PoolType;
    /*0x004*/     ULONG32      PoolIndex;
    /*0x008*/     ULONG32      RunningAllocs;
    /*0x00C*/     ULONG32      RunningDeAllocs;
    /*0x010*/     ULONG32      TotalPages;
    /*0x014*/     ULONG32      TotalBigPages;
    /*0x018*/     ULONG32      Threshold;
    /*0x01C*/     VOID*        LockAddress;
    /*0x020*/     VOID*        PendingFrees;
    /*0x024*/     LONG32       PendingFreeDepth;
    /*0x028*/     struct _LIST_ENTRY ListHeads[512];
    }POOL_DESCRIPTOR, *PPOOL_DESCRIPTOR;
    typedef struct _POOL_HACKER {
    /*0x000*/     struct _POOL_HEADER Header;
    /*0x008*/     ULONG32      Contents[8];
    }POOL_HACKER, *PPOOL_HACKER;
    typedef struct _POP_DEVICE_POWER_IRP {
    /*0x000*/     struct _SINGLE_LIST_ENTRY Free;
    /*0x004*/     struct _IRP* Irp;
    /*0x008*/     struct _PO_DEVICE_NOTIFY* Notify;
    /*0x00C*/     struct _LIST_ENTRY Pending;
    /*0x014*/     struct _LIST_ENTRY Complete;
    /*0x01C*/     struct _LIST_ENTRY Abort;
    /*0x024*/     struct _LIST_ENTRY Failed;
    }POP_DEVICE_POWER_IRP, *PPOP_DEVICE_POWER_IRP;
    typedef struct _POP_HIBER_CONTEXT {
    /*0x000*/     UINT8        WriteToFile;
    /*0x001*/     UINT8        ReserveLoaderMemory;
    /*0x002*/     UINT8        ReserveFreeMemory;
    /*0x003*/     UINT8        VerifyOnWake;
    /*0x004*/     UINT8        Reset;
    /*0x005*/     UINT8        HiberFlags;
    /*0x006*/     UINT8        LinkFile;
    /*0x007*/     UINT8        _PADDING0_[0x1];
    /*0x008*/     VOID*        LinkFileHandle;
    /*0x00C*/     ULONG32      Lock;
    /*0x010*/     UINT8        MapFrozen;
    /*0x011*/     UINT8        _PADDING1_[0x3];
    /*0x014*/     struct _RTL_BITMAP MemoryMap;
    /*0x01C*/     struct _LIST_ENTRY ClonedRanges;
    /*0x024*/     ULONG32      ClonedRangeCount;
    /*0x028*/     struct _LIST_ENTRY* NextCloneRange;
    /*0x02C*/     ULONG32      NextPreserve;
    /*0x030*/     struct _MDL* LoaderMdl;
    /*0x034*/     struct _MDL* Clones;
    /*0x038*/     UINT8*       NextClone;
    /*0x03C*/     ULONG32      NoClones;
    /*0x040*/     struct _MDL* Spares;
    /*0x044*/     UINT8        _PADDING2_[0x4];
    /*0x048*/     UINT64       PagesOut;
    /*0x050*/     VOID*        IoPage;
    /*0x054*/     VOID*        CurrentMcb;
    /*0x058*/     struct _DUMP_STACK_CONTEXT* DumpStack;
    /*0x05C*/     struct _KPROCESSOR_STATE* WakeState;
    /*0x060*/     ULONG32      NoRanges;
    /*0x064*/     ULONG32      HiberVa;
    /*0x068*/     union _LARGE_INTEGER HiberPte;
    /*0x070*/     LONG32       Status;
    /*0x074*/     struct _PO_MEMORY_IMAGE* MemoryImage;
    /*0x078*/     struct _PO_MEMORY_RANGE_ARRAY* TableHead;
    /*0x07C*/     UINT8*       CompressionWorkspace;
    /*0x080*/     UINT8*       CompressedWriteBuffer;
    /*0x084*/     ULONG32*     PerformanceStats;
    /*0x088*/     VOID*        CompressionBlock;
    /*0x08C*/     VOID*        DmaIO;
    /*0x090*/     VOID*        TemporaryHeap;
    /*0x094*/     UINT8        _PADDING3_[0x4];
    /*0x098*/     struct _PO_HIBER_PERF PerfInfo;
    }POP_HIBER_CONTEXT, *PPOP_HIBER_CONTEXT;
    typedef struct _PORT_MESSAGE {
                  union
                  {
                      struct
                      {
    /*0x000*/             INT16        DataLength;
    /*0x002*/             INT16        TotalLength;
                      }s1;
    /*0x000*/         ULONG32      Length;
                  }u1;
                  union
                  {
                      struct
                      {
    /*0x004*/             INT16        Type;
    /*0x006*/             INT16        DataInfoOffset;
                      }s2;
    /*0x004*/         ULONG32      ZeroInit;
                  }u2;
                  union
                  {
    /*0x008*/         struct _CLIENT_ID ClientId;
    /*0x008*/         FLOAT64      DoNotUseThisField;
                  };
    /*0x010*/     ULONG32      MessageId;
                  union
                  {
    /*0x014*/         ULONG32      ClientViewSize;
    /*0x014*/         ULONG32      CallbackId;
                  };
    }PORT_MESSAGE, *PPORT_MESSAGE;
    typedef struct _POWER_CHANNEL_SUMMARY {
    /*0x000*/     ULONG32      Signature;
    /*0x004*/     ULONG32      TotalCount;
    /*0x008*/     ULONG32      D0Count;
    /*0x00C*/     struct _LIST_ENTRY NotifyList;
    }POWER_CHANNEL_SUMMARY, *PPOWER_CHANNEL_SUMMARY;
    typedef struct _PO_DEVICE_NOTIFY {
    /*0x000*/     struct _LIST_ENTRY Link;
    /*0x008*/     struct _DEVICE_OBJECT* TargetDevice;
    /*0x00C*/     UINT8        WakeNeeded;
    /*0x00D*/     UINT8        OrderLevel;
    /*0x00E*/     UINT8        _PADDING0_[0x2];
    /*0x010*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x014*/     VOID*        Node;
    /*0x018*/     UINT16*      DeviceName;
    /*0x01C*/     UINT16*      DriverName;
    /*0x020*/     ULONG32      ChildCount;
    /*0x024*/     ULONG32      ActiveChild;
    }PO_DEVICE_NOTIFY, *PPO_DEVICE_NOTIFY;
    typedef struct _PO_MEMORY_IMAGE {
    /*0x000*/     ULONG32      Signature;
    /*0x004*/     ULONG32      Version;
    /*0x008*/     ULONG32      CheckSum;
    /*0x00C*/     ULONG32      LengthSelf;
    /*0x010*/     ULONG32      PageSelf;
    /*0x014*/     ULONG32      PageSize;
    /*0x018*/     ULONG32      ImageType;
    /*0x01C*/     UINT8        _PADDING0_[0x4];
    /*0x020*/     union _LARGE_INTEGER SystemTime;
    /*0x028*/     UINT64       InterruptTime;
    /*0x030*/     ULONG32      FeatureFlags;
    /*0x034*/     UINT8        HiberFlags;
    /*0x035*/     UINT8        spare[3];
    /*0x038*/     ULONG32      NoHiberPtes;
    /*0x03C*/     ULONG32      HiberVa;
    /*0x040*/     union _LARGE_INTEGER HiberPte;
    /*0x048*/     ULONG32      NoFreePages;
    /*0x04C*/     ULONG32      FreeMapCheck;
    /*0x050*/     ULONG32      WakeCheck;
    /*0x054*/     ULONG32      TotalPages;
    /*0x058*/     ULONG32      FirstTablePage;
    /*0x05C*/     ULONG32      LastFilePage;
    /*0x060*/     struct _PO_HIBER_PERF PerfInfo;
    }PO_MEMORY_IMAGE, *PPO_MEMORY_IMAGE;
    typedef struct _PRIVATE_CACHE_MAP {
                  union
                  {
    /*0x000*/         INT16        NodeTypeCode;
    /*0x000*/         struct _PRIVATE_CACHE_MAP_FLAGS Flags;
    /*0x000*/         ULONG32      UlongFlags;
                  };
    /*0x004*/     ULONG32      ReadAheadMask;
    /*0x008*/     struct _FILE_OBJECT* FileObject;
    /*0x00C*/     UINT8        _PADDING0_[0x4];
    /*0x010*/     union _LARGE_INTEGER FileOffset1;
    /*0x018*/     union _LARGE_INTEGER BeyondLastByte1;
    /*0x020*/     union _LARGE_INTEGER FileOffset2;
    /*0x028*/     union _LARGE_INTEGER BeyondLastByte2;
    /*0x030*/     union _LARGE_INTEGER ReadAheadOffset[2];
    /*0x040*/     ULONG32      ReadAheadLength[2];
    /*0x048*/     ULONG32      ReadAheadSpinLock;
    /*0x04C*/     struct _LIST_ENTRY PrivateLinks;
    /*0x054*/     UINT8        _PADDING1_[0x4];
    }PRIVATE_CACHE_MAP, *PPRIVATE_CACHE_MAP;
    typedef struct _PROCESSOR_POWER_POLICY {
    /*0x000*/     ULONG32      Revision;
    /*0x004*/     UINT8        DynamicThrottle;
    /*0x005*/     UINT8        Spare[3];
                  struct
                  {
    /*0x008*/         ULONG32      DisableCStates : 1;
    /*0x008*/         ULONG32      Reserved : 31;
                  };
    /*0x00C*/     ULONG32      PolicyCount;
    /*0x010*/     struct _PROCESSOR_POWER_POLICY_INFO Policy[3];
    }PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY;
    typedef struct _RTLP_RANGE_LIST_ENTRY {
    /*0x000*/     UINT64       Start;
    /*0x008*/     UINT64       End;
                  union
                  {
                      struct
                      {
    /*0x010*/             VOID*        UserData;
    /*0x014*/             VOID*        Owner;
                      }Allocated;
                      struct
                      {
    /*0x010*/             struct _LIST_ENTRY ListHead;
                      }Merged;
                  };
    /*0x018*/     UINT8        Attributes;
    /*0x019*/     UINT8        PublicFlags;
    /*0x01A*/     UINT16       PrivateFlags;
    /*0x01C*/     struct _LIST_ENTRY ListEntry;
    /*0x024*/     UINT8        _PADDING0_[0x4];
    }RTLP_RANGE_LIST_ENTRY, *PRTLP_RANGE_LIST_ENTRY;
    typedef struct _RTL_ATOM_TABLE {
    /*0x000*/     ULONG32      Signature;
    /*0x004*/     struct _RTL_CRITICAL_SECTION CriticalSection;
    /*0x01C*/     struct _RTL_HANDLE_TABLE RtlHandleTable;
    /*0x03C*/     ULONG32      NumberOfBuckets;
    /*0x040*/     struct _RTL_ATOM_TABLE_ENTRY* Buckets[1];
    }RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
    typedef struct _RTL_CRITICAL_SECTION_DEBUG {
    /*0x000*/     UINT16       Type;
    /*0x002*/     UINT16       CreatorBackTraceIndex;
    /*0x004*/     struct _RTL_CRITICAL_SECTION* CriticalSection;
    /*0x008*/     struct _LIST_ENTRY ProcessLocksList;
    /*0x010*/     ULONG32      EntryCount;
    /*0x014*/     ULONG32      ContentionCount;
    /*0x018*/     ULONG32      Spare[2];
    }RTL_CRITICAL_SECTION_DEBUG, *PRTL_CRITICAL_SECTION_DEBUG;
    typedef struct _RTL_DRIVE_LETTER_CURDIR {
    /*0x000*/     UINT16       Flags;
    /*0x002*/     UINT16       Length;
    /*0x004*/     ULONG32      TimeStamp;
    /*0x008*/     struct _STRING DosPath;
    }RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
    typedef struct _RTL_RANGE_LIST {
    /*0x000*/     struct _LIST_ENTRY ListHead;
    /*0x008*/     ULONG32      Flags;
    /*0x00C*/     ULONG32      Count;
    /*0x010*/     ULONG32      Stamp;
    }RTL_RANGE_LIST, *PRTL_RANGE_LIST;
    typedef struct _SECURITY_TOKEN_PROXY_DATA {
    /*0x000*/     ULONG32      Length;
    /*0x004*/     enum _PROXY_CLASS ProxyClass;
    /*0x008*/     struct _UNICODE_STRING PathInfo;
    /*0x010*/     ULONG32      ContainerMask;
    /*0x014*/     ULONG32      ObjectMask;
    }SECURITY_TOKEN_PROXY_DATA, *PSECURITY_TOKEN_PROXY_DATA;
    typedef struct _SEP_AUDIT_POLICY {
                  union
                  {
    /*0x000*/         struct _SEP_AUDIT_POLICY_CATEGORIES PolicyElements;
    /*0x000*/         struct _SEP_AUDIT_POLICY_OVERLAY PolicyOverlay;
    /*0x000*/         UINT64       Overlay;
                  };
    }SEP_AUDIT_POLICY, *PSEP_AUDIT_POLICY;
    typedef struct _SID {
    /*0x000*/     UINT8        Revision;
    /*0x001*/     UINT8        SubAuthorityCount;
    /*0x002*/     struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
    /*0x008*/     ULONG32      SubAuthority[1];
    }SID, *PSID;
    typedef struct _SUBSECTION {
    /*0x000*/     struct _CONTROL_AREA* ControlArea;
                  union
                  {
    /*0x004*/         ULONG32      LongFlags;
    /*0x004*/         struct _MMSUBSECTION_FLAGS SubsectionFlags;
                  }u;
    /*0x008*/     ULONG32      StartingSector;
    /*0x00C*/     ULONG32      NumberOfFullSectors;
    /*0x010*/     struct _MMPTE* SubsectionBase;
    /*0x014*/     ULONG32      UnusedPtes;
    /*0x018*/     ULONG32      PtesInSubsection;
    /*0x01C*/     struct _SUBSECTION* NextSubsection;
    }SUBSECTION, *PSUBSECTION;
    typedef struct _SUPPORTED_RANGES {
    /*0x000*/     UINT16       Version;
    /*0x002*/     UINT8        Sorted;
    /*0x003*/     UINT8        Reserved;
    /*0x004*/     ULONG32      NoIO;
    /*0x008*/     struct _SUPPORTED_RANGE IO;
    /*0x028*/     ULONG32      NoMemory;
    /*0x02C*/     UINT8        _PADDING0_[0x4];
    /*0x030*/     struct _SUPPORTED_RANGE Memory;
    /*0x050*/     ULONG32      NoPrefetchMemory;
    /*0x054*/     UINT8        _PADDING1_[0x4];
    /*0x058*/     struct _SUPPORTED_RANGE PrefetchMemory;
    /*0x078*/     ULONG32      NoDma;
    /*0x07C*/     UINT8        _PADDING2_[0x4];
    /*0x080*/     struct _SUPPORTED_RANGE Dma;
    }SUPPORTED_RANGES, *PSUPPORTED_RANGES;
    typedef struct _SYSPTES_HEADER {
    /*0x000*/     struct _LIST_ENTRY ListHead;
    /*0x008*/     ULONG32      Count;
    }SYSPTES_HEADER, *PSYSPTES_HEADER;
    typedef struct _SYSTEM_POWER_CAPABILITIES {
    /*0x000*/     UINT8        PowerButtonPresent;
    /*0x001*/     UINT8        SleepButtonPresent;
    /*0x002*/     UINT8        LidPresent;
    /*0x003*/     UINT8        SystemS1;
    /*0x004*/     UINT8        SystemS2;
    /*0x005*/     UINT8        SystemS3;
    /*0x006*/     UINT8        SystemS4;
    /*0x007*/     UINT8        SystemS5;
    /*0x008*/     UINT8        HiberFilePresent;
    /*0x009*/     UINT8        FullWake;
    /*0x00A*/     UINT8        VideoDimPresent;
    /*0x00B*/     UINT8        ApmPresent;
    /*0x00C*/     UINT8        UpsPresent;
    /*0x00D*/     UINT8        ThermalControl;
    /*0x00E*/     UINT8        ProcessorThrottle;
    /*0x00F*/     UINT8        ProcessorMinThrottle;
    /*0x010*/     UINT8        ProcessorMaxThrottle;
    /*0x011*/     UINT8        spare2[4];
    /*0x015*/     UINT8        DiskSpinDown;
    /*0x016*/     UINT8        spare3[8];
    /*0x01E*/     UINT8        SystemBatteriesPresent;
    /*0x01F*/     UINT8        BatteriesAreShortTerm;
    /*0x020*/     struct _BATTERY_REPORTING_SCALE BatteryScale[3];
    /*0x038*/     enum _SYSTEM_POWER_STATE AcOnLineWake;
    /*0x03C*/     enum _SYSTEM_POWER_STATE SoftLidWake;
    /*0x040*/     enum _SYSTEM_POWER_STATE RtcWake;
    /*0x044*/     enum _SYSTEM_POWER_STATE MinDeviceWakeState;
    /*0x048*/     enum _SYSTEM_POWER_STATE DefaultLowLatencyWake;
    }SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES;
    typedef struct _SYSTEM_POWER_LEVEL {
    /*0x000*/     UINT8        Enable;
    /*0x001*/     UINT8        Spare[3];
    /*0x004*/     ULONG32      BatteryLevel;
    /*0x008*/     struct _POWER_ACTION_POLICY PowerPolicy;
    /*0x014*/     enum _SYSTEM_POWER_STATE MinSystemState;
    }SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL;
    typedef struct _TOKEN_SOURCE {
    /*0x000*/     CHAR         SourceName[8];
    /*0x008*/     struct _LUID SourceIdentifier;
    }TOKEN_SOURCE, *PTOKEN_SOURCE;
    typedef struct _VACB {
    /*0x000*/     VOID*        BaseAddress;
    /*0x004*/     struct _SHARED_CACHE_MAP* SharedCacheMap;
                  union
                  {
    /*0x008*/         union _LARGE_INTEGER FileOffset;
    /*0x008*/         UINT16       ActiveCount;
                  }Overlay;
    /*0x010*/     struct _LIST_ENTRY LruList;
    }VACB, *PVACB;
    typedef struct _VI_DEADLOCK_GLOBALS {
    /*0x000*/     ULONG32      Nodes[2];
    /*0x008*/     ULONG32      Resources[2];
    /*0x010*/     ULONG32      Threads[2];
    /*0x018*/     INT64        TimeAcquire;
    /*0x020*/     INT64        TimeRelease;
    /*0x028*/     ULONG32      BytesAllocated;
    /*0x02C*/     struct _LIST_ENTRY* ResourceDatabase;
    /*0x030*/     struct _LIST_ENTRY* ThreadDatabase;
    /*0x034*/     ULONG32      AllocationFailures;
    /*0x038*/     ULONG32      NodesTrimmedBasedOnAge;
    /*0x03C*/     ULONG32      NodesTrimmedBasedOnCount;
    /*0x040*/     ULONG32      NodesSearched;
    /*0x044*/     ULONG32      MaxNodesSearched;
    /*0x048*/     ULONG32      SequenceNumber;
    /*0x04C*/     ULONG32      RecursionDepthLimit;
    /*0x050*/     ULONG32      SearchedNodesLimit;
    /*0x054*/     ULONG32      DepthLimitHits;
    /*0x058*/     ULONG32      SearchLimitHits;
    /*0x05C*/     ULONG32      ABC_ACB_Skipped;
    /*0x060*/     struct _LIST_ENTRY FreeResourceList;
    /*0x068*/     struct _LIST_ENTRY FreeThreadList;
    /*0x070*/     struct _LIST_ENTRY FreeNodeList;
    /*0x078*/     ULONG32      FreeResourceCount;
    /*0x07C*/     ULONG32      FreeThreadCount;
    /*0x080*/     ULONG32      FreeNodeCount;
    /*0x084*/     VOID*        Instigator;
    /*0x088*/     ULONG32      NumberOfParticipants;
    /*0x08C*/     struct _VI_DEADLOCK_NODE* Participant[32];
    /*0x10C*/     ULONG32      CacheReductionInProgress;
    }VI_DEADLOCK_GLOBALS, *PVI_DEADLOCK_GLOBALS;
    typedef struct _VI_DEADLOCK_NODE {
    /*0x000*/     struct _VI_DEADLOCK_NODE* Parent;
    /*0x004*/     struct _LIST_ENTRY ChildrenList;
    /*0x00C*/     struct _LIST_ENTRY SiblingsList;
                  union
                  {
    /*0x014*/         struct _LIST_ENTRY ResourceList;
    /*0x014*/         struct _LIST_ENTRY FreeListEntry;
                  };
    /*0x01C*/     struct _VI_DEADLOCK_RESOURCE* Root;
    /*0x020*/     struct _VI_DEADLOCK_THREAD* ThreadEntry;
                  struct
                  {
    /*0x024*/         ULONG32      Active : 1;
    /*0x024*/         ULONG32      OnlyTryAcquireUsed : 1;
    /*0x024*/         ULONG32      SequenceNumber : 30;
                  };
    /*0x028*/     VOID*        StackTrace[8];
    /*0x048*/     VOID*        ParentStackTrace[8];
    }VI_DEADLOCK_NODE, *PVI_DEADLOCK_NODE;
    typedef struct _VI_DEADLOCK_RESOURCE {
    /*0x000*/     enum _VI_DEADLOCK_RESOURCE_TYPE Type;
                  struct
                  {
    /*0x004*/         ULONG32      NodeCount : 16;
    /*0x004*/         ULONG32      RecursionCount : 16;
                  };
    /*0x008*/     VOID*        ResourceAddress;
    /*0x00C*/     struct _VI_DEADLOCK_THREAD* ThreadOwner;
    /*0x010*/     struct _LIST_ENTRY ResourceList;
                  union
                  {
    /*0x018*/         struct _LIST_ENTRY HashChainList;
    /*0x018*/         struct _LIST_ENTRY FreeListEntry;
                  };
    /*0x020*/     VOID*        StackTrace[8];
    /*0x040*/     VOID*        LastAcquireTrace[8];
    /*0x060*/     VOID*        LastReleaseTrace[8];
    }VI_DEADLOCK_RESOURCE, *PVI_DEADLOCK_RESOURCE;
    typedef struct _VI_DEADLOCK_THREAD {
    /*0x000*/     struct _KTHREAD* Thread;
    /*0x004*/     struct _VI_DEADLOCK_NODE* CurrentSpinNode;
    /*0x008*/     struct _VI_DEADLOCK_NODE* CurrentOtherNode;
                  union
                  {
    /*0x00C*/         struct _LIST_ENTRY ListEntry;
    /*0x00C*/         struct _LIST_ENTRY FreeListEntry;
                  };
    /*0x014*/     ULONG32      NodeCount;
    /*0x018*/     ULONG32      PagingCount;
    }VI_DEADLOCK_THREAD, *PVI_DEADLOCK_THREAD;
    typedef struct _VI_POOL_ENTRY {
                  union
                  {
    /*0x000*/         struct _VI_POOL_ENTRY_INUSE InUse;
    /*0x000*/         ULONG32      FreeListNext;
                  };
    }VI_POOL_ENTRY, *PVI_POOL_ENTRY;
    typedef struct _WNODE_HEADER {
    /*0x000*/     ULONG32      BufferSize;
    /*0x004*/     ULONG32      ProviderId;
                  union
                  {
    /*0x008*/         UINT64       HistoricalContext;
                      struct
                      {
    /*0x008*/             ULONG32      Version;
    /*0x00C*/             ULONG32      Linkage;
                      };
                  };
                  union
                  {
    /*0x010*/         ULONG32      CountLost;
    /*0x010*/         VOID*        KernelHandle;
    /*0x010*/         union _LARGE_INTEGER TimeStamp;
                  };
    /*0x018*/     struct _GUID Guid;
    /*0x028*/     ULONG32      ClientContext;
    /*0x02C*/     ULONG32      Flags;
    }WNODE_HEADER, *PWNODE_HEADER;
    typedef struct _WORK_QUEUE_ITEM {
    /*0x000*/     struct _LIST_ENTRY List;
    /*0x008*/     PVOID WorkerRoutine;
    /*0x00C*/     VOID*        Parameter;
    }WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
    typedef struct _CELL_DATA {
                  union
                  {
    /*0x000*/         struct _CM_KEY_NODE KeyNode;
    /*0x000*/         struct _CM_KEY_VALUE KeyValue;
    /*0x000*/         struct _CM_KEY_SECURITY KeySecurity;
    /*0x000*/         struct _CM_KEY_INDEX KeyIndex;
    /*0x000*/         struct _CM_BIG_DATA ValueData;
    /*0x000*/         ULONG32      KeyList[1];
    /*0x000*/         UINT16       KeyString[1];
                  }u;
    }CELL_DATA, *PCELL_DATA;
    typedef struct _CM_FULL_RESOURCE_DESCRIPTOR {
    /*0x000*/     enum _INTERFACE_TYPE InterfaceType;
    /*0x004*/     ULONG32      BusNumber;
    /*0x008*/     struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList;
    }CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;
    typedef struct _DBGKD_CONTINUE2 {
    /*0x000*/     LONG32       ContinueStatus;
                  union
                  {
    /*0x004*/         struct _X86_DBGKD_CONTROL_SET ControlSet;
    /*0x004*/         struct _DBGKD_ANY_CONTROL_SET AnyControlSet;
                  };
    }DBGKD_CONTINUE2, *PDBGKD_CONTINUE2;
    typedef struct _DEVICE_OBJECT_POWER_EXTENSION {
    /*0x000*/     ULONG32      IdleCount;
    /*0x004*/     ULONG32      ConservationIdleTime;
    /*0x008*/     ULONG32      PerformanceIdleTime;
    /*0x00C*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x010*/     struct _LIST_ENTRY IdleList;
    /*0x018*/     UINT8        DeviceType;
    /*0x019*/     UINT8        _PADDING0_[0x3];
    /*0x01C*/     enum _DEVICE_POWER_STATE State;
    /*0x020*/     struct _LIST_ENTRY NotifySourceList;
    /*0x028*/     struct _LIST_ENTRY NotifyTargetList;
    /*0x030*/     struct _POWER_CHANNEL_SUMMARY PowerChannelSummary;
    /*0x044*/     struct _LIST_ENTRY Volume;
    }DEVICE_OBJECT_POWER_EXTENSION, *PDEVICE_OBJECT_POWER_EXTENSION;
    typedef struct _DUMP_STACK_CONTEXT {
    /*0x000*/     struct _DUMP_INITIALIZATION_CONTEXT Init;
    /*0x070*/     union _LARGE_INTEGER PartitionOffset;
    /*0x078*/     VOID*        DumpPointers;
    /*0x07C*/     ULONG32      PointersLength;
    /*0x080*/     UINT16*      ModulePrefix;
    /*0x084*/     struct _LIST_ENTRY DriverList;
    /*0x08C*/     struct _STRING InitMsg;
    /*0x094*/     struct _STRING ProgMsg;
    /*0x09C*/     struct _STRING DoneMsg;
    /*0x0A4*/     VOID*        FileObject;
    /*0x0A8*/     enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType;
    /*0x0AC*/     UINT8        _PADDING0_[0x4];
    }DUMP_STACK_CONTEXT, *PDUMP_STACK_CONTEXT;
    typedef struct _FILE_GET_QUOTA_INFORMATION {
    /*0x000*/     ULONG32      NextEntryOffset;
    /*0x004*/     ULONG32      SidLength;
    /*0x008*/     struct _SID  Sid;
    }FILE_GET_QUOTA_INFORMATION, *PFILE_GET_QUOTA_INFORMATION;
    typedef struct _HANDLE_TRACE_DEBUG_INFO {
    /*0x000*/     ULONG32      CurrentStackIndex;
    /*0x004*/     struct _HANDLE_TRACE_DB_ENTRY TraceDb[4096];
    }HANDLE_TRACE_DEBUG_INFO, *PHANDLE_TRACE_DEBUG_INFO;
    typedef struct _HEAP_LOCK {
                  union
                  {
    /*0x000*/         struct _RTL_CRITICAL_SECTION CriticalSection;
    /*0x000*/         struct _ERESOURCE Resource;
                  }Lock;
    }HEAP_LOCK, *PHEAP_LOCK;
    typedef struct _HHIVE {
    /*0x000*/     ULONG32      Signature;
    /*0x004*/     PVOID GetCellRoutine;
    /*0x008*/     PVOID ReleaseCellRoutine;
    /*0x00C*/     PVOID Allocate;
    /*0x010*/     PVOID Free;
    /*0x014*/     PVOID FileSetSize;
    /*0x018*/     PVOID FileWrite;
    /*0x01C*/     PVOID FileRead;
    /*0x020*/     PVOID FileFlush;
    /*0x024*/     struct _HBASE_BLOCK* BaseBlock;
    /*0x028*/     struct _RTL_BITMAP DirtyVector;
    /*0x030*/     ULONG32      DirtyCount;
    /*0x034*/     ULONG32      DirtyAlloc;
    /*0x038*/     UINT8        RealWrites;
    /*0x039*/     UINT8        _PADDING0_[0x3];
    /*0x03C*/     ULONG32      Cluster;
    /*0x040*/     UINT8        Flat;
    /*0x041*/     UINT8        ReadOnly;
    /*0x042*/     UINT8        Log;
    /*0x043*/     UINT8        _PADDING1_[0x1];
    /*0x044*/     ULONG32      HiveFlags;
    /*0x048*/     ULONG32      LogSize;
    /*0x04C*/     ULONG32      RefreshCount;
    /*0x050*/     ULONG32      StorageTypeCount;
    /*0x054*/     ULONG32      Version;
    /*0x058*/     struct _DUAL Storage[2];
    }HHIVE, *PHHIVE;
    typedef struct _IMAGE_NT_HEADERS {
    /*0x000*/     ULONG32      Signature;
    /*0x004*/     struct _IMAGE_FILE_HEADER FileHeader;
    /*0x018*/     struct _IMAGE_OPTIONAL_HEADER OptionalHeader;
    }IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS;
    typedef struct _INITIAL_PRIVILEGE_SET {
    /*0x000*/     ULONG32      PrivilegeCount;
    /*0x004*/     ULONG32      Control;
    /*0x008*/     struct _LUID_AND_ATTRIBUTES Privilege[3];
    }INITIAL_PRIVILEGE_SET, *PINITIAL_PRIVILEGE_SET;
    typedef struct _IO_RESOURCE_REQUIREMENTS_LIST {
    /*0x000*/     ULONG32      ListSize;
    /*0x004*/     enum _INTERFACE_TYPE InterfaceType;
    /*0x008*/     ULONG32      BusNumber;
    /*0x00C*/     ULONG32      SlotNumber;
    /*0x010*/     ULONG32      Reserved[3];
    /*0x01C*/     ULONG32      AlternativeLists;
    /*0x020*/     struct _IO_RESOURCE_LIST List[1];
    }IO_RESOURCE_REQUIREMENTS_LIST, *PIO_RESOURCE_REQUIREMENTS_LIST;
    typedef struct _IRP {
    /*0x000*/     INT16        Type;
    /*0x002*/     UINT16       Size;
    /*0x004*/     struct _MDL* MdlAddress;
    /*0x008*/     ULONG32      Flags;
                  union
                  {
    /*0x00C*/         struct _IRP* MasterIrp;
    /*0x00C*/         LONG32       IrpCount;
    /*0x00C*/         VOID*        SystemBuffer;
                  }AssociatedIrp;
    /*0x010*/     struct _LIST_ENTRY ThreadListEntry;
    /*0x018*/     struct _IO_STATUS_BLOCK IoStatus;
    /*0x020*/     CHAR         RequestorMode;
    /*0x021*/     UINT8        PendingReturned;
    /*0x022*/     CHAR         StackCount;
    /*0x023*/     CHAR         CurrentLocation;
    /*0x024*/     UINT8        Cancel;
    /*0x025*/     UINT8        CancelIrql;
    /*0x026*/     CHAR         ApcEnvironment;
    /*0x027*/     UINT8        AllocationFlags;
    /*0x028*/     struct _IO_STATUS_BLOCK* UserIosb;
    /*0x02C*/     struct _KEVENT* UserEvent;
                  union
                  {
                      struct
                      {
    /*0x030*/             PVOID UserApcRoutine;
    /*0x034*/             VOID*        UserApcContext;
                      }AsynchronousParameters;
    /*0x030*/         union _LARGE_INTEGER AllocationSize;
                  }Overlay;
    /*0x038*/     PVOID CancelRoutine;
    /*0x03C*/     VOID*        UserBuffer;
                  union
                  {
                      struct
                      {
                          union
                          {
    /*0x040*/                 struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry;
    /*0x040*/                 VOID*        DriverContext[4];
                          };
    /*0x050*/             struct _ETHREAD* Thread;
    /*0x054*/             CHAR*        AuxiliaryBuffer;
    /*0x058*/             struct _LIST_ENTRY ListEntry;
                          union
                          {
    /*0x060*/                 struct _IO_STACK_LOCATION* CurrentStackLocation;
    /*0x060*/                 ULONG32      PacketType;
                          };
    /*0x064*/             struct _FILE_OBJECT* OriginalFileObject;
                      }Overlay;
    /*0x040*/         struct _KAPC Apc;
    /*0x040*/         VOID*        CompletionKey;
                  }Tail;
    }IRP, *PIRP;
    typedef struct _KEVENT {
    /*0x000*/     struct _DISPATCHER_HEADER Header;
    }KEVENT, *PKEVENT;
    typedef struct _KMUTANT {
    /*0x000*/     struct _DISPATCHER_HEADER Header;
    /*0x010*/     struct _LIST_ENTRY MutantListEntry;
    /*0x018*/     struct _KTHREAD* OwnerThread;
    /*0x01C*/     UINT8        Abandoned;
    /*0x01D*/     UINT8        ApcDisable;
    /*0x01E*/     UINT8        _PADDING0_[0x2];
    }KMUTANT, *PKMUTANT;
    typedef struct _KPROCESS {
    /*0x000*/     struct _DISPATCHER_HEADER Header;
    /*0x010*/     struct _LIST_ENTRY ProfileListHead;
    /*0x018*/     ULONG32      DirectoryTableBase[2];
    /*0x020*/     struct _KGDTENTRY LdtDescriptor;
    /*0x028*/     struct _KIDTENTRY Int21Descriptor;
    /*0x030*/     UINT16       IopmOffset;
    /*0x032*/     UINT8        Iopl;
    /*0x033*/     UINT8        Unused;
    /*0x034*/     ULONG32      ActiveProcessors;
    /*0x038*/     ULONG32      KernelTime;
    /*0x03C*/     ULONG32      UserTime;
    /*0x040*/     struct _LIST_ENTRY ReadyListHead;
    /*0x048*/     struct _SINGLE_LIST_ENTRY SwapListEntry;
    /*0x04C*/     VOID*        VdmTrapcHandler;
    /*0x050*/     struct _LIST_ENTRY ThreadListHead;
    /*0x058*/     ULONG32      ProcessLock;
    /*0x05C*/     ULONG32      Affinity;
    /*0x060*/     UINT16       StackCount;
    /*0x062*/     CHAR         BasePriority;
    /*0x063*/     CHAR         ThreadQuantum;
    /*0x064*/     UINT8        AutoAlignment;
    /*0x065*/     UINT8        State;
    /*0x066*/     UINT8        ThreadSeed;
    /*0x067*/     UINT8        DisableBoost;
    /*0x068*/     UINT8        PowerState;
    /*0x069*/     UINT8        DisableQuantum;
    /*0x06A*/     UINT8        IdealNode;
                  union
                  {
    /*0x06B*/         struct _KEXECUTE_OPTIONS Flags;
    /*0x06B*/         UINT8        ExecuteOptions;
                  };
    }KPROCESS, *PKPROCESS;
    typedef struct _KPROCESSOR_STATE {
    /*0x000*/     struct _CONTEXT ContextFrame;
    /*0x2CC*/     struct _KSPECIAL_REGISTERS SpecialRegisters;
    }KPROCESSOR_STATE, *PKPROCESSOR_STATE;
    typedef struct _KQUEUE {
    /*0x000*/     struct _DISPATCHER_HEADER Header;
    /*0x010*/     struct _LIST_ENTRY EntryListHead;
    /*0x018*/     ULONG32      CurrentCount;
    /*0x01C*/     ULONG32      MaximumCount;
    /*0x020*/     struct _LIST_ENTRY ThreadListHead;
    }KQUEUE, *PKQUEUE;
    typedef struct _KSEMAPHORE {
    /*0x000*/     struct _DISPATCHER_HEADER Header;
    /*0x010*/     LONG32       Limit;
    }KSEMAPHORE, *PKSEMAPHORE;
    typedef struct _KTIMER {
    /*0x000*/     struct _DISPATCHER_HEADER Header;
    /*0x010*/     union _ULARGE_INTEGER DueTime;
    /*0x018*/     struct _LIST_ENTRY TimerListEntry;
    /*0x020*/     struct _KDPC* Dpc;
    /*0x024*/     LONG32       Period;
    }KTIMER, *PKTIMER;
    typedef struct _LPCP_MESSAGE {
                  union
                  {
    /*0x000*/         struct _LIST_ENTRY Entry;
                      struct
                      {
    /*0x000*/             struct _SINGLE_LIST_ENTRY FreeEntry;
    /*0x004*/             ULONG32      Reserved0;
                      };
                  };
    /*0x008*/     VOID*        SenderPort;
    /*0x00C*/     struct _ETHREAD* RepliedToThread;
    /*0x010*/     VOID*        PortContext;
    /*0x014*/     UINT8        _PADDING0_[0x4];
    /*0x018*/     struct _PORT_MESSAGE Request;
    }LPCP_MESSAGE, *PLPCP_MESSAGE;
    typedef struct _MBCB {
    /*0x000*/     INT16        NodeTypeCode;
    /*0x002*/     INT16        NodeIsInZone;
    /*0x004*/     ULONG32      PagesToWrite;
    /*0x008*/     ULONG32      DirtyPages;
    /*0x00C*/     ULONG32      Reserved;
    /*0x010*/     struct _LIST_ENTRY BitmapRanges;
    /*0x018*/     INT64        ResumeWritePage;
    /*0x020*/     struct _BITMAP_RANGE BitmapRange1;
    /*0x040*/     struct _BITMAP_RANGE BitmapRange2;
    /*0x060*/     struct _BITMAP_RANGE BitmapRange3;
    }MBCB, *PMBCB;
    typedef struct _MMBANKED_SECTION {
    /*0x000*/     ULONG32      BasePhysicalPage;
    /*0x004*/     struct _MMPTE* BasedPte;
    /*0x008*/     ULONG32      BankSize;
    /*0x00C*/     ULONG32      BankShift;
    /*0x010*/     PVOID BankedRoutine;
    /*0x014*/     VOID*        Context;
    /*0x018*/     struct _MMPTE* CurrentMappedPte;
    /*0x01C*/     struct _MMPTE BankTemplate[1];
    }MMBANKED_SECTION, *PMMBANKED_SECTION;
    typedef struct _MMPFN {
                  union
                  {
    /*0x000*/         ULONG32      Flink;
    /*0x000*/         ULONG32      WsIndex;
    /*0x000*/         struct _KEVENT* Event;
    /*0x000*/         LONG32       ReadStatus;
    /*0x000*/         struct _SINGLE_LIST_ENTRY NextStackPfn;
                  }u1;
    /*0x004*/     struct _MMPTE* PteAddress;
                  union
                  {
    /*0x008*/         ULONG32      Blink;
    /*0x008*/         ULONG32      ShareCount;
                  }u2;
                  union
                  {
    /*0x00C*/         struct _MMPFNENTRY e1;
                      struct
                      {
    /*0x00C*/             UINT16       ShortFlags;
    /*0x00E*/             UINT16       ReferenceCount;
                      }e2;
                  }u3;
    /*0x010*/     struct _MMPTE OriginalPte;
                  union
                  {
    /*0x014*/         ULONG32      EntireFrame;
                      struct
                      {
    /*0x014*/             ULONG32      PteFrame : 26;
    /*0x014*/             ULONG32      InPageError : 1;
    /*0x014*/             ULONG32      VerifierAllocation : 1;
    /*0x014*/             ULONG32      AweAllocation : 1;
    /*0x014*/             ULONG32      LockCharged : 1;
    /*0x014*/             ULONG32      KernelStack : 1;
    /*0x014*/             ULONG32      Reserved : 1;
                      };
                  }u4;
    }MMPFN, *PMMPFN;
    typedef struct _NPAGED_LOOKASIDE_LIST {
    /*0x000*/     struct _GENERAL_LOOKASIDE L;
    /*0x080*/     ULONG32      Lock__ObsoleteButDoNotDelete;
    /*0x084*/     UINT8        _PADDING0_[0x7C];
    }NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
    typedef struct _OBJECT_TYPE {
    /*0x000*/     struct _ERESOURCE Mutex;
    /*0x038*/     struct _LIST_ENTRY TypeList;
    /*0x040*/     struct _UNICODE_STRING Name;
    /*0x048*/     VOID*        DefaultObject;
    /*0x04C*/     ULONG32      Index;
    /*0x050*/     ULONG32      TotalNumberOfObjects;
    /*0x054*/     ULONG32      TotalNumberOfHandles;
    /*0x058*/     ULONG32      HighWaterNumberOfObjects;
    /*0x05C*/     ULONG32      HighWaterNumberOfHandles;
    /*0x060*/     struct _OBJECT_TYPE_INITIALIZER TypeInfo;
    /*0x0AC*/     ULONG32      Key;
    /*0x0B0*/     struct _ERESOURCE ObjectLocks[4];
    }OBJECT_TYPE, *POBJECT_TYPE;
    typedef struct _PCI_ARBITER_INSTANCE {
    /*0x000*/     struct _PCI_SECONDARY_EXTENSION Header;
    /*0x00C*/     struct _PCI_INTERFACE* Interface;
    /*0x010*/     struct _PCI_FDO_EXTENSION* BusFdoExtension;
    /*0x014*/     UINT16       InstanceName[24];
    /*0x044*/     struct _ARBITER_INSTANCE CommonInstance;
    }PCI_ARBITER_INSTANCE, *PPCI_ARBITER_INSTANCE;
    //
    //refer to ftp://ftp.lna.br/users/cesar/PCI_cdrom/Demos/windows_drivers/detect_flexopt/Klibdrv32.h
    //
    typedef struct _PCI_COMMON_CONFIG {
    /*0x000*/     UINT16       VendorID;
    /*0x002*/     UINT16       DeviceID;
    /*0x004*/     UINT16       Command;
    /*0x006*/     UINT16       Status;
    /*0x008*/     UINT8        RevisionID;
    /*0x009*/     UINT8        ProgIf;
    /*0x00A*/     UINT8        SubClass;
    /*0x00B*/     UINT8        BaseClass;
    /*0x00C*/     UINT8        CacheLineSize;
    /*0x00D*/     UINT8        LatencyTimer;
    /*0x00E*/     UINT8        HeaderType;
    /*0x00F*/     UINT8        BIST;
                  union
                  {
    /*0x010*/         struct _PCI_HEADER_TYPE_0 type0;
    /*0x010*/         struct _PCI_HEADER_TYPE_1 type1;
    /*0x010*/         struct _PCI_HEADER_TYPE_2 type2;
                  }u;
    /*0x040*/     UINT8        DeviceSpecific[192];
    }PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
    typedef struct _PNP_DEVICE_EVENT_ENTRY {
    /*0x000*/     struct _LIST_ENTRY ListEntry;
    /*0x008*/     ULONG32      Argument;
    /*0x00C*/     struct _KEVENT* CallerEvent;
    /*0x010*/     PVOID Callback;
    /*0x014*/     VOID*        Context;
    /*0x018*/     enum _PNP_VETO_TYPE* VetoType;
    /*0x01C*/     struct _UNICODE_STRING* VetoName;
    /*0x020*/     struct _PLUGPLAY_EVENT_BLOCK Data;
    }PNP_DEVICE_EVENT_ENTRY, *PPNP_DEVICE_EVENT_ENTRY;
    typedef struct _PRIVILEGE_SET {
    /*0x000*/     ULONG32      PrivilegeCount;
    /*0x004*/     ULONG32      Control;
    /*0x008*/     struct _LUID_AND_ATTRIBUTES Privilege[1];
    }PRIVILEGE_SET, *PPRIVILEGE_SET;
    typedef struct _RTL_USER_PROCESS_PARAMETERS {
    /*0x000*/     ULONG32      MaximumLength;
    /*0x004*/     ULONG32      Length;
    /*0x008*/     ULONG32      Flags;
    /*0x00C*/     ULONG32      DebugFlags;
    /*0x010*/     VOID*        ConsoleHandle;
    /*0x014*/     ULONG32      ConsoleFlags;
    /*0x018*/     VOID*        StandardInput;
    /*0x01C*/     VOID*        StandardOutput;
    /*0x020*/     VOID*        StandardError;
    /*0x024*/     struct _CURDIR CurrentDirectory;
    /*0x030*/     struct _UNICODE_STRING DllPath;
    /*0x038*/     struct _UNICODE_STRING ImagePathName;
    /*0x040*/     struct _UNICODE_STRING CommandLine;
    /*0x048*/     VOID*        Environment;
    /*0x04C*/     ULONG32      StartingX;
    /*0x050*/     ULONG32      StartingY;
    /*0x054*/     ULONG32      CountX;
    /*0x058*/     ULONG32      CountY;
    /*0x05C*/     ULONG32      CountCharsX;
    /*0x060*/     ULONG32      CountCharsY;
    /*0x064*/     ULONG32      FillAttribute;
    /*0x068*/     ULONG32      WindowFlags;
    /*0x06C*/     ULONG32      ShowWindowFlags;
    /*0x070*/     struct _UNICODE_STRING WindowTitle;
    /*0x078*/     struct _UNICODE_STRING DesktopInfo;
    /*0x080*/     struct _UNICODE_STRING ShellInfo;
    /*0x088*/     struct _UNICODE_STRING RuntimeData;
    /*0x090*/     struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32];
    }RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
    typedef struct _SEGMENT {
    /*0x000*/     struct _CONTROL_AREA* ControlArea;
    /*0x004*/     ULONG32      TotalNumberOfPtes;
    /*0x008*/     ULONG32      NonExtendedPtes;
    /*0x00C*/     ULONG32      WritableUserReferences;
    /*0x010*/     UINT64       SizeOfSegment;
    /*0x018*/     struct _MMPTE SegmentPteTemplate;
    /*0x01C*/     ULONG32      NumberOfCommittedPages;
    /*0x020*/     struct _MMEXTEND_INFO* ExtendInfo;
    /*0x024*/     VOID*        SystemImageBase;
    /*0x028*/     VOID*        BasedAddress;
                  union
                  {
    /*0x02C*/         ULONG32      ImageCommitment;
    /*0x02C*/         struct _EPROCESS* CreatingProcess;
                  }u1;
                  union
                  {
    /*0x030*/         struct _SECTION_IMAGE_INFORMATION* ImageInformation;
    /*0x030*/         VOID*        FirstMappedVa;
                  }u2;
    /*0x034*/     struct _MMPTE* PrototypePte;
    /*0x038*/     struct _MMPTE ThePtes[1];
    /*0x03C*/     UINT8        _PADDING0_[0x4];
    }SEGMENT, *PSEGMENT;
    typedef struct _SYSTEM_POWER_POLICY {
    /*0x000*/     ULONG32      Revision;
    /*0x004*/     struct _POWER_ACTION_POLICY PowerButton;
    /*0x010*/     struct _POWER_ACTION_POLICY SleepButton;
    /*0x01C*/     struct _POWER_ACTION_POLICY LidClose;
    /*0x028*/     enum _SYSTEM_POWER_STATE LidOpenWake;
    /*0x02C*/     ULONG32      Reserved;
    /*0x030*/     struct _POWER_ACTION_POLICY Idle;
    /*0x03C*/     ULONG32      IdleTimeout;
    /*0x040*/     UINT8        IdleSensitivity;
    /*0x041*/     UINT8        DynamicThrottle;
    /*0x042*/     UINT8        Spare2[2];
    /*0x044*/     enum _SYSTEM_POWER_STATE MinSleep;
    /*0x048*/     enum _SYSTEM_POWER_STATE MaxSleep;
    /*0x04C*/     enum _SYSTEM_POWER_STATE ReducedLatencySleep;
    /*0x050*/     ULONG32      WinLogonFlags;
    /*0x054*/     ULONG32      Spare3;
    /*0x058*/     ULONG32      DozeS4Timeout;
    /*0x05C*/     ULONG32      BroadcastCapacityResolution;
    /*0x060*/     struct _SYSTEM_POWER_LEVEL DischargePolicy[4];
    /*0x0C0*/     ULONG32      VideoTimeout;
    /*0x0C4*/     UINT8        VideoDimDisplay;
    /*0x0C5*/     UINT8        _PADDING0_[0x3];
    /*0x0C8*/     ULONG32      VideoReserved[3];
    /*0x0D4*/     ULONG32      SpindownTimeout;
    /*0x0D8*/     UINT8        OptimizeForPower;
    /*0x0D9*/     UINT8        FanThrottleTolerance;
    /*0x0DA*/     UINT8        ForcedThrottle;
    /*0x0DB*/     UINT8        MinThrottle;
    /*0x0DC*/     struct _POWER_ACTION_POLICY OverThrottled;
    }SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY;
    typedef struct _TEB {
    /*0x000*/     struct _NT_TIB NtTib;
    /*0x01C*/     VOID*        EnvironmentPointer;
    /*0x020*/     struct _CLIENT_ID ClientId;
    /*0x028*/     VOID*        ActiveRpcHandle;
    /*0x02C*/     VOID*        ThreadLocalStoragePointer;
    /*0x030*/     struct _PEB* ProcessEnvironmentBlock;
    /*0x034*/     ULONG32      LastErrorValue;
    /*0x038*/     ULONG32      CountOfOwnedCriticalSections;
    /*0x03C*/     VOID*        CsrClientThread;
    /*0x040*/     VOID*        Win32ThreadInfo;
    /*0x044*/     ULONG32      User32Reserved[26];
    /*0x0AC*/     ULONG32      UserReserved[5];
    /*0x0C0*/     VOID*        WOW32Reserved;
    /*0x0C4*/     ULONG32      CurrentLocale;
    /*0x0C8*/     ULONG32      FpSoftwareStatusRegister;
    /*0x0CC*/     VOID*        SystemReserved1[54];
    /*0x1A4*/     LONG32       ExceptionCode;
    /*0x1A8*/     struct _ACTIVATION_CONTEXT_STACK ActivationContextStack;
    /*0x1BC*/     UINT8        SpareBytes1[24];
    /*0x1D4*/     struct _GDI_TEB_BATCH GdiTebBatch;
    /*0x6B4*/     struct _CLIENT_ID RealClientId;
    /*0x6BC*/     VOID*        GdiCachedProcessHandle;
    /*0x6C0*/     ULONG32      GdiClientPID;
    /*0x6C4*/     ULONG32      GdiClientTID;
    /*0x6C8*/     VOID*        GdiThreadLocalInfo;
    /*0x6CC*/     ULONG32      Win32ClientInfo[62];
    /*0x7C4*/     VOID*        glDispatchTable[233];
    /*0xB68*/     ULONG32      glReserved1[29];
    /*0xBDC*/     VOID*        glReserved2;
    /*0xBE0*/     VOID*        glSectionInfo;
    /*0xBE4*/     VOID*        glSection;
    /*0xBE8*/     VOID*        glTable;
    /*0xBEC*/     VOID*        glCurrentRC;
    /*0xBF0*/     VOID*        glContext;
    /*0xBF4*/     ULONG32      LastStatusValue;
    /*0xBF8*/     struct _UNICODE_STRING StaticUnicodeString;
    /*0xC00*/     UINT16       StaticUnicodeBuffer[261];
    /*0xE0A*/     UINT8        _PADDING0_[0x2];
    /*0xE0C*/     VOID*        DeallocationStack;
    /*0xE10*/     VOID*        TlsSlots[64];
    /*0xF10*/     struct _LIST_ENTRY TlsLinks;
    /*0xF18*/     VOID*        Vdm;
    /*0xF1C*/     VOID*        ReservedForNtRpc;
    /*0xF20*/     VOID*        DbgSsReserved[2];
    /*0xF28*/     ULONG32      HardErrorsAreDisabled;
    /*0xF2C*/     VOID*        Instrumentation[16];
    /*0xF6C*/     VOID*        WinSockData;
    /*0xF70*/     ULONG32      GdiBatchCount;
    /*0xF74*/     UINT8        InDbgPrint;
    /*0xF75*/     UINT8        FreeStackOnTermination;
    /*0xF76*/     UINT8        HasFiberData;
    /*0xF77*/     UINT8        IdealProcessor;
    /*0xF78*/     ULONG32      Spare3;
    /*0xF7C*/     VOID*        ReservedForPerf;
    /*0xF80*/     VOID*        ReservedForOle;
    /*0xF84*/     ULONG32      WaitingOnLoaderLock;
    /*0xF88*/     struct _Wx86ThreadState Wx86Thread;
    /*0xF94*/     VOID**       TlsExpansionSlots;
    /*0xF98*/     ULONG32      ImpersonationLocale;
    /*0xF9C*/     ULONG32      IsImpersonating;
    /*0xFA0*/     VOID*        NlsCache;
    /*0xFA4*/     VOID*        pShimData;
    /*0xFA8*/     ULONG32      HeapVirtualAffinity;
    /*0xFAC*/     VOID*        CurrentTransactionHandle;
    /*0xFB0*/     struct _TEB_ACTIVE_FRAME* ActiveFrame;
    /*0xFB4*/     UINT8        SafeThunkCall;
    /*0xFB5*/     UINT8        BooleanSpare[3];
    }TEB, *PTEB;
    typedef struct _TOKEN {
    /*0x000*/     struct _TOKEN_SOURCE TokenSource;
    /*0x010*/     struct _LUID TokenId;
    /*0x018*/     struct _LUID AuthenticationId;
    /*0x020*/     struct _LUID ParentTokenId;
    /*0x028*/     union _LARGE_INTEGER ExpirationTime;
    /*0x030*/     struct _ERESOURCE* TokenLock;
    /*0x034*/     UINT8        _PADDING0_[0x4];
    /*0x038*/     struct _SEP_AUDIT_POLICY AuditPolicy;
    /*0x040*/     struct _LUID ModifiedId;
    /*0x048*/     ULONG32      SessionId;
    /*0x04C*/     ULONG32      UserAndGroupCount;
    /*0x050*/     ULONG32      RestrictedSidCount;
    /*0x054*/     ULONG32      PrivilegeCount;
    /*0x058*/     ULONG32      VariableLength;
    /*0x05C*/     ULONG32      DynamicCharged;
    /*0x060*/     ULONG32      DynamicAvailable;
    /*0x064*/     ULONG32      DefaultOwnerIndex;
    /*0x068*/     struct _SID_AND_ATTRIBUTES* UserAndGroups;
    /*0x06C*/     struct _SID_AND_ATTRIBUTES* RestrictedSids;
    /*0x070*/     VOID*        PrimaryGroup;
    /*0x074*/     struct _LUID_AND_ATTRIBUTES* Privileges;
    /*0x078*/     ULONG32*     DynamicPart;
    /*0x07C*/     struct _ACL* DefaultDacl;
    /*0x080*/     enum _TOKEN_TYPE TokenType;
    /*0x084*/     enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
    /*0x088*/     ULONG32      TokenFlags;
    /*0x08C*/     UINT8        TokenInUse;
    /*0x08D*/     UINT8        _PADDING1_[0x3];
    /*0x090*/     struct _SECURITY_TOKEN_PROXY_DATA* ProxyData;
    /*0x094*/     struct _SECURITY_TOKEN_AUDIT_DATA* AuditData;
    /*0x098*/     struct _LUID OriginatingLogonSession;
    /*0x0A0*/     ULONG32      VariablePart;
    /*0x0A4*/     UINT8        _PADDING2_[0x4];
    }TOKEN, *PTOKEN;
    typedef struct _TOKEN_CONTROL {
    /*0x000*/     struct _LUID TokenId;
    /*0x008*/     struct _LUID AuthenticationId;
    /*0x010*/     struct _LUID ModifiedId;
    /*0x018*/     struct _TOKEN_SOURCE TokenSource;
    }TOKEN_CONTROL, *PTOKEN_CONTROL;
    typedef struct _WAIT_CONTEXT_BLOCK {
    /*0x000*/     struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry;
    /*0x010*/     PVOID DeviceRoutine;
    /*0x014*/     VOID*        DeviceContext;
    /*0x018*/     ULONG32      NumberOfMapRegisters;
    /*0x01C*/     VOID*        DeviceObject;
    /*0x020*/     VOID*        CurrentIrp;
    /*0x024*/     struct _KDPC* BufferChainingDpc;
    }WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;
    typedef struct _WMI_BUFFER_HEADER {
                  union
                  {
    /*0x000*/         struct _WNODE_HEADER Wnode;
                      struct
                      {
    /*0x000*/             UINT64       Reserved1;
    /*0x008*/             UINT64       Reserved2;
    /*0x010*/             union _LARGE_INTEGER Reserved3;
                          union
                          {
                              struct
                              {
    /*0x018*/                     VOID*        Alignment;
    /*0x01C*/                     struct _SINGLE_LIST_ENTRY SlistEntry;
                              };
    /*0x018*/                 struct _LIST_ENTRY Entry;
                          };
                      };
                      struct
                      {
    /*0x000*/             LONG32       ReferenceCount;
    /*0x004*/             ULONG32      SavedOffset;
    /*0x008*/             ULONG32      CurrentOffset;
    /*0x00C*/             ULONG32      UsePerfClock;
    /*0x010*/             union _LARGE_INTEGER TimeStamp;
    /*0x018*/             struct _GUID Guid;
    /*0x028*/             struct _WMI_CLIENT_CONTEXT ClientContext;
                          union
                          {
    /*0x02C*/                 struct _WMI_BUFFER_STATE State;
    /*0x02C*/                 ULONG32      Flags;
                          };
                      };
                  };
    /*0x030*/     ULONG32      Offset;
    /*0x034*/     ULONG32      EventsLost;
                  union
                  {
    /*0x038*/         struct _GUID InstanceGuid;
                      struct
                      {
    /*0x038*/             VOID*        LoggerContext;
    /*0x03C*/             struct _SINGLE_LIST_ENTRY GlobalEntry;
    /*0x040*/             UINT8        _PADDING0_[0x8];
                      };
                  };
    }WMI_BUFFER_HEADER, *PWMI_BUFFER_HEADER;

    typedef struct _ACCESS_STATE {
    /*0x000*/     struct _LUID OperationID;
    /*0x008*/     UINT8        SecurityEvaluated;
    /*0x009*/     UINT8        GenerateAudit;
    /*0x00A*/     UINT8        GenerateOnClose;
    /*0x00B*/     UINT8        PrivilegesAllocated;
    /*0x00C*/     ULONG32      Flags;
    /*0x010*/     ULONG32      RemainingDesiredAccess;
    /*0x014*/     ULONG32      PreviouslyGrantedAccess;
    /*0x018*/     ULONG32      OriginalDesiredAccess;
    /*0x01C*/     struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
    /*0x02C*/     VOID*        SecurityDescriptor;
    /*0x030*/     VOID*        AuxData;
                  union
                  {
    /*0x034*/         struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
    /*0x034*/         struct _PRIVILEGE_SET PrivilegeSet;
                  }Privileges;
    /*0x060*/     UINT8        AuditPrivileges;
    /*0x061*/     UINT8        _PADDING0_[0x3];
    /*0x064*/     struct _UNICODE_STRING ObjectName;
    /*0x06C*/     struct _UNICODE_STRING ObjectTypeName;
    }ACCESS_STATE, *PACCESS_STATE;
    typedef struct _CACHE_UNINITIALIZE_EVENT {
    /*0x000*/     struct _CACHE_UNINITIALIZE_EVENT* Next;
    /*0x004*/     struct _KEVENT Event;
    }CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
    typedef struct _CMHIVE {
    /*0x000*/     struct _HHIVE Hive;
    /*0x210*/     VOID*        FileHandles[3];
    /*0x21C*/     struct _LIST_ENTRY NotifyList;
    /*0x224*/     struct _LIST_ENTRY HiveList;
    /*0x22C*/     struct _FAST_MUTEX* HiveLock;
    /*0x230*/     struct _FAST_MUTEX* ViewLock;
    /*0x234*/     struct _LIST_ENTRY LRUViewListHead;
    /*0x23C*/     struct _LIST_ENTRY PinViewListHead;
    /*0x244*/     struct _FILE_OBJECT* FileObject;
    /*0x248*/     struct _UNICODE_STRING FileFullPath;
    /*0x250*/     struct _UNICODE_STRING FileUserName;
    /*0x258*/     UINT16       MappedViews;
    /*0x25A*/     UINT16       PinnedViews;
    /*0x25C*/     ULONG32      UseCount;
    /*0x260*/     ULONG32      SecurityCount;
    /*0x264*/     ULONG32      SecurityCacheSize;
    /*0x268*/     LONG32       SecurityHitHint;
    /*0x26C*/     struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache;
    /*0x270*/     struct _LIST_ENTRY SecurityHash[64];
    /*0x470*/     struct _KEVENT* UnloadEvent;
    /*0x474*/     struct _CM_KEY_CONTROL_BLOCK* RootKcb;
    /*0x478*/     UINT8        Frozen;
    /*0x479*/     UINT8        _PADDING0_[0x3];
    /*0x47C*/     struct _WORK_QUEUE_ITEM* UnloadWorkItem;
    /*0x480*/     UINT8        GrowOnlyMode;
    /*0x481*/     UINT8        _PADDING1_[0x3];
    /*0x484*/     ULONG32      GrowOffset;
    /*0x488*/     struct _LIST_ENTRY KcbConvertListHead;
    /*0x490*/     struct _LIST_ENTRY KnodeConvertListHead;
    /*0x498*/     struct _CM_CELL_REMAP_BLOCK* CellRemapArray;
    }CMHIVE, *PCMHIVE;
    typedef struct _CM_CACHED_VALUE_INDEX {
    /*0x000*/     ULONG32      CellIndex;
                  union
                  {
    /*0x004*/         struct _CELL_DATA CellData;
    /*0x004*/         ULONG32      List[1];
                  }Data;
    }CM_CACHED_VALUE_INDEX, *PCM_CACHED_VALUE_INDEX;
    typedef struct _CM_RESOURCE_LIST {
    /*0x000*/     ULONG32      Count;
    /*0x004*/     struct _CM_FULL_RESOURCE_DESCRIPTOR List[1];
    }CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;
    typedef struct _DBGKD_MANIPULATE_STATE32 {
    /*0x000*/     ULONG32      ApiNumber;
    /*0x004*/     UINT16       ProcessorLevel;
    /*0x006*/     UINT16       Processor;
    /*0x008*/     LONG32       ReturnStatus;
                  union
                  {
    /*0x00C*/         struct _DBGKD_READ_MEMORY32 ReadMemory;
    /*0x00C*/         struct _DBGKD_WRITE_MEMORY32 WriteMemory;
    /*0x00C*/         struct _DBGKD_READ_MEMORY64 ReadMemory64;
    /*0x00C*/         struct _DBGKD_WRITE_MEMORY64 WriteMemory64;
    /*0x00C*/         struct _DBGKD_GET_CONTEXT GetContext;
    /*0x00C*/         struct _DBGKD_SET_CONTEXT SetContext;
    /*0x00C*/         struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint;
    /*0x00C*/         struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint;
    /*0x00C*/         struct _DBGKD_CONTINUE Continue;
    /*0x00C*/         struct _DBGKD_CONTINUE2 Continue2;
    /*0x00C*/         struct _DBGKD_READ_WRITE_IO32 ReadWriteIo;
    /*0x00C*/         struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended;
    /*0x00C*/         struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls;
    /*0x00C*/         struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall;
    /*0x00C*/         struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint;
    /*0x00C*/         struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint;
    /*0x00C*/         struct _DBGKD_GET_VERSION32 GetVersion32;
    /*0x00C*/         struct _DBGKD_BREAKPOINTEX BreakPointEx;
    /*0x00C*/         struct _DBGKD_READ_WRITE_MSR ReadWriteMsr;
    /*0x00C*/         struct _DBGKD_SEARCH_MEMORY SearchMemory;
                  }u;
    }DBGKD_MANIPULATE_STATE32, *PDBGKD_MANIPULATE_STATE32;
    typedef struct _DBGKD_MANIPULATE_STATE64 {
    /*0x000*/     ULONG32      ApiNumber;
    /*0x004*/     UINT16       ProcessorLevel;
    /*0x006*/     UINT16       Processor;
    /*0x008*/     LONG32       ReturnStatus;
    /*0x00C*/     UINT8        _PADDING0_[0x4];
                  union
                  {
    /*0x010*/         struct _DBGKD_READ_MEMORY64 ReadMemory;
    /*0x010*/         struct _DBGKD_WRITE_MEMORY64 WriteMemory;
    /*0x010*/         struct _DBGKD_GET_CONTEXT GetContext;
    /*0x010*/         struct _DBGKD_SET_CONTEXT SetContext;
    /*0x010*/         struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint;
    /*0x010*/         struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint;
    /*0x010*/         struct _DBGKD_CONTINUE Continue;
    /*0x010*/         struct _DBGKD_CONTINUE2 Continue2;
    /*0x010*/         struct _DBGKD_READ_WRITE_IO64 ReadWriteIo;
    /*0x010*/         struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended;
    /*0x010*/         struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls;
    /*0x010*/         struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall;
    /*0x010*/         struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint;
    /*0x010*/         struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint;
    /*0x010*/         struct _DBGKD_GET_VERSION64 GetVersion64;
    /*0x010*/         struct _DBGKD_BREAKPOINTEX BreakPointEx;
    /*0x010*/         struct _DBGKD_READ_WRITE_MSR ReadWriteMsr;
    /*0x010*/         struct _DBGKD_SEARCH_MEMORY SearchMemory;
    /*0x010*/         struct _DBGKD_GET_SET_BUS_DATA GetSetBusData;
    /*0x010*/         struct _DBGKD_FILL_MEMORY FillMemory;
    /*0x010*/         struct _DBGKD_QUERY_MEMORY QueryMemory;
                  }u;
    }DBGKD_MANIPULATE_STATE64, *PDBGKD_MANIPULATE_STATE64;
    typedef struct _DEVICE_OBJECT {
    /*0x000*/     INT16        Type;
    /*0x002*/     UINT16       Size;
    /*0x004*/     LONG32       ReferenceCount;
    /*0x008*/     struct _DRIVER_OBJECT* DriverObject;
    /*0x00C*/     struct _DEVICE_OBJECT* NextDevice;
    /*0x010*/     struct _DEVICE_OBJECT* AttachedDevice;
    /*0x014*/     struct _IRP* CurrentIrp;
    /*0x018*/     struct _IO_TIMER* Timer;
    /*0x01C*/     ULONG32      Flags;
    /*0x020*/     ULONG32      Characteristics;
    /*0x024*/     struct _VPB* Vpb;
    /*0x028*/     VOID*        DeviceExtension;
    /*0x02C*/     ULONG32      DeviceType;
    /*0x030*/     CHAR         StackSize;
    /*0x031*/     UINT8        _PADDING0_[0x3];
                  union
                  {
    /*0x034*/         struct _LIST_ENTRY ListEntry;
    /*0x034*/         struct _WAIT_CONTEXT_BLOCK Wcb;
                  }Queue;
    /*0x05C*/     ULONG32      AlignmentRequirement;
    /*0x060*/     struct _KDEVICE_QUEUE DeviceQueue;
    /*0x074*/     struct _KDPC Dpc;
    /*0x094*/     ULONG32      ActiveThreadCount;
    /*0x098*/     VOID*        SecurityDescriptor;
    /*0x09C*/     struct _KEVENT DeviceLock;
    /*0x0AC*/     UINT16       SectorSize;
    /*0x0AE*/     UINT16       Spare1;
    /*0x0B0*/     struct _DEVOBJ_EXTENSION* DeviceObjectExtension;
    /*0x0B4*/     VOID*        Reserved;
    }DEVICE_OBJECT, *PDEVICE_OBJECT;
    typedef struct _ETIMER {
    /*0x000*/     struct _KTIMER KeTimer;
    /*0x028*/     struct _KAPC TimerApc;
    /*0x058*/     struct _KDPC TimerDpc;
    /*0x078*/     struct _LIST_ENTRY ActiveTimerListEntry;
    /*0x080*/     ULONG32      Lock;
    /*0x084*/     LONG32       Period;
    /*0x088*/     UINT8        ApcAssociated;
    /*0x089*/     UINT8        WakeTimer;
    /*0x08A*/     UINT8        _PADDING0_[0x2];
    /*0x08C*/     struct _LIST_ENTRY WakeTimerListEntry;
    /*0x094*/     UINT8        _PADDING1_[0x4];
    }ETIMER, *PETIMER;
    typedef struct _EVENT_COUNTER {
    /*0x000*/     struct _SINGLE_LIST_ENTRY ListEntry;
    /*0x004*/     ULONG32      RefCount;
    /*0x008*/     struct _KEVENT Event;
    }EVENT_COUNTER, *PEVENT_COUNTER;
    typedef struct _EX_PUSH_LOCK_WAIT_BLOCK {
    /*0x000*/     struct _KEVENT WakeEvent;
    /*0x010*/     struct _EX_PUSH_LOCK_WAIT_BLOCK* Next;
    /*0x014*/     ULONG32      ShareCount;
    /*0x018*/     UINT8        Exclusive;
    /*0x019*/     UINT8        _PADDING0_[0x3];
    }EX_PUSH_LOCK_WAIT_BLOCK, *PEX_PUSH_LOCK_WAIT_BLOCK;
    //Add by Health_163@163.com, refer tohttp://www.x64asm.com/asmbbs/archiver/tid-1235.html
    typedef union _EX_QUEUE_WORKER_INFO {
              ULONG QueueDisabled: 1;
              ULONG MakeThreadsAsNecessary: 1;
              ULONG WaitMode: 1;
              ULONG WorkerCount: 29;
              LONG QueueWorkerInfo;
    } EX_QUEUE_WORKER_INFO, *PEX_QUEUE_WORKER_INFO;

    typedef struct _EX_WORK_QUEUE {
    /*0x000*/     struct _KQUEUE WorkerQueue;
    /*0x028*/     ULONG32      DynamicThreadCount;
    /*0x02C*/     ULONG32      WorkItemsProcessed;
    /*0x030*/     ULONG32      WorkItemsProcessedLastPass;
    /*0x034*/     ULONG32      QueueDepthLastPass;
    /*0x038*/     union _EX_QUEUE_WORKER_INFO Info;
    }EX_WORK_QUEUE, *PEX_WORK_QUEUE;
    typedef struct _FAST_MUTEX {
    /*0x000*/     LONG32       Count;
    /*0x004*/     struct _KTHREAD* Owner;
    /*0x008*/     ULONG32      Contention;
    /*0x00C*/     struct _KEVENT Event;
    /*0x01C*/     ULONG32      OldIrql;
    }FAST_MUTEX, *PFAST_MUTEX;
    typedef struct _FILE_OBJECT {
    /*0x000*/     INT16        Type;
    /*0x002*/     INT16        Size;
    /*0x004*/     struct _DEVICE_OBJECT* DeviceObject;
    /*0x008*/     struct _VPB* Vpb;
    /*0x00C*/     VOID*        FsContext;
    /*0x010*/     VOID*        FsContext2;
    /*0x014*/     struct _SECTION_OBJECT_POINTERS* SectionObjectPointer;
    /*0x018*/     VOID*        PrivateCacheMap;
    /*0x01C*/     LONG32       FinalStatus;
    /*0x020*/     struct _FILE_OBJECT* RelatedFileObject;
    /*0x024*/     UINT8        LockOperation;
    /*0x025*/     UINT8        DeletePending;
    /*0x026*/     UINT8        ReadAccess;
    /*0x027*/     UINT8        WriteAccess;
    /*0x028*/     UINT8        DeleteAccess;
    /*0x029*/     UINT8        SharedRead;
    /*0x02A*/     UINT8        SharedWrite;
    /*0x02B*/     UINT8        SharedDelete;
    /*0x02C*/     ULONG32      Flags;
    /*0x030*/     struct _UNICODE_STRING FileName;
    /*0x038*/     union _LARGE_INTEGER CurrentByteOffset;
    /*0x040*/     ULONG32      Waiters;
    /*0x044*/     ULONG32      Busy;
    /*0x048*/     VOID*        LastLock;
    /*0x04C*/     struct _KEVENT Lock;
    /*0x05C*/     struct _KEVENT Event;
    /*0x06C*/     struct _IO_COMPLETION_CONTEXT* CompletionContext;
    }FILE_OBJECT, *PFILE_OBJECT;
    typedef struct _KTHREAD {
    /*0x000*/     struct _DISPATCHER_HEADER Header;
    /*0x010*/     struct _LIST_ENTRY MutantListHead;
    /*0x018*/     VOID*        InitialStack;
    /*0x01C*/     VOID*        StackLimit;
    /*0x020*/     VOID*        Teb;
    /*0x024*/     VOID*        TlsArray;
    /*0x028*/     VOID*        KernelStack;
    /*0x02C*/     UINT8        DebugActive;
    /*0x02D*/     UINT8        State;
    /*0x02E*/     UINT8        Alerted[2];
    /*0x030*/     UINT8        Iopl;
    /*0x031*/     UINT8        NpxState;
    /*0x032*/     CHAR         Saturation;
    /*0x033*/     CHAR         Priority;
    /*0x034*/     struct _KAPC_STATE ApcState;
    /*0x04C*/     ULONG32      ContextSwitches;
    /*0x050*/     UINT8        IdleSwapBlock;
    /*0x051*/     UINT8        Spare0[3];
    /*0x054*/     LONG32       WaitStatus;
    /*0x058*/     UINT8        WaitIrql;
    /*0x059*/     CHAR         WaitMode;
    /*0x05A*/     UINT8        WaitNext;
    /*0x05B*/     UINT8        WaitReason;
    /*0x05C*/     struct _KWAIT_BLOCK* WaitBlockList;
                  union
                  {
    /*0x060*/         struct _LIST_ENTRY WaitListEntry;
    /*0x060*/         struct _SINGLE_LIST_ENTRY SwapListEntry;
                  };
    /*0x068*/     ULONG32      WaitTime;
    /*0x06C*/     CHAR         BasePriority;
    /*0x06D*/     UINT8        DecrementCount;
    /*0x06E*/     CHAR         PriorityDecrement;
    /*0x06F*/     CHAR         Quantum;
    /*0x070*/     struct _KWAIT_BLOCK WaitBlock[4];
    /*0x0D0*/     VOID*        LegoData;
    /*0x0D4*/     ULONG32      KernelApcDisable;
    /*0x0D8*/     ULONG32      UserAffinity;
    /*0x0DC*/     UINT8        SystemAffinityActive;
    /*0x0DD*/     UINT8        PowerState;
    /*0x0DE*/     UINT8        NpxIrql;
    /*0x0DF*/     UINT8        InitialNode;
    /*0x0E0*/     VOID*        ServiceTable;
    /*0x0E4*/     struct _KQUEUE* Queue;
    /*0x0E8*/     ULONG32      ApcQueueLock;
    /*0x0EC*/     UINT8        _PADDING0_[0x4];
    /*0x0F0*/     struct _KTIMER Timer;
    /*0x118*/     struct _LIST_ENTRY QueueListEntry;
    /*0x120*/     ULONG32      SoftAffinity;
    /*0x124*/     ULONG32      Affinity;
    /*0x128*/     UINT8        Preempted;
    /*0x129*/     UINT8        ProcessReadyQueue;
    /*0x12A*/     UINT8        KernelStackResident;
    /*0x12B*/     UINT8        NextProcessor;
    /*0x12C*/     VOID*        CallbackStack;
    /*0x130*/     VOID*        Win32Thread;
    /*0x134*/     struct _KTRAP_FRAME* TrapFrame;
    /*0x138*/     struct _KAPC_STATE* ApcStatePointer[2];
    /*0x140*/     CHAR         PreviousMode;
    /*0x141*/     UINT8        EnableStackSwap;
    /*0x142*/     UINT8        LargeStack;
    /*0x143*/     UINT8        ResourceIndex;
    /*0x144*/     ULONG32      KernelTime;
    /*0x148*/     ULONG32      UserTime;
    /*0x14C*/     struct _KAPC_STATE SavedApcState;
    /*0x164*/     UINT8        Alertable;
    /*0x165*/     UINT8        ApcStateIndex;
    /*0x166*/     UINT8        ApcQueueable;
    /*0x167*/     UINT8        AutoAlignment;
    /*0x168*/     VOID*        StackBase;
    /*0x16C*/     struct _KAPC SuspendApc;
    /*0x19C*/     struct _KSEMAPHORE SuspendSemaphore;
    /*0x1B0*/     struct _LIST_ENTRY ThreadListEntry;
    /*0x1B8*/     CHAR         FreezeCount;
    /*0x1B9*/     CHAR         SuspendCount;
    /*0x1BA*/     UINT8        IdealProcessor;
    /*0x1BB*/     UINT8        DisableBoost;
    /*0x1BC*/     UINT8        _PADDING1_[0x4];
    }KTHREAD, *PKTHREAD;
    typedef struct _LPCP_NONPAGED_PORT_QUEUE {
    /*0x000*/     struct _KSEMAPHORE Semaphore;
    /*0x014*/     struct _LPCP_PORT_OBJECT* BackPointer;
    }LPCP_NONPAGED_PORT_QUEUE, *PLPCP_NONPAGED_PORT_QUEUE;
    typedef struct _MMMOD_WRITER_LISTHEAD {
    /*0x000*/     struct _LIST_ENTRY ListHead;
    /*0x008*/     struct _KEVENT Event;
    }MMMOD_WRITER_LISTHEAD, *PMMMOD_WRITER_LISTHEAD;
    typedef struct _PCI_COMMON_EXTENSION {
    /*0x000*/     VOID*        Next;
    /*0x004*/     enum _PCI_SIGNATURE ExtensionType;
    /*0x008*/     struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable;
    /*0x00C*/     UINT8        DeviceState;
    /*0x00D*/     UINT8        TentativeNextState;
    /*0x00E*/     UINT8        _PADDING0_[0x2];
    /*0x010*/     struct _KEVENT SecondaryExtLock;
    }PCI_COMMON_EXTENSION, *PPCI_COMMON_EXTENSION;
    typedef struct _PCI_FDO_EXTENSION {
    /*0x000*/     struct _SINGLE_LIST_ENTRY List;
    /*0x004*/     enum _PCI_SIGNATURE ExtensionType;
    /*0x008*/     struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable;
    /*0x00C*/     UINT8        DeviceState;
    /*0x00D*/     UINT8        TentativeNextState;
    /*0x00E*/     UINT8        _PADDING0_[0x2];
    /*0x010*/     struct _KEVENT SecondaryExtLock;
    /*0x020*/     struct _DEVICE_OBJECT* PhysicalDeviceObject;
    /*0x024*/     struct _DEVICE_OBJECT* FunctionalDeviceObject;
    /*0x028*/     struct _DEVICE_OBJECT* AttachedDeviceObject;
    /*0x02C*/     struct _KEVENT ChildListLock;
    /*0x03C*/     struct _PCI_PDO_EXTENSION* ChildPdoList;
    /*0x040*/     struct _PCI_FDO_EXTENSION* BusRootFdoExtension;
    /*0x044*/     struct _PCI_FDO_EXTENSION* ParentFdoExtension;
    /*0x048*/     struct _PCI_PDO_EXTENSION* ChildBridgePdoList;
    /*0x04C*/     struct _PCI_BUS_INTERFACE_STANDARD* PciBusInterface;
    /*0x050*/     UINT8        MaxSubordinateBus;
    /*0x051*/     UINT8        _PADDING1_[0x3];
    /*0x054*/     struct _BUS_HANDLER* BusHandler;
    /*0x058*/     UINT8        BaseBus;
    /*0x059*/     UINT8        Fake;
    /*0x05A*/     UINT8        ChildDelete;
    /*0x05B*/     UINT8        Scanned;
    /*0x05C*/     UINT8        ArbitersInitialized;
    /*0x05D*/     UINT8        BrokenVideoHackApplied;
    /*0x05E*/     UINT8        Hibernated;
    /*0x05F*/     UINT8        _PADDING2_[0x1];
    /*0x060*/     struct _PCI_POWER_STATE PowerState;
    /*0x0A0*/     struct _SINGLE_LIST_ENTRY SecondaryExtension;
    /*0x0A4*/     ULONG32      ChildWaitWakeCount;
    /*0x0A8*/     struct _PCI_COMMON_CONFIG* PreservedConfig;
    /*0x0AC*/     struct _PCI_LOCK Lock;
                  struct
                  {
    /*0x0B4*/         UINT8        Acquired;
    /*0x0B5*/         UINT8        CacheLineSize;
    /*0x0B6*/         UINT8        LatencyTimer;
    /*0x0B7*/         UINT8        EnablePERR;
    /*0x0B8*/         UINT8        EnableSERR;
                  }HotPlugParameters;
    /*0x0BC*/     ULONG32      BusHackFlags;
    }PCI_FDO_EXTENSION, *PPCI_FDO_EXTENSION;
    //Add by Health_163@163.com, refer tohttp://www.reactos.freedoors.org/Reactos%200.3.12/ReactOS-0.3.12-REL-src/dll/win32/kernel32/string/ReactOS-0.3.12-REL-src/drivers/bus/pcix/pci.h
    typedef union _PCI_HEADER_TYPE_DEPENDENT
    {
        struct
        {
            UCHAR Spare[4];
        } type0;
        struct
        {
            UCHAR PrimaryBus;
            UCHAR SecondaryBus;
            UCHAR SubordinateBus;
            UCHAR SubtractiveDecode:1;
            UCHAR IsaBitSet:1;
            UCHAR VgaBitSet:1;
            UCHAR WeChangedBusNumbers:1;
            UCHAR IsaBitRequired:1;
        } type1;
        struct
        {
            UCHAR Spare[4];
        } type2;
    } PCI_HEADER_TYPE_DEPENDENT, *PPCI_HEADER_TYPE_DEPENDENT;

    typedef struct _PCI_PDO_EXTENSION {
    /*0x000*/     struct _PCI_PDO_EXTENSION* Next;
    /*0x004*/     enum _PCI_SIGNATURE ExtensionType;
    /*0x008*/     struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable;
    /*0x00C*/     UINT8        DeviceState;
    /*0x00D*/     UINT8        TentativeNextState;
    /*0x00E*/     UINT8        _PADDING0_[0x2];
    /*0x010*/     struct _KEVENT SecondaryExtLock;
    /*0x020*/     struct _PCI_SLOT_NUMBER Slot;
    /*0x024*/     struct _DEVICE_OBJECT* PhysicalDeviceObject;
    /*0x028*/     struct _PCI_FDO_EXTENSION* ParentFdoExtension;
    /*0x02C*/     struct _SINGLE_LIST_ENTRY SecondaryExtension;
    /*0x030*/     ULONG32      BusInterfaceReferenceCount;
    /*0x034*/     ULONG32      AgpInterfaceReferenceCount;
    /*0x038*/     UINT16       VendorId;
    /*0x03A*/     UINT16       DeviceId;
    /*0x03C*/     UINT16       SubsystemVendorId;
    /*0x03E*/     UINT16       SubsystemId;
    /*0x040*/     UINT8        RevisionId;
    /*0x041*/     UINT8        ProgIf;
    /*0x042*/     UINT8        SubClass;
    /*0x043*/     UINT8        BaseClass;
    /*0x044*/     UINT8        AdditionalResourceCount;
    /*0x045*/     UINT8        AdjustedInterruptLine;
    /*0x046*/     UINT8        InterruptPin;
    /*0x047*/     UINT8        RawInterruptLine;
    /*0x048*/     UINT8        CapabilitiesPtr;
    /*0x049*/     UINT8        SavedLatencyTimer;
    /*0x04A*/     UINT8        SavedCacheLineSize;
    /*0x04B*/     UINT8        HeaderType;
    /*0x04C*/     UINT8        NotPresent;
    /*0x04D*/     UINT8        ReportedMissing;
    /*0x04E*/     UINT8        ExpectedWritebackFailure;
    /*0x04F*/     UINT8        NoTouchPmeEnable;
    /*0x050*/     UINT8        LegacyDriver;
    /*0x051*/     UINT8        UpdateHardware;
    /*0x052*/     UINT8        MovedDevice;
    /*0x053*/     UINT8        DisablePowerDown;
    /*0x054*/     UINT8        NeedsHotPlugConfiguration;
    /*0x055*/     UINT8        SwitchedIDEToNativeMode;
    /*0x056*/     UINT8        BIOSAllowsIDESwitchToNativeMode;
    /*0x057*/     UINT8        IoSpaceUnderNativeIdeControl;
    /*0x058*/     UINT8        OnDebugPath;
    /*0x059*/     UINT8        _PADDING1_[0x3];
    /*0x05C*/     struct _PCI_POWER_STATE PowerState;
    /*0x09C*/     union _PCI_HEADER_TYPE_DEPENDENT Dependent;
    /*0x0A0*/     UINT64       HackFlags;
    /*0x0A8*/     struct _PCI_FUNCTION_RESOURCES* Resources;
    /*0x0AC*/     struct _PCI_FDO_EXTENSION* BridgeFdoExtension;
    /*0x0B0*/     struct _PCI_PDO_EXTENSION* NextBridge;
    /*0x0B4*/     struct _PCI_PDO_EXTENSION* NextHashEntry;
    /*0x0B8*/     struct _PCI_LOCK Lock;
    /*0x0C0*/     struct _PCI_PMC PowerCapabilities;
    /*0x0C2*/     UINT8        TargetAgpCapabilityId;
    /*0x0C3*/     UINT8        _PADDING2_[0x1];
    /*0x0C4*/     UINT16       CommandEnables;
    /*0x0C6*/     UINT16       InitialCommand;
    }PCI_PDO_EXTENSION, *PPCI_PDO_EXTENSION;
    typedef struct _POP_THERMAL_ZONE {
    /*0x000*/     struct _LIST_ENTRY Link;
    /*0x008*/     UINT8        State;
    /*0x009*/     UINT8        Flags;
    /*0x00A*/     UINT8        Mode;
    /*0x00B*/     UINT8        PendingMode;
    /*0x00C*/     UINT8        ActivePoint;
    /*0x00D*/     UINT8        PendingActivePoint;
    /*0x00E*/     UINT8        _PADDING0_[0x2];
    /*0x010*/     LONG32       Throttle;
    /*0x014*/     UINT8        _PADDING1_[0x4];
    /*0x018*/     UINT64       LastTime;
    /*0x020*/     ULONG32      SampleRate;
    /*0x024*/     ULONG32      LastTemp;
    /*0x028*/     struct _KTIMER PassiveTimer;
    /*0x050*/     struct _KDPC PassiveDpc;
    /*0x070*/     struct _POP_ACTION_TRIGGER OverThrottled;
    /*0x07C*/     struct _IRP* Irp;
    /*0x080*/     struct _THERMAL_INFORMATION Info;
    /*0x0CC*/     UINT8        _PADDING2_[0x4];
    }POP_THERMAL_ZONE, *PPOP_THERMAL_ZONE;
    typedef struct _POP_TRIGGER_WAIT {
    /*0x000*/     struct _KEVENT Event;
    /*0x010*/     LONG32       Status;
    /*0x014*/     struct _LIST_ENTRY Link;
    /*0x01C*/     struct _POP_ACTION_TRIGGER* Trigger;
    }POP_TRIGGER_WAIT, *PPOP_TRIGGER_WAIT;
    typedef struct _PO_NOTIFY_ORDER_LEVEL {
    /*0x000*/     struct _KEVENT LevelReady;
    /*0x010*/     ULONG32      DeviceCount;
    /*0x014*/     ULONG32      ActiveCount;
    /*0x018*/     struct _LIST_ENTRY WaitSleep;
    /*0x020*/     struct _LIST_ENTRY ReadySleep;
    /*0x028*/     struct _LIST_ENTRY Pending;
    /*0x030*/     struct _LIST_ENTRY Complete;
    /*0x038*/     struct _LIST_ENTRY ReadyS0;
    /*0x040*/     struct _LIST_ENTRY WaitS0;
    }PO_NOTIFY_ORDER_LEVEL, *PPO_NOTIFY_ORDER_LEVEL;
    typedef struct _PROCESSOR_POWER_STATE {
    /*0x000*/     PVOID IdleFunction;
    /*0x004*/     ULONG32      Idle0KernelTimeLimit;
    /*0x008*/     ULONG32      Idle0LastTime;
    /*0x00C*/     VOID*        IdleHandlers;
    /*0x010*/     VOID*        IdleState;
    /*0x014*/     ULONG32      IdleHandlersCount;
    /*0x018*/     UINT64       LastCheck;
    /*0x020*/     struct _PROCESSOR_IDLE_TIMES IdleTimes;
    /*0x040*/     ULONG32      IdleTime1;
    /*0x044*/     ULONG32      PromotionCheck;
    /*0x048*/     ULONG32      IdleTime2;
    /*0x04C*/     UINT8        CurrentThrottle;
    /*0x04D*/     UINT8        ThermalThrottleLimit;
    /*0x04E*/     UINT8        CurrentThrottleIndex;
    /*0x04F*/     UINT8        ThermalThrottleIndex;
    /*0x050*/     ULONG32      LastKernelUserTime;
    /*0x054*/     ULONG32      LastIdleThreadKernelTime;
    /*0x058*/     ULONG32      PackageIdleStartTime;
    /*0x05C*/     ULONG32      PackageIdleTime;
    /*0x060*/     ULONG32      DebugCount;
    /*0x064*/     ULONG32      LastSysTime;
    /*0x068*/     UINT64       TotalIdleStateTime[3];
    /*0x080*/     ULONG32      TotalIdleTransitions[3];
    /*0x08C*/     UINT8        _PADDING0_[0x4];
    /*0x090*/     UINT64       PreviousC3StateTime;
    /*0x098*/     UINT8        KneeThrottleIndex;
    /*0x099*/     UINT8        ThrottleLimitIndex;
    /*0x09A*/     UINT8        PerfStatesCount;
    /*0x09B*/     UINT8        ProcessorMinThrottle;
    /*0x09C*/     UINT8        ProcessorMaxThrottle;
    /*0x09D*/     UINT8        EnableIdleAccounting;
    /*0x09E*/     UINT8        LastC3Percentage;
    /*0x09F*/     UINT8        LastAdjustedBusyPercentage;
    /*0x0A0*/     ULONG32      PromotionCount;
    /*0x0A4*/     ULONG32      DemotionCount;
    /*0x0A8*/     ULONG32      ErrorCount;
    /*0x0AC*/     ULONG32      RetryCount;
    /*0x0B0*/     ULONG32      Flags;
    /*0x0B4*/     UINT8        _PADDING1_[0x4];
    /*0x0B8*/     union _LARGE_INTEGER PerfCounterFrequency;
    /*0x0C0*/     ULONG32      PerfTickCount;
    /*0x0C4*/     UINT8        _PADDING2_[0x4];
    /*0x0C8*/     struct _KTIMER PerfTimer;
    /*0x0F0*/     struct _KDPC PerfDpc;
    /*0x110*/     struct _PROCESSOR_PERF_STATE* PerfStates;
    /*0x114*/     PVOID PerfSetThrottle;
    /*0x118*/     ULONG32      LastC3KernelUserTime;
    /*0x11C*/     ULONG32      LastPackageIdleTime;
    }PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE;
    typedef struct _SECURITY_CLIENT_CONTEXT {
    /*0x000*/     struct _SECURITY_QUALITY_OF_SERVICE SecurityQos;
    /*0x00C*/     VOID*        ClientToken;
    /*0x010*/     UINT8        DirectlyAccessClientToken;
    /*0x011*/     UINT8        DirectAccessEffectiveOnly;
    /*0x012*/     UINT8        ServerIsRemote;
    /*0x013*/     UINT8        _PADDING0_[0x1];
    /*0x014*/     struct _TOKEN_CONTROL ClientTokenControl;
    }SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
    typedef struct _SHARED_CACHE_MAP {
    /*0x000*/     INT16        NodeTypeCode;
    /*0x002*/     INT16        NodeByteSize;
    /*0x004*/     ULONG32      OpenCount;
    /*0x008*/     union _LARGE_INTEGER FileSize;
    /*0x010*/     struct _LIST_ENTRY BcbList;
    /*0x018*/     union _LARGE_INTEGER SectionSize;
    /*0x020*/     union _LARGE_INTEGER ValidDataLength;
    /*0x028*/     union _LARGE_INTEGER ValidDataGoal;
    /*0x030*/     struct _VACB* InitialVacbs[4];
    /*0x040*/     struct _VACB** Vacbs;
    /*0x044*/     struct _FILE_OBJECT* FileObject;
    /*0x048*/     struct _VACB* ActiveVacb;
    /*0x04C*/     VOID*        NeedToZero;
    /*0x050*/     ULONG32      ActivePage;
    /*0x054*/     ULONG32      NeedToZeroPage;
    /*0x058*/     ULONG32      ActiveVacbSpinLock;
    /*0x05C*/     ULONG32      VacbActiveCount;
    /*0x060*/     ULONG32      DirtyPages;
    /*0x064*/     struct _LIST_ENTRY SharedCacheMapLinks;
    /*0x06C*/     ULONG32      Flags;
    /*0x070*/     LONG32       Status;
    /*0x074*/     struct _MBCB* Mbcb;
    /*0x078*/     VOID*        Section;
    /*0x07C*/     struct _KEVENT* CreateEvent;
    /*0x080*/     struct _KEVENT* WaitOnActiveCount;
    /*0x084*/     ULONG32      PagesToWrite;
    /*0x088*/     INT64        BeyondLastFlush;
    /*0x090*/     struct _CACHE_MANAGER_CALLBACKS* Callbacks;
    /*0x094*/     VOID*        LazyWriteContext;
    /*0x098*/     struct _LIST_ENTRY PrivateList;
    /*0x0A0*/     VOID*        LogHandle;
    /*0x0A4*/     PVOID FlushToLsnRoutine;
    /*0x0A8*/     ULONG32      DirtyPageThreshold;
    /*0x0AC*/     ULONG32      LazyWritePassCount;
    /*0x0B0*/     struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent;
    /*0x0B4*/     struct _VACB* NeedToZeroVacb;
    /*0x0B8*/     ULONG32      BcbSpinLock;
    /*0x0BC*/     VOID*        Reserved;
    /*0x0C0*/     struct _KEVENT Event;
    /*0x0D0*/     struct _EX_PUSH_LOCK VacbPushLock;
    /*0x0D4*/     UINT8        _PADDING0_[0x4];
    /*0x0D8*/     struct _PRIVATE_CACHE_MAP PrivateCacheMap;
    }SHARED_CACHE_MAP, *PSHARED_CACHE_MAP;
    typedef struct _EJOB {
    /*0x000*/     struct _KEVENT Event;
    /*0x010*/     struct _LIST_ENTRY JobLinks;
    /*0x018*/     struct _LIST_ENTRY ProcessListHead;
    /*0x020*/     struct _ERESOURCE JobLock;
    /*0x058*/     union _LARGE_INTEGER TotalUserTime;
    /*0x060*/     union _LARGE_INTEGER TotalKernelTime;
    /*0x068*/     union _LARGE_INTEGER ThisPeriodTotalUserTime;
    /*0x070*/     union _LARGE_INTEGER ThisPeriodTotalKernelTime;
    /*0x078*/     ULONG32      TotalPageFaultCount;
    /*0x07C*/     ULONG32      TotalProcesses;
    /*0x080*/     ULONG32      ActiveProcesses;
    /*0x084*/     ULONG32      TotalTerminatedProcesses;
    /*0x088*/     union _LARGE_INTEGER PerProcessUserTimeLimit;
    /*0x090*/     union _LARGE_INTEGER PerJobUserTimeLimit;
    /*0x098*/     ULONG32      LimitFlags;
    /*0x09C*/     ULONG32      MinimumWorkingSetSize;
    /*0x0A0*/     ULONG32      MaximumWorkingSetSize;
    /*0x0A4*/     ULONG32      ActiveProcessLimit;
    /*0x0A8*/     ULONG32      Affinity;
    /*0x0AC*/     UINT8        PriorityClass;
    /*0x0AD*/     UINT8        _PADDING0_[0x3];
    /*0x0B0*/     ULONG32      UIRestrictionsClass;
    /*0x0B4*/     ULONG32      SecurityLimitFlags;
    /*0x0B8*/     VOID*        Token;
    /*0x0BC*/     struct _PS_JOB_TOKEN_FILTER* Filter;
    /*0x0C0*/     ULONG32      EndOfJobTimeAction;
    /*0x0C4*/     VOID*        CompletionPort;
    /*0x0C8*/     VOID*        CompletionKey;
    /*0x0CC*/     ULONG32      SessionId;
    /*0x0D0*/     ULONG32      SchedulingClass;
    /*0x0D4*/     UINT8        _PADDING1_[0x4];
    /*0x0D8*/     UINT64       ReadOperationCount;
    /*0x0E0*/     UINT64       WriteOperationCount;
    /*0x0E8*/     UINT64       OtherOperationCount;
    /*0x0F0*/     UINT64       ReadTransferCount;
    /*0x0F8*/     UINT64       WriteTransferCount;
    /*0x100*/     UINT64       OtherTransferCount;
    /*0x108*/     struct _IO_COUNTERS IoInfo;
    /*0x138*/     ULONG32      ProcessMemoryLimit;
    /*0x13C*/     ULONG32      JobMemoryLimit;
    /*0x140*/     ULONG32      PeakProcessMemoryUsed;
    /*0x144*/     ULONG32      PeakJobMemoryUsed;
    /*0x148*/     ULONG32      CurrentJobMemoryUsed;
    /*0x14C*/     struct _FAST_MUTEX MemoryLimitsLock;
    /*0x16C*/     struct _LIST_ENTRY JobSetLinks;
    /*0x174*/     ULONG32      MemberLevel;
    /*0x178*/     ULONG32      JobFlags;
    /*0x17C*/     UINT8        _PADDING2_[0x4];
    }EJOB, *PEJOB;
    typedef struct _EPROCESS {
    /*0x000*/     struct _KPROCESS Pcb;
    /*0x06C*/     struct _EX_PUSH_LOCK ProcessLock;
    /*0x070*/     union _LARGE_INTEGER CreateTime;
    /*0x078*/     union _LARGE_INTEGER ExitTime;
    /*0x080*/     struct _EX_RUNDOWN_REF RundownProtect;
    /*0x084*/     VOID*        UniqueProcessId;
    /*0x088*/     struct _LIST_ENTRY ActiveProcessLinks;
    /*0x090*/     ULONG32      QuotaUsage[3];
    /*0x09C*/     ULONG32      QuotaPeak[3];
    /*0x0A8*/     ULONG32      CommitCharge;
    /*0x0AC*/     ULONG32      PeakVirtualSize;
    /*0x0B0*/     ULONG32      VirtualSize;
    /*0x0B4*/     struct _LIST_ENTRY SessionProcessLinks;
    /*0x0BC*/     VOID*        DebugPort;
    /*0x0C0*/     VOID*        ExceptionPort;
    /*0x0C4*/     struct _HANDLE_TABLE* ObjectTable;
    /*0x0C8*/     struct _EX_FAST_REF Token;
    /*0x0CC*/     struct _FAST_MUTEX WorkingSetLock;
    /*0x0EC*/     ULONG32      WorkingSetPage;
    /*0x0F0*/     struct _FAST_MUTEX AddressCreationLock;
    /*0x110*/     ULONG32      HyperSpaceLock;
    /*0x114*/     struct _ETHREAD* ForkInProgress;
    /*0x118*/     ULONG32      HardwareTrigger;
    /*0x11C*/     VOID*        VadRoot;
    /*0x120*/     VOID*        VadHint;
    /*0x124*/     VOID*        CloneRoot;
    /*0x128*/     ULONG32      NumberOfPrivatePages;
    /*0x12C*/     ULONG32      NumberOfLockedPages;
    /*0x130*/     VOID*        Win32Process;
    /*0x134*/     struct _EJOB* Job;
    /*0x138*/     VOID*        SectionObject;
    /*0x13C*/     VOID*        SectionBaseAddress;
    /*0x140*/     struct _EPROCESS_QUOTA_BLOCK* QuotaBlock;
    /*0x144*/     struct _PAGEFAULT_HISTORY* WorkingSetWatch;
    /*0x148*/     VOID*        Win32WindowStation;
    /*0x14C*/     VOID*        InheritedFromUniqueProcessId;
    /*0x150*/     VOID*        LdtInformation;
    /*0x154*/     VOID*        VadFreeHint;
    /*0x158*/     VOID*        VdmObjects;
    /*0x15C*/     VOID*        DeviceMap;
    /*0x160*/     struct _LIST_ENTRY PhysicalVadList;
                  union
                  {
    /*0x168*/         struct _HARDWARE_PTE PageDirectoryPte;
    /*0x168*/         UINT64       Filler;
                  };
    /*0x170*/     VOID*        Session;
    /*0x174*/     UINT8        ImageFileName[16];
    /*0x184*/     struct _LIST_ENTRY JobLinks;
    /*0x18C*/     VOID*        LockedPagesList;
    /*0x190*/     struct _LIST_ENTRY ThreadListHead;
    /*0x198*/     VOID*        SecurityPort;
    /*0x19C*/     VOID*        PaeTop;
    /*0x1A0*/     ULONG32      ActiveThreads;
    /*0x1A4*/     ULONG32      GrantedAccess;
    /*0x1A8*/     ULONG32      DefaultHardErrorProcessing;
    /*0x1AC*/     LONG32       LastThreadExitStatus;
    /*0x1B0*/     struct _PEB* Peb;
    /*0x1B4*/     struct _EX_FAST_REF PrefetchTrace;
    /*0x1B8*/     union _LARGE_INTEGER ReadOperationCount;
    /*0x1C0*/     union _LARGE_INTEGER WriteOperationCount;
    /*0x1C8*/     union _LARGE_INTEGER OtherOperationCount;
    /*0x1D0*/     union _LARGE_INTEGER ReadTransferCount;
    /*0x1D8*/     union _LARGE_INTEGER WriteTransferCount;
    /*0x1E0*/     union _LARGE_INTEGER OtherTransferCount;
    /*0x1E8*/     ULONG32      CommitChargeLimit;
    /*0x1EC*/     ULONG32      CommitChargePeak;
    /*0x1F0*/     VOID*        AweInfo;
    /*0x1F4*/     struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo;
    /*0x1F8*/     struct _MMSUPPORT Vm;
    /*0x238*/     ULONG32      LastFaultCount;
    /*0x23C*/     ULONG32      ModifiedPageCount;
    /*0x240*/     ULONG32      NumberOfVads;
    /*0x244*/     ULONG32      JobStatus;
                  union
                  {
    /*0x248*/         ULONG32      Flags;
                      struct
                      {
    /*0x248*/             ULONG32      CreateReported : 1;
    /*0x248*/             ULONG32      NoDebugInherit : 1;
    /*0x248*/             ULONG32      ProcessExiting : 1;
    /*0x248*/             ULONG32      ProcessDelete : 1;
    /*0x248*/             ULONG32      Wow64SplitPages : 1;
    /*0x248*/             ULONG32      VmDeleted : 1;
    /*0x248*/             ULONG32      OutswapEnabled : 1;
    /*0x248*/             ULONG32      Outswapped : 1;
    /*0x248*/             ULONG32      ForkFailed : 1;
    /*0x248*/             ULONG32      HasPhysicalVad : 1;
    /*0x248*/             ULONG32      AddressSpaceInitialized : 2;
    /*0x248*/             ULONG32      SetTimerResolution : 1;
    /*0x248*/             ULONG32      BreakOnTermination : 1;
    /*0x248*/             ULONG32      SessionCreationUnderway : 1;
    /*0x248*/             ULONG32      WriteWatch : 1;
    /*0x248*/             ULONG32      ProcessInSession : 1;
    /*0x248*/             ULONG32      OverrideAddressSpace : 1;
    /*0x248*/             ULONG32      HasAddressSpace : 1;
    /*0x248*/             ULONG32      LaunchPrefetched : 1;
    /*0x248*/             ULONG32      InjectInpageErrors : 1;
    /*0x248*/             ULONG32      VmTopDown : 1;
    /*0x248*/             ULONG32      Unused3 : 1;
    /*0x248*/             ULONG32      Unused4 : 1;
    /*0x248*/             ULONG32      VdmAllowed : 1;
    /*0x248*/             ULONG32      Unused : 5;
    /*0x248*/             ULONG32      Unused1 : 1;
    /*0x248*/             ULONG32      Unused2 : 1;
                      };
                  };
    /*0x24C*/     LONG32       ExitStatus;
    /*0x250*/     UINT16       NextPageColor;
                  union
                  {
                      struct
                      {
    /*0x252*/             UINT8        SubSystemMinorVersion;
    /*0x253*/             UINT8        SubSystemMajorVersion;
                      };
    /*0x252*/         UINT16       SubSystemVersion;
                  };
    /*0x254*/     UINT8        PriorityClass;
    /*0x255*/     UINT8        WorkingSetAcquiredUnsafe;
    /*0x256*/     UINT8        _PADDING0_[0x2];
    /*0x258*/     ULONG32      Cookie;
    /*0x25C*/     UINT8        _PADDING1_[0x4];
    }EPROCESS, *PEPROCESS;
    typedef struct _ETHREAD {
    /*0x000*/     struct _KTHREAD Tcb;
                  union
                  {
    /*0x1C0*/         union _LARGE_INTEGER CreateTime;
                      struct
                      {
    /*0x1C0*/             UINT32       NestedFaultCount : 2;
    /*0x1C0*/             UINT32       ApcNeeded : 1;
                      };
                  };
                  union
                  {
    /*0x1C8*/         union _LARGE_INTEGER ExitTime;
    /*0x1C8*/         struct _LIST_ENTRY LpcReplyChain;
    /*0x1C8*/         struct _LIST_ENTRY KeyedWaitChain;
                  };
                  union
                  {
    /*0x1D0*/         LONG32       ExitStatus;
    /*0x1D0*/         VOID*        OfsChain;
                  };
    /*0x1D4*/     struct _LIST_ENTRY PostBlockList;
                  union
                  {
    /*0x1DC*/         struct _TERMINATION_PORT* TerminationPort;
    /*0x1DC*/         struct _ETHREAD* ReaperLink;
    /*0x1DC*/         VOID*        KeyedWaitValue;
                  };
    /*0x1E0*/     ULONG32      ActiveTimerListLock;
    /*0x1E4*/     struct _LIST_ENTRY ActiveTimerListHead;
    /*0x1EC*/     struct _CLIENT_ID Cid;
                  union
                  {
    /*0x1F4*/         struct _KSEMAPHORE LpcReplySemaphore;
    /*0x1F4*/         struct _KSEMAPHORE KeyedWaitSemaphore;
                  };
                  union
                  {
    /*0x208*/         VOID*        LpcReplyMessage;
    /*0x208*/         VOID*        LpcWaitingOnPort;
                  };
    /*0x20C*/     struct _PS_IMPERSONATION_INFORMATION* ImpersonationInfo;
    /*0x210*/     struct _LIST_ENTRY IrpList;
    /*0x218*/     ULONG32      TopLevelIrp;
    /*0x21C*/     struct _DEVICE_OBJECT* DeviceToVerify;
    /*0x220*/     struct _EPROCESS* ThreadsProcess;
    /*0x224*/     VOID*        StartAddress;
                  union
                  {
    /*0x228*/         VOID*        Win32StartAddress;
    /*0x228*/         ULONG32      LpcReceivedMessageId;
                  };
    /*0x22C*/     struct _LIST_ENTRY ThreadListEntry;
    /*0x234*/     struct _EX_RUNDOWN_REF RundownProtect;
    /*0x238*/     struct _EX_PUSH_LOCK ThreadLock;
    /*0x23C*/     ULONG32      LpcReplyMessageId;
    /*0x240*/     ULONG32      ReadClusterSize;
    /*0x244*/     ULONG32      GrantedAccess;
                  union
                  {
    /*0x248*/         ULONG32      CrossThreadFlags;
                      struct
                      {
    /*0x248*/             ULONG32      Terminated : 1;
    /*0x248*/             ULONG32      DeadThread : 1;
    /*0x248*/             ULONG32      HideFromDebugger : 1;
    /*0x248*/             ULONG32      ActiveImpersonationInfo : 1;
    /*0x248*/             ULONG32      SystemThread : 1;
    /*0x248*/             ULONG32      HardErrorsAreDisabled : 1;
    /*0x248*/             ULONG32      BreakOnTermination : 1;
    /*0x248*/             ULONG32      SkipCreationMsg : 1;
    /*0x248*/             ULONG32      SkipTerminationMsg : 1;
                      };
                  };
                  union
                  {
    /*0x24C*/         ULONG32      SameThreadPassiveFlags;
                      struct
                      {
    /*0x24C*/             ULONG32      ActiveExWorker : 1;
    /*0x24C*/             ULONG32      ExWorkerCanWaitUser : 1;
    /*0x24C*/             ULONG32      MemoryMaker : 1;
                      };
                  };
                  union
                  {
    /*0x250*/         ULONG32      SameThreadApcFlags;
                      struct
                      {
    /*0x250*/             UINT8        LpcReceivedMsgIdValid : 1;
    /*0x250*/             UINT8        LpcExitThreadCalled : 1;
    /*0x250*/             UINT8        AddressSpaceOwner : 1;
                      };
                  };
    /*0x254*/     UINT8        ForwardClusterOnly;
    /*0x255*/     UINT8        DisablePageFaultClustering;
    /*0x256*/     UINT8        _PADDING0_[0x2];
    }ETHREAD, *PETHREAD;
    typedef struct _KPRCB {
    /*0x000*/     UINT16       MinorVersion;
    /*0x002*/     UINT16       MajorVersion;
    /*0x004*/     struct _KTHREAD* CurrentThread;
    /*0x008*/     struct _KTHREAD* NextThread;
    /*0x00C*/     struct _KTHREAD* IdleThread;
    /*0x010*/     CHAR         Number;
    /*0x011*/     CHAR         Reserved;
    /*0x012*/     UINT16       BuildType;
    /*0x014*/     ULONG32      SetMember;
    /*0x018*/     CHAR         CpuType;
    /*0x019*/     CHAR         CpuID;
    /*0x01A*/     UINT16       CpuStep;
    /*0x01C*/     struct _KPROCESSOR_STATE ProcessorState;
    /*0x33C*/     ULONG32      KernelReserved[16];
    /*0x37C*/     ULONG32      HalReserved[16];
    /*0x3BC*/     UINT8        PrcbPad0[92];
    /*0x418*/     struct _KSPIN_LOCK_QUEUE LockQueue[16];
    /*0x498*/     UINT8        PrcbPad1[8];
    /*0x4A0*/     struct _KTHREAD* NpxThread;
    /*0x4A4*/     ULONG32      InterruptCount;
    /*0x4A8*/     ULONG32      KernelTime;
    /*0x4AC*/     ULONG32      UserTime;
    /*0x4B0*/     ULONG32      DpcTime;
    /*0x4B4*/     ULONG32      DebugDpcTime;
    /*0x4B8*/     ULONG32      InterruptTime;
    /*0x4BC*/     ULONG32      AdjustDpcThreshold;
    /*0x4C0*/     ULONG32      PageColor;
    /*0x4C4*/     ULONG32      SkipTick;
    /*0x4C8*/     UINT8        MultiThreadSetBusy;
    /*0x4C9*/     UINT8        Spare2[3];
    /*0x4CC*/     struct _KNODE* ParentNode;
    /*0x4D0*/     ULONG32      MultiThreadProcessorSet;
    /*0x4D4*/     struct _KPRCB* MultiThreadSetMaster;
    /*0x4D8*/     ULONG32      ThreadStartCount[2];
    /*0x4E0*/     ULONG32      CcFastReadNoWait;
    /*0x4E4*/     ULONG32      CcFastReadWait;
    /*0x4E8*/     ULONG32      CcFastReadNotPossible;
    /*0x4EC*/     ULONG32      CcCopyReadNoWait;
    /*0x4F0*/     ULONG32      CcCopyReadWait;
    /*0x4F4*/     ULONG32      CcCopyReadNoWaitMiss;
    /*0x4F8*/     ULONG32      KeAlignmentFixupCount;
    /*0x4FC*/     ULONG32      KeContextSwitches;
    /*0x500*/     ULONG32      KeDcacheFlushCount;
    /*0x504*/     ULONG32      KeExceptionDispatchCount;
    /*0x508*/     ULONG32      KeFirstLevelTbFills;
    /*0x50C*/     ULONG32      KeFloatingEmulationCount;
    /*0x510*/     ULONG32      KeIcacheFlushCount;
    /*0x514*/     ULONG32      KeSecondLevelTbFills;
    /*0x518*/     ULONG32      KeSystemCalls;
    /*0x51C*/     ULONG32      SpareCounter0[1];
    /*0x520*/     struct _PP_LOOKASIDE_LIST PPLookasideList[16];
    /*0x5A0*/     struct _PP_LOOKASIDE_LIST PPNPagedLookasideList[32];
    /*0x6A0*/     struct _PP_LOOKASIDE_LIST PPPagedLookasideList[32];
    /*0x7A0*/     ULONG32      PacketBarrier;
    /*0x7A4*/     ULONG32      ReverseStall;
    /*0x7A8*/     VOID*        IpiFrame;
    /*0x7AC*/     UINT8        PrcbPad2[52];
    /*0x7E0*/     VOID*        CurrentPacket[3];
    /*0x7EC*/     ULONG32      TargetSet;
    /*0x7F0*/     PVOID WorkerRoutine;
    /*0x7F4*/     ULONG32      IpiFrozen;
    /*0x7F8*/     UINT8        PrcbPad3[40];
    /*0x820*/     ULONG32      RequestSummary;
    /*0x824*/     struct _KPRCB* SignalDone;
    /*0x828*/     UINT8        PrcbPad4[56];
    /*0x860*/     struct _LIST_ENTRY DpcListHead;
    /*0x868*/     VOID*        DpcStack;
    /*0x86C*/     ULONG32      DpcCount;
    /*0x870*/     ULONG32      DpcQueueDepth;
    /*0x874*/     ULONG32      DpcRoutineActive;
    /*0x878*/     ULONG32      DpcInterruptRequested;
    /*0x87C*/     ULONG32      DpcLastCount;
    /*0x880*/     ULONG32      DpcRequestRate;
    /*0x884*/     ULONG32      MaximumDpcQueueDepth;
    /*0x888*/     ULONG32      MinimumDpcRate;
    /*0x88C*/     ULONG32      QuantumEnd;
    /*0x890*/     UINT8        PrcbPad5[16];
    /*0x8A0*/     ULONG32      DpcLock;
    /*0x8A4*/     UINT8        PrcbPad6[28];
    /*0x8C0*/     struct _KDPC CallDpc;
    /*0x8E0*/     VOID*        ChainedInterruptList;
    /*0x8E4*/     LONG32       LookasideIrpFloat;
    /*0x8E8*/     ULONG32      SpareFields0[6];
    /*0x900*/     UINT8        VendorString[13];
    /*0x90D*/     UINT8        InitialApicId;
    /*0x90E*/     UINT8        LogicalProcessorsPerPhysicalProcessor;
    /*0x90F*/     UINT8        _PADDING0_[0x1];
    /*0x910*/     ULONG32      MHz;
    /*0x914*/     ULONG32      FeatureBits;
    /*0x918*/     union _LARGE_INTEGER UpdateSignature;
    /*0x920*/     struct _FX_SAVE_AREA NpxSaveArea;
    /*0xB30*/     struct _PROCESSOR_POWER_STATE PowerState;
    }KPRCB, *PKPRCB;
    typedef struct _LPCP_PORT_OBJECT {
    /*0x000*/     struct _LPCP_PORT_OBJECT* ConnectionPort;
    /*0x004*/     struct _LPCP_PORT_OBJECT* ConnectedPort;
    /*0x008*/     struct _LPCP_PORT_QUEUE MsgQueue;
    /*0x018*/     struct _CLIENT_ID Creator;
    /*0x020*/     VOID*        ClientSectionBase;
    /*0x024*/     VOID*        ServerSectionBase;
    /*0x028*/     VOID*        PortContext;
    /*0x02C*/     struct _ETHREAD* ClientThread;
    /*0x030*/     struct _SECURITY_QUALITY_OF_SERVICE SecurityQos;
    /*0x03C*/     struct _SECURITY_CLIENT_CONTEXT StaticSecurity;
    /*0x078*/     struct _LIST_ENTRY LpcReplyChainHead;
    /*0x080*/     struct _LIST_ENTRY LpcDataInfoChainHead;
                  union
                  {
    /*0x088*/         struct _EPROCESS* ServerProcess;
    /*0x088*/         struct _EPROCESS* MappingProcess;
                  };
    /*0x08C*/     UINT16       MaxMessageLength;
    /*0x08E*/     UINT16       MaxConnectionInfoLength;
    /*0x090*/     ULONG32      Flags;
    /*0x094*/     struct _KEVENT WaitEvent;
    }LPCP_PORT_OBJECT, *PLPCP_PORT_OBJECT;
    typedef struct _MMSESSION {
    /*0x000*/     struct _FAST_MUTEX SystemSpaceViewLock;
    /*0x020*/     struct _FAST_MUTEX* SystemSpaceViewLockPointer;
    /*0x024*/     CHAR*        SystemSpaceViewStart;
    /*0x028*/     struct _MMVIEW* SystemSpaceViewTable;
    /*0x02C*/     ULONG32      SystemSpaceHashSize;
    /*0x030*/     ULONG32      SystemSpaceHashEntries;
    /*0x034*/     ULONG32      SystemSpaceHashKey;
    /*0x038*/     struct _RTL_BITMAP* SystemSpaceBitMap;
    }MMSESSION, *PMMSESSION;
    typedef struct _PAGED_LOOKASIDE_LIST {
    /*0x000*/     struct _GENERAL_LOOKASIDE L;
    /*0x080*/     struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete;
    /*0x0A0*/     UINT8        _PADDING0_[0x60];
    }PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
    typedef struct _PNP_DEVICE_EVENT_LIST {
    /*0x000*/     LONG32       Status;
    /*0x004*/     struct _KMUTANT EventQueueMutex;
    /*0x024*/     struct _FAST_MUTEX Lock;
    /*0x044*/     struct _LIST_ENTRY List;
    }PNP_DEVICE_EVENT_LIST, *PPNP_DEVICE_EVENT_LIST;
    typedef struct _PO_DEVICE_NOTIFY_ORDER {
    /*0x000*/     ULONG32      DevNodeSequence;
    /*0x004*/     struct _DEVICE_OBJECT** WarmEjectPdoPointer;
    /*0x008*/     struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8];
    }PO_DEVICE_NOTIFY_ORDER, *PPO_DEVICE_NOTIFY_ORDER;
    typedef struct _WMI_LOGGER_CONTEXT {
    /*0x000*/     ULONG32      BufferSpinLock;
    /*0x004*/     UINT8        _PADDING0_[0x4];
    /*0x008*/     union _LARGE_INTEGER StartTime;
    /*0x010*/     VOID*        LogFileHandle;
    /*0x014*/     struct _KSEMAPHORE LoggerSemaphore;
    /*0x028*/     struct _ETHREAD* LoggerThread;
    /*0x02C*/     struct _KEVENT LoggerEvent;
    /*0x03C*/     struct _KEVENT FlushEvent;
    /*0x04C*/     LONG32       LoggerStatus;
    /*0x050*/     ULONG32      LoggerId;
    /*0x054*/     LONG32       BuffersAvailable;
    /*0x058*/     ULONG32      UsePerfClock;
    /*0x05C*/     ULONG32      WriteFailureLimit;
    /*0x060*/     ULONG32      BuffersDirty;
    /*0x064*/     ULONG32      BuffersInUse;
    /*0x068*/     ULONG32      SwitchingInProgress;
    /*0x06C*/     UINT8        _PADDING1_[0x4];
    /*0x070*/     union _SLIST_HEADER FreeList;
    /*0x078*/     union _SLIST_HEADER FlushList;
    /*0x080*/     union _SLIST_HEADER GlobalList;
    /*0x088*/     union _SLIST_HEADER* ProcessorBuffers;
    /*0x08C*/     struct _UNICODE_STRING LoggerName;
    /*0x094*/     struct _UNICODE_STRING LogFileName;
    /*0x09C*/     struct _UNICODE_STRING LogFilePattern;
    /*0x0A4*/     struct _UNICODE_STRING NewLogFileName;
    /*0x0AC*/     UINT8*       EndPageMarker;
    /*0x0B0*/     LONG32       CollectionOn;
    /*0x0B4*/     ULONG32      KernelTraceOn;
    /*0x0B8*/     LONG32       PerfLogInTransition;
    /*0x0BC*/     ULONG32      RequestFlag;
    /*0x0C0*/     ULONG32      EnableFlags;
    /*0x0C4*/     ULONG32      MaximumFileSize;
                  union
                  {
    /*0x0C8*/         ULONG32      LoggerMode;
    /*0x0C8*/         struct _WMI_LOGGER_MODE LoggerModeFlags;
                  };
    /*0x0CC*/     ULONG32      LastFlushedBuffer;
    /*0x0D0*/     ULONG32      RefCount;
    /*0x0D4*/     ULONG32      FlushTimer;
    /*0x0D8*/     union _LARGE_INTEGER FirstBufferOffset;
    /*0x0E0*/     union _LARGE_INTEGER ByteOffset;
    /*0x0E8*/     union _LARGE_INTEGER BufferAgeLimit;
    /*0x0F0*/     ULONG32      MaximumBuffers;
    /*0x0F4*/     ULONG32      MinimumBuffers;
    /*0x0F8*/     ULONG32      EventsLost;
    /*0x0FC*/     ULONG32      BuffersWritten;
    /*0x100*/     ULONG32      LogBuffersLost;
    /*0x104*/     ULONG32      RealTimeBuffersLost;
    /*0x108*/     ULONG32      BufferSize;
    /*0x10C*/     LONG32       NumberOfBuffers;
    /*0x110*/     LONG32*      SequencePtr;
    /*0x114*/     struct _GUID InstanceGuid;
    /*0x124*/     VOID*        LoggerHeader;
    /*0x128*/     PVOID GetCpuClock;
    /*0x12C*/     struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext;
    /*0x168*/     VOID*        LoggerExtension;
    /*0x16C*/     LONG32       ReleaseQueue;
    /*0x170*/     struct _TRACE_ENABLE_FLAG_EXTENSION EnableFlagExtension;
    /*0x174*/     ULONG32      LocalSequence;
    /*0x178*/     ULONG32      MaximumIrql;
    /*0x17C*/     ULONG32*     EnableFlagArray;
    /*0x180*/     struct _KMUTANT LoggerMutex;
    /*0x1A0*/     LONG32       MutexCount;
    /*0x1A4*/     ULONG32      FileCounter;
    /*0x1A8*/     PVOID BufferCallback;
    /*0x1AC*/     VOID*        CallbackContext;
    /*0x1B0*/     enum _POOL_TYPE PoolType;
    /*0x1B4*/     UINT8        _PADDING2_[0x4];
    /*0x1B8*/     union _LARGE_INTEGER ReferenceSystemTime;
    /*0x1C0*/     union _LARGE_INTEGER ReferenceTimeStamp;
    }WMI_LOGGER_CONTEXT, *PWMI_LOGGER_CONTEXT;
    typedef struct _KPCR {
    /*0x000*/     struct _NT_TIB NtTib;
    /*0x01C*/     struct _KPCR* SelfPcr;
    /*0x020*/     struct _KPRCB* Prcb;
    /*0x024*/     UINT8        Irql;
    /*0x025*/     UINT8        _PADDING0_[0x3];
    /*0x028*/     ULONG32      IRR;
    /*0x02C*/     ULONG32      IrrActive;
    /*0x030*/     ULONG32      IDR;
    /*0x034*/     VOID*        KdVersionBlock;
    /*0x038*/     struct _KIDTENTRY* IDT;
    /*0x03C*/     struct _KGDTENTRY* GDT;
    /*0x040*/     struct _KTSS* TSS;
    /*0x044*/     UINT16       MajorVersion;
    /*0x046*/     UINT16       MinorVersion;
    /*0x048*/     ULONG32      SetMember;
    /*0x04C*/     ULONG32      StallScaleFactor;
    /*0x050*/     UINT8        DebugActive;
    /*0x051*/     UINT8        Number;
    /*0x052*/     UINT8        Spare0;
    /*0x053*/     UINT8        SecondLevelCacheAssociativity;
    /*0x054*/     ULONG32      VdmAlert;
    /*0x058*/     ULONG32      KernelReserved[14];
    /*0x090*/     ULONG32      SecondLevelCacheSize;
    /*0x094*/     ULONG32      HalReserved[16];
    /*0x0D4*/     ULONG32      InterruptMode;
    /*0x0D8*/     UINT8        Spare1;
    /*0x0D9*/     UINT8        _PADDING1_[0x3];
    /*0x0DC*/     ULONG32      KernelReserved2[17];
    /*0x120*/     struct _KPRCB PrcbData;
    }KPCR, *PKPCR;
    typedef struct _MM_SESSION_SPACE {
    /*0x000*/      ULONG32      ReferenceCount;
                   union
                   {
    /*0x004*/          ULONG32      LongFlags;
    /*0x004*/          struct _MM_SESSION_SPACE_FLAGS Flags;
                   }u;
    /*0x008*/      ULONG32      SessionId;
    /*0x00C*/      ULONG32      SessionPageDirectoryIndex;
    /*0x010*/      struct _MM_SESSION_SPACE* GlobalVirtualAddress;
    /*0x014*/      struct _LIST_ENTRY ProcessList;
    /*0x01C*/      ULONG32      NonPagedPoolBytes;
    /*0x020*/      ULONG32      PagedPoolBytes;
    /*0x024*/      ULONG32      NonPagedPoolAllocations;
    /*0x028*/      ULONG32      PagedPoolAllocations;
    /*0x02C*/      ULONG32      NonPagablePages;
    /*0x030*/      ULONG32      CommittedPages;
    /*0x034*/      UINT8        _PADDING0_[0x4];
    /*0x038*/      union _LARGE_INTEGER LastProcessSwappedOutTime;
    /*0x040*/      struct _MMPTE* PageTables;
    /*0x044*/      struct _FAST_MUTEX PagedPoolMutex;
    /*0x064*/      VOID*        PagedPoolStart;
    /*0x068*/      VOID*        PagedPoolEnd;
    /*0x06C*/      struct _MMPTE* PagedPoolBasePde;
    /*0x070*/      struct _MM_PAGED_POOL_INFO PagedPoolInfo;
    /*0x094*/      ULONG32      Color;
    /*0x098*/      ULONG32      ProcessOutSwapCount;
    /*0x09C*/      struct _LIST_ENTRY ImageList;
    /*0x0A4*/      struct _MMPTE* GlobalPteEntry;
    /*0x0A8*/      ULONG32      CopyOnWriteCount;
    /*0x0AC*/      ULONG32      SessionPoolAllocationFailures[4];
    /*0x0BC*/      ULONG32      AttachCount;
    /*0x0C0*/      struct _KEVENT AttachEvent;
    /*0x0D0*/      struct _EPROCESS* LastProcess;
    /*0x0D4*/      UINT8        _PADDING1_[0x4];
    /*0x0D8*/      struct _MMSUPPORT Vm;
    /*0x118*/      struct _MMWSLE* Wsle;
    /*0x11C*/      struct _ERESOURCE WsLock;
    /*0x154*/      struct _LIST_ENTRY WsListEntry;
    /*0x15C*/      struct _MMSESSION Session;
    /*0x198*/      struct _DRIVER_OBJECT Win32KDriverObject;
    /*0x240*/      struct _ETHREAD* WorkingSetLockOwner;
    /*0x244*/      struct _POOL_DESCRIPTOR PagedPool;
    /*0x126C*/     LONG32       ProcessReferenceToSession;
    /*0x1270*/     ULONG32      LocaleId;
    /*0x1274*/     UINT8        _PADDING2_[0x4];
    }MM_SESSION_SPACE, *PMM_SESSION_SPACE;
    typedef struct _POP_DEVICE_SYS_STATE {
    /*0x000*/     UINT8        IrpMinor;
    /*0x001*/     UINT8        _PADDING0_[0x3];
    /*0x004*/     enum _SYSTEM_POWER_STATE SystemState;
    /*0x008*/     struct _KEVENT Event;
    /*0x018*/     ULONG32      SpinLock;
    /*0x01C*/     struct _KTHREAD* Thread;
    /*0x020*/     UINT8        GetNewDeviceList;
    /*0x021*/     UINT8        _PADDING1_[0x3];
    /*0x024*/     struct _PO_DEVICE_NOTIFY_ORDER Order;
    /*0x26C*/     LONG32       Status;
    /*0x270*/     struct _DEVICE_OBJECT* FailedDevice;
    /*0x274*/     UINT8        Waking;
    /*0x275*/     UINT8        Cancelled;
    /*0x276*/     UINT8        IgnoreErrors;
    /*0x277*/     UINT8        IgnoreNotImplemented;
    /*0x278*/     UINT8        WaitAny;
    /*0x279*/     UINT8        WaitAll;
    /*0x27A*/     UINT8        _PADDING2_[0x2];
    /*0x27C*/     struct _LIST_ENTRY PresentIrpQueue;
    /*0x284*/     struct _POP_DEVICE_POWER_IRP Head;
    /*0x2B0*/     struct _POP_DEVICE_POWER_IRP PowerIrpState[20];
    }POP_DEVICE_SYS_STATE, *PPOP_DEVICE_SYS_STATE;
}
    //
    //http://msdn.moonsols.com/winxpsp3_x86/
    //http://processhacker.sourceforge.net/doc
    //

0 0