xpsp3,NT kernel structures(xp_sp3)

NT kernel structures(xp_sp3)
The following source code can be very useful when you are debuging kernel & user objects within either ring0 or ring3 under Windows XP sp3.
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::TEB * GetTEB(){ __asm mov eax, fs:[0x18] /* or return (void*)__readfsdword( 0x18 ); */}
For any issues you concern, please feel free to send email to [email protected]
#include
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 [email protected], refer to http://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 [email protected], refer to http://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 _disibledevent=>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 [email protected], refer to http://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 [email protected], refer to http://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 _disibledevent=>
Tags: 

延伸阅读

最新评论

发表评论