/* Header autogenerated by Brandon Falk's PDB Dumper * * Invocation: C:\projects\pdbdump_2\pdbdump.exe L:\symbolarchive\win8_spB_x64\usbxhci.pdb\269DD9341D0C4283860A9855653305282\usbxhci.pdb */ struct LIST_ENTRY64 { unsigned long long Flink; /* +0x0000 */ unsigned long long Blink; /* +0x0008 */ }; struct LIST_ENTRY32 { unsigned long Flink; /* +0x0000 */ unsigned long Blink; /* +0x0004 */ }; struct _LIST_ENTRY { unsigned char Flink[8]; /* +0x0000 20 10 00 00 */ unsigned char Blink[8]; /* +0x0008 20 10 00 00 */ }; struct _SINGLE_LIST_ENTRY { unsigned char Next[8]; /* +0x0000 32 10 00 00 */ }; struct _UNICODE_STRING { unsigned short Length; /* +0x0000 */ unsigned short MaximumLength; /* +0x0002 */ unsigned short *Buffer; /* +0x0008 */ }; struct _STRING { unsigned short Length; /* +0x0000 */ unsigned short MaximumLength; /* +0x0002 */ char *Buffer; /* +0x0008 */ }; /* struct { unsigned long LowPart; +0x0000 long HighPart; +0x0004 }; */ struct _LARGE_INTEGER { unsigned long LowPart; /* +0x0000 */ long HighPart; /* +0x0004 */ /* unsigned char u[0]; +0x0000 44 10 00 00 */ long long QuadPart; /* +0x0000 */ }; /* struct { unsigned long LowPart; +0x0000 unsigned long HighPart; +0x0004 }; */ struct _ULARGE_INTEGER { unsigned long LowPart; /* +0x0000 */ unsigned long HighPart; /* +0x0004 */ /* unsigned char u[0]; +0x0000 49 10 00 00 */ unsigned long long QuadPart; /* +0x0000 */ }; struct _RTL_BITMAP { unsigned long SizeOfBitMap; /* +0x0000 */ unsigned long *Buffer; /* +0x0008 */ }; struct _FAST_MUTEX { unsigned char Count[8]; /* +0x0000 1b 10 00 00 */ void *Owner; /* +0x0008 */ unsigned long Contention; /* +0x0010 */ unsigned char Event[24]; /* +0x0018 64 10 00 00 */ unsigned long OldIrql; /* +0x0030 */ }; enum _EVENT_TYPE { NotificationEvent = 0, SynchronizationEvent = 1 }; struct _KEVENT { unsigned char Header[24]; /* +0x0000 6f 10 00 00 */ }; struct _LOOKASIDE_LIST_EX { unsigned char L[96]; /* +0x0000 74 10 00 00 */ }; struct _SLIST_ENTRY { unsigned char Next[16]; /* +0x0000 78 10 00 00 */ }; /* struct { /* unsigned char Depth[0]; +0x0000 81 10 00 00 /* unsigned char Sequence[0]; +0x0000 82 10 00 00 unsigned char NextEntry[8]; +0x0000 83 10 00 00 /* unsigned char HeaderType[0]; +0x0008 84 10 00 00 /* unsigned char Init[0]; +0x0008 85 10 00 00 /* unsigned char Reserved[0]; +0x0008 86 10 00 00 unsigned char Region[8]; +0x0008 87 10 00 00 }; */ /* struct { /* unsigned char Depth[0]; +0x0000 81 10 00 00 unsigned char Sequence[8]; +0x0000 8a 10 00 00 /* unsigned char HeaderType[0]; +0x0008 84 10 00 00 /* unsigned char Reserved[0]; +0x0008 8b 10 00 00 unsigned char NextEntry[8]; +0x0008 8c 10 00 00 }; */ struct _SLIST_HEADER { unsigned long long Alignment; /* +0x0000 */ unsigned long long Region; /* +0x0008 */ /* unsigned char Header8[0]; +0x0000 89 10 00 00 */ unsigned char HeaderX64[16]; /* +0x0000 8e 10 00 00 */ }; enum _POOL_TYPE { NonPagedPool = 0, NonPagedPoolExecute = 0, PagedPool = 1, NonPagedPoolMustSucceed = 2, DontUseThisType = 3, NonPagedPoolCacheAligned = 4, PagedPoolCacheAligned = 5, NonPagedPoolCacheAlignedMustS = 6, MaxPoolType = 7, NonPagedPoolBase = 0, NonPagedPoolBaseMustSucceed = 2, NonPagedPoolBaseCacheAligned = 4, NonPagedPoolBaseCacheAlignedMustS = 6, NonPagedPoolSession = 32, PagedPoolSession = 33, NonPagedPoolMustSucceedSession = 34, DontUseThisTypeSession = 35, NonPagedPoolCacheAlignedSession = 36, PagedPoolCacheAlignedSession = 37, NonPagedPoolCacheAlignedMustSSession = 38, NonPagedPoolNx = 512, NonPagedPoolNxCacheAligned = 516, NonPagedPoolSessionNx = 544 }; struct _NPAGED_LOOKASIDE_LIST { unsigned char L[128]; /* +0x0000 ac 10 00 00 */ }; struct _WORK_QUEUE_ITEM { unsigned char List[16]; /* +0x0000 1f 10 00 00 */ unsigned char WorkerRoutine[8]; /* +0x0010 a8 10 00 00 */ void *Parameter; /* +0x0018 */ }; struct _MDL { unsigned char Next[8]; /* +0x0000 b9 10 00 00 */ short Size; /* +0x0008 */ short MdlFlags; /* +0x000a */ unsigned char Process[8]; /* +0x0010 bb 10 00 00 */ void *MappedSystemVa; /* +0x0018 */ void *StartVa; /* +0x0020 */ unsigned long ByteCount; /* +0x0028 */ unsigned long ByteOffset; /* +0x002c */ }; enum _MEMORY_CACHING_TYPE { MmNonCached = 0, MmCached = 1, MmWriteCombined = 2, MmHardwareCoherentCached = 3, MmNonCachedUnordered = 4, MmUSWCCached = 5, MmMaximumCacheType = 6 }; /* struct { /* unsigned char MasterIrp[0]; +0x0000 cd 10 00 00 long IrpCount; +0x0000 void *SystemBuffer; +0x0000 }; */ /* struct { /* unsigned char UserApcRoutine[0]; +0x0000 d4 10 00 00 void *IssuingProcess; +0x0000 void *UserApcContext; +0x0008 }; */ /* struct { /* unsigned char AsynchronousParameters[0]; +0x0000 d6 10 00 00 unsigned char AllocationSize[16]; +0x0000 42 10 00 00 }; */ /* struct { /* unsigned char DeviceQueueEntry[0]; +0x0000 de 10 00 00 unsigned char DriverContext[32]; +0x0000 df 10 00 00 unsigned char Thread[8]; +0x0020 cb 10 00 00 char *AuxiliaryBuffer; +0x0028 unsigned char ListEntry[16]; +0x0030 1f 10 00 00 /* unsigned char CurrentStackLocation[0]; +0x0040 e1 10 00 00 unsigned long PacketType; +0x0040 unsigned char OriginalFileObject[8]; +0x0048 e3 10 00 00 }; */ /* struct { /* unsigned char Overlay[0]; +0x0000 e5 10 00 00 /* unsigned char Apc[0]; +0x0000 e6 10 00 00 void *CompletionKey; +0x0000 }; */ struct _IRP { short Type; /* +0x0000 */ unsigned short Size; /* +0x0002 */ unsigned char MdlAddress[8]; /* +0x0008 b9 10 00 00 */ unsigned long Flags; /* +0x0010 */ unsigned char AssociatedIrp[8]; /* +0x0018 cf 10 00 00 */ unsigned char ThreadListEntry[16]; /* +0x0020 1f 10 00 00 */ unsigned char IoStatus[16]; /* +0x0030 d0 10 00 00 */ char RequestorMode; /* +0x0040 */ unsigned char PendingReturned; /* +0x0041 */ char StackCount; /* +0x0042 */ char CurrentLocation; /* +0x0043 */ unsigned char Cancel; /* +0x0044 */ unsigned char CancelIrql; /* +0x0045 */ char ApcEnvironment; /* +0x0046 */ unsigned char AllocationFlags; /* +0x0047 */ unsigned char UserIosb[8]; /* +0x0048 d1 10 00 00 */ unsigned char UserEvent[8]; /* +0x0050 68 10 00 00 */ unsigned char Overlay[16]; /* +0x0058 d8 10 00 00 */ unsigned char CancelRoutine[8]; /* +0x0068 dd 10 00 00 */ void *UserBuffer; /* +0x0070 */ unsigned char Tail[88]; /* +0x0078 e8 10 00 00 */ }; /* struct { unsigned char SecurityContext[8]; +0x0000 ed 10 00 00 unsigned long Options; +0x0008 unsigned short FileAttributes; +0x0010 unsigned short ShareAccess; +0x0012 unsigned long EaLength; +0x0018 }; */ /* struct { unsigned char SecurityContext[8]; +0x0000 ed 10 00 00 unsigned long Options; +0x0008 unsigned short Reserved; +0x0010 unsigned short ShareAccess; +0x0012 unsigned char Parameters[8]; +0x0018 f1 10 00 00 }; */ /* struct { unsigned char SecurityContext[8]; +0x0000 ed 10 00 00 unsigned long Options; +0x0008 unsigned short Reserved; +0x0010 unsigned short ShareAccess; +0x0012 unsigned char Parameters[8]; +0x0018 f5 10 00 00 }; */ /* struct { unsigned long Length; +0x0000 unsigned long Key; +0x0008 unsigned char ByteOffset[8]; +0x0010 42 10 00 00 }; */ enum _FILE_INFORMATION_CLASS { FileDirectoryInformation = 1, FileFullDirectoryInformation = 2, FileBothDirectoryInformation = 3, FileBasicInformation = 4, FileStandardInformation = 5, FileInternalInformation = 6, FileEaInformation = 7, FileAccessInformation = 8, FileNameInformation = 9, FileRenameInformation = 10, FileLinkInformation = 11, FileNamesInformation = 12, FileDispositionInformation = 13, FilePositionInformation = 14, FileFullEaInformation = 15, FileModeInformation = 16, FileAlignmentInformation = 17, FileAllInformation = 18, FileAllocationInformation = 19, FileEndOfFileInformation = 20, FileAlternateNameInformation = 21, FileStreamInformation = 22, FilePipeInformation = 23, FilePipeLocalInformation = 24, FilePipeRemoteInformation = 25, FileMailslotQueryInformation = 26, FileMailslotSetInformation = 27, FileCompressionInformation = 28, FileObjectIdInformation = 29, FileCompletionInformation = 30, FileMoveClusterInformation = 31, FileQuotaInformation = 32, FileReparsePointInformation = 33, FileNetworkOpenInformation = 34, FileAttributeTagInformation = 35, FileTrackingInformation = 36, FileIdBothDirectoryInformation = 37, FileIdFullDirectoryInformation = 38, FileValidDataLengthInformation = 39, FileShortNameInformation = 40, FileIoCompletionNotificationInformation = 41, FileIoStatusBlockRangeInformation = 42, FileIoPriorityHintInformation = 43, FileSfioReserveInformation = 44, FileSfioVolumeInformation = 45, FileHardLinkInformation = 46, FileProcessIdsUsingFileInformation = 47, FileNormalizedNameInformation = 48, FileNetworkPhysicalNameInformation = 49, FileIdGlobalTxDirectoryInformation = 50, FileIsRemoteDeviceInformation = 51, FileAttributeCacheInformation = 52, FileNumaNodeInformation = 53, FileStandardLinkInformation = 54, FileRemoteProtocolInformation = 55, FileRenameInformationBypassAccessCheck = 56, FileLinkInformationBypassAccessCheck = 57, FileIntegrityStreamInformation = 58, FileVolumeNameInformation = 59, FileMaximumInformation = 60 }; /* struct { unsigned long Length; +0x0000 unsigned char FileName[8]; +0x0008 37 10 00 00 unsigned char FileInformationClass[8]; +0x0010 fb 10 00 00 unsigned long FileIndex; +0x0018 }; */ /* struct { unsigned long Length; +0x0000 unsigned long CompletionFilter; +0x0008 }; */ /* struct { unsigned long Length; +0x0000 unsigned char FileInformationClass[8]; +0x0008 fb 10 00 00 }; */ /* struct { unsigned long Length; +0x0000 unsigned char FileInformationClass[8]; +0x0008 fb 10 00 00 unsigned char FileObject[8]; +0x0010 e3 10 00 00 unsigned char ReplaceIfExists; +0x0018 unsigned char AdvanceOnly; +0x0019 unsigned long ClusterCount; +0x0018 void *DeleteHandle; +0x0018 }; */ /* struct { unsigned long Length; +0x0000 void *EaList; +0x0008 unsigned long EaListLength; +0x0010 unsigned long EaIndex; +0x0018 }; */ /* struct { unsigned long Length; +0x0000 }; */ enum _FSINFOCLASS { FileFsVolumeInformation = 1, FileFsLabelInformation = 2, FileFsSizeInformation = 3, FileFsDeviceInformation = 4, FileFsAttributeInformation = 5, FileFsControlInformation = 6, FileFsFullSizeInformation = 7, FileFsObjectIdInformation = 8, FileFsDriverPathInformation = 9, FileFsVolumeFlagsInformation = 10, FileFsSectorSizeInformation = 11, FileFsMaximumInformation = 12 }; /* struct { unsigned long Length; +0x0000 unsigned char FsInformationClass[8]; +0x0008 09 11 00 00 }; */ /* struct { unsigned long OutputBufferLength; +0x0000 unsigned long InputBufferLength; +0x0008 unsigned long FsControlCode; +0x0010 void *Type3InputBuffer; +0x0018 }; */ /* struct { unsigned char Length[8]; +0x0000 0e 11 00 00 unsigned long Key; +0x0008 unsigned char ByteOffset[8]; +0x0010 42 10 00 00 }; */ /* struct { unsigned long OutputBufferLength; +0x0000 unsigned long InputBufferLength; +0x0008 unsigned long IoControlCode; +0x0010 void *Type3InputBuffer; +0x0018 }; */ /* struct { unsigned long SecurityInformation; +0x0000 unsigned long Length; +0x0008 }; */ /* struct { unsigned long SecurityInformation; +0x0000 void *SecurityDescriptor; +0x0008 }; */ /* struct { unsigned char Vpb[8]; +0x0000 18 11 00 00 unsigned char DeviceObject[8]; +0x0008 da 10 00 00 }; */ /* struct { unsigned char Srb[8]; +0x0000 1c 11 00 00 }; */ /* struct { unsigned long Length; +0x0000 void *StartSid; +0x0008 unsigned char SidList[8]; +0x0010 20 11 00 00 unsigned long SidListLength; +0x0018 }; */ enum _DEVICE_RELATION_TYPE { BusRelations = 0, EjectionRelations = 1, PowerRelations = 2, RemovalRelations = 3, TargetDeviceRelation = 4, SingleBusRelations = 5, TransportRelations = 6 }; /* struct { unsigned char Type[4]; +0x0000 24 11 00 00 }; */ /* struct { unsigned char InterfaceType[8]; +0x0000 29 11 00 00 unsigned short Size; +0x0008 unsigned short Version; +0x000a unsigned char Interface[8]; +0x0010 2b 11 00 00 void *InterfaceSpecificData; +0x0018 }; */ /* struct { unsigned char Capabilities[8]; +0x0000 2f 11 00 00 }; */ /* struct { unsigned char IoResourceRequirementList[8]; +0x0000 33 11 00 00 }; */ /* struct { unsigned long WhichSpace; +0x0000 void *Buffer; +0x0008 unsigned long Offset; +0x0010 unsigned long Length; +0x0018 }; */ /* struct { unsigned char Lock; +0x0000 }; */ enum BUS_QUERY_ID_TYPE { BusQueryDeviceID = 0, BusQueryHardwareIDs = 1, BusQueryCompatibleIDs = 2, BusQueryInstanceID = 3, BusQueryDeviceSerialNumber = 4, BusQueryContainerID = 5 }; /* struct { unsigned char IdType[4]; +0x0000 3b 11 00 00 }; */ enum DEVICE_TEXT_TYPE { DeviceTextDescription = 0, DeviceTextLocationInformation = 1 }; /* struct { unsigned char DeviceTextType[8]; +0x0000 3f 11 00 00 unsigned long LocaleId; +0x0008 }; */ enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined = 0, DeviceUsageTypePaging = 1, DeviceUsageTypeHibernation = 2, DeviceUsageTypeDumpFile = 3, DeviceUsageTypeBoot = 4 }; /* struct { unsigned char InPath; +0x0000 unsigned char Reserved[7]; +0x0001 42 11 00 00 unsigned char Type[8]; +0x0008 44 11 00 00 }; */ enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking = 1, PowerSystemSleeping1 = 2, PowerSystemSleeping2 = 3, PowerSystemSleeping3 = 4, PowerSystemHibernate = 5, PowerSystemShutdown = 6, PowerSystemMaximum = 7 }; /* struct { unsigned char PowerState[4]; +0x0000 48 11 00 00 }; */ /* struct { unsigned char PowerSequence[8]; +0x0000 4c 11 00 00 }; */ enum _POWER_STATE_TYPE { SystemPowerState = 0, DevicePowerState = 1 }; enum POWER_ACTION { PowerActionNone = 0, PowerActionReserved = 1, PowerActionSleep = 2, PowerActionHibernate = 3, PowerActionShutdown = 4, PowerActionShutdownReset = 5, PowerActionShutdownOff = 6, PowerActionWarmEject = 7 }; /* struct { unsigned long SystemContext; +0x0000 unsigned char SystemPowerStateContext[8]; +0x0000 4f 11 00 00 unsigned char Type[8]; +0x0008 51 11 00 00 unsigned char State[8]; +0x0010 52 11 00 00 unsigned char ShutdownType[8]; +0x0018 54 11 00 00 }; */ /* struct { unsigned char AllocatedResources[8]; +0x0000 58 11 00 00 unsigned char AllocatedResourcesTranslated[8]; +0x0008 58 11 00 00 }; */ /* struct { unsigned long long ProviderId; +0x0000 void *DataPath; +0x0008 unsigned long BufferSize; +0x0010 void *Buffer; +0x0018 }; */ /* struct { void *Argument1; +0x0000 void *Argument2; +0x0008 void *Argument3; +0x0010 void *Argument4; +0x0018 }; */ /* struct { /* unsigned char Create[0]; +0x0000 ef 10 00 00 /* unsigned char CreatePipe[0]; +0x0000 f3 10 00 00 /* unsigned char CreateMailslot[0]; +0x0000 f7 10 00 00 /* unsigned char Read[0]; +0x0000 f9 10 00 00 /* unsigned char Write[0]; +0x0000 f9 10 00 00 /* unsigned char QueryDirectory[0]; +0x0000 fd 10 00 00 /* unsigned char NotifyDirectory[0]; +0x0000 ff 10 00 00 /* unsigned char QueryFile[0]; +0x0000 01 11 00 00 /* unsigned char SetFile[0]; +0x0000 03 11 00 00 /* unsigned char QueryEa[0]; +0x0000 05 11 00 00 /* unsigned char SetEa[0]; +0x0000 07 11 00 00 /* unsigned char QueryVolume[0]; +0x0000 0b 11 00 00 /* unsigned char SetVolume[0]; +0x0000 0b 11 00 00 /* unsigned char FileSystemControl[0]; +0x0000 0d 11 00 00 /* unsigned char LockControl[0]; +0x0000 10 11 00 00 /* unsigned char DeviceIoControl[0]; +0x0000 12 11 00 00 /* unsigned char QuerySecurity[0]; +0x0000 14 11 00 00 /* unsigned char SetSecurity[0]; +0x0000 16 11 00 00 /* unsigned char MountVolume[0]; +0x0000 1a 11 00 00 /* unsigned char VerifyVolume[0]; +0x0000 1a 11 00 00 /* unsigned char Scsi[0]; +0x0000 1e 11 00 00 /* unsigned char QueryQuota[0]; +0x0000 22 11 00 00 /* unsigned char SetQuota[0]; +0x0000 07 11 00 00 /* unsigned char QueryDeviceRelations[0]; +0x0000 26 11 00 00 /* unsigned char QueryInterface[0]; +0x0000 2d 11 00 00 /* unsigned char DeviceCapabilities[0]; +0x0000 31 11 00 00 /* unsigned char FilterResourceRequirements[0]; +0x0000 35 11 00 00 /* unsigned char ReadWriteConfig[0]; +0x0000 37 11 00 00 /* unsigned char SetLock[0]; +0x0000 39 11 00 00 /* unsigned char QueryId[0]; +0x0000 3d 11 00 00 /* unsigned char QueryDeviceText[0]; +0x0000 41 11 00 00 /* unsigned char UsageNotification[0]; +0x0000 46 11 00 00 /* unsigned char WaitWake[0]; +0x0000 4a 11 00 00 /* unsigned char PowerSequence[0]; +0x0000 4e 11 00 00 /* unsigned char Power[0]; +0x0000 56 11 00 00 /* unsigned char StartDevice[0]; +0x0000 5a 11 00 00 /* unsigned char WMI[0]; +0x0000 5c 11 00 00 unsigned char Others[32]; +0x0000 5e 11 00 00 }; */ struct _IO_STACK_LOCATION { unsigned char MajorFunction; /* +0x0000 */ unsigned char MinorFunction; /* +0x0001 */ unsigned char Flags; /* +0x0002 */ unsigned char Control; /* +0x0003 */ unsigned char Parameters[32]; /* +0x0008 60 11 00 00 */ unsigned char DeviceObject[8]; /* +0x0028 da 10 00 00 */ unsigned char FileObject[8]; /* +0x0030 e3 10 00 00 */ unsigned char CompletionRoutine[8]; /* +0x0038 63 11 00 00 */ void *Context; /* +0x0040 */ }; /* struct { /* unsigned char ListEntry[0]; +0x0000 1f 10 00 00 unsigned char Wcb[72]; +0x0000 75 11 00 00 }; */ struct _DEVICE_OBJECT { short Type; /* +0x0000 */ unsigned short Size; /* +0x0002 */ long ReferenceCount; /* +0x0004 */ unsigned char DriverObject[8]; /* +0x0008 72 11 00 00 */ unsigned char NextDevice[8]; /* +0x0010 da 10 00 00 */ unsigned char AttachedDevice[8]; /* +0x0018 da 10 00 00 */ unsigned char CurrentIrp[8]; /* +0x0020 cd 10 00 00 */ unsigned char Timer[8]; /* +0x0028 74 11 00 00 */ unsigned long Flags; /* +0x0030 */ unsigned long Characteristics; /* +0x0034 */ unsigned char Vpb[8]; /* +0x0038 18 11 00 00 */ void *DeviceExtension; /* +0x0040 */ unsigned long DeviceType; /* +0x0048 */ char StackSize; /* +0x004c */ unsigned char Queue[72]; /* +0x0050 77 11 00 00 */ unsigned long AlignmentRequirement; /* +0x0098 */ unsigned char DeviceQueue[40]; /* +0x00a0 78 11 00 00 */ unsigned char Dpc[64]; /* +0x00c8 69 11 00 00 */ unsigned long ActiveThreadCount; /* +0x0108 */ void *SecurityDescriptor; /* +0x0110 */ unsigned char DeviceLock[24]; /* +0x0118 64 10 00 00 */ unsigned short SectorSize; /* +0x0130 */ unsigned short Spare1; /* +0x0132 */ unsigned char DeviceObjectExtension[8]; /* +0x0138 7a 11 00 00 */ void *Reserved; /* +0x0140 */ }; struct _KDPC { unsigned char Type; /* +0x0000 */ unsigned char Importance; /* +0x0001 */ unsigned char Number[6]; /* +0x0002 55 10 00 00 */ unsigned char DpcListEntry[16]; /* +0x0008 1f 10 00 00 */ unsigned char DeferredRoutine[8]; /* +0x0018 6d 11 00 00 */ void *DeferredContext; /* +0x0020 */ void *SystemArgument1; /* +0x0028 */ void *SystemArgument2; /* +0x0030 */ void *DpcData; /* +0x0038 */ }; struct _EVENT_DATA_DESCRIPTOR { unsigned long long Ptr; /* +0x0000 */ unsigned long Size; /* +0x0008 */ unsigned long Reserved; /* +0x000c */ }; struct _EVENT_DESCRIPTOR { unsigned short Id; /* +0x0000 */ unsigned char Version; /* +0x0002 */ unsigned char Channel; /* +0x0003 */ unsigned char Level; /* +0x0004 */ unsigned char Opcode; /* +0x0005 */ unsigned short Task; /* +0x0006 */ unsigned long long Keyword; /* +0x0008 */ }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0 = 1, PowerDeviceD1 = 2, PowerDeviceD2 = 3, PowerDeviceD3 = 4, PowerDeviceMaximum = 5 }; enum _DEVICE_WAKE_DEPTH { DeviceWakeDepthNotWakeable = 0, DeviceWakeDepthD0 = 1, DeviceWakeDepthD1 = 2, DeviceWakeDepthD2 = 3, DeviceWakeDepthD3hot = 4, DeviceWakeDepthD3cold = 5, DeviceWakeDepthMaximum = 6 }; struct _DMA_ADAPTER { unsigned short Version; /* +0x0000 */ unsigned short Size; /* +0x0002 */ unsigned char DmaOperations[8]; /* +0x0008 a8 11 00 00 */ }; enum _IO_ALLOCATION_ACTION { KeepObject = 1, DeallocateObject = 2, DeallocateObjectKeepRegisters = 3 }; enum DMA_COMPLETION_STATUS { DmaComplete = 0, DmaAborted = 1, DmaError = 2, DmaCancelled = 3 }; struct _DMA_OPERATIONS { unsigned long Size; /* +0x0000 */ unsigned char PutDmaAdapter[8]; /* +0x0008 ae 11 00 00 */ unsigned char AllocateCommonBuffer[8]; /* +0x0010 b1 11 00 00 */ unsigned char FreeCommonBuffer[8]; /* +0x0018 b4 11 00 00 */ unsigned char AllocateAdapterChannel[8]; /* +0x0020 bc 11 00 00 */ unsigned char FlushAdapterBuffers[8]; /* +0x0028 bf 11 00 00 */ unsigned char FreeAdapterChannel[8]; /* +0x0030 ae 11 00 00 */ unsigned char FreeMapRegisters[8]; /* +0x0038 c2 11 00 00 */ unsigned char MapTransfer[8]; /* +0x0040 c5 11 00 00 */ unsigned char GetDmaAlignment[8]; /* +0x0048 c7 11 00 00 */ unsigned char ReadDmaCounter[8]; /* +0x0050 c7 11 00 00 */ unsigned char GetScatterGatherList[8]; /* +0x0058 cf 11 00 00 */ unsigned char PutScatterGatherList[8]; /* +0x0060 d2 11 00 00 */ unsigned char CalculateScatterGatherList[8]; /* +0x0068 d5 11 00 00 */ unsigned char BuildScatterGatherList[8]; /* +0x0070 d8 11 00 00 */ unsigned char BuildMdlFromScatterGatherList[8]; /* +0x0078 db 11 00 00 */ unsigned char GetDmaAdapterInfo[8]; /* +0x0080 e0 11 00 00 */ unsigned char GetDmaTransferInfo[8]; /* +0x0088 e5 11 00 00 */ unsigned char InitializeDmaTransferContext[8]; /* +0x0090 e8 11 00 00 */ unsigned char AllocateCommonBufferEx[8]; /* +0x0098 eb 11 00 00 */ unsigned char AllocateAdapterChannelEx[8]; /* +0x00a0 ee 11 00 00 */ unsigned char ConfigureAdapterChannel[8]; /* +0x00a8 f1 11 00 00 */ unsigned char CancelAdapterChannel[8]; /* +0x00b0 f4 11 00 00 */ unsigned char MapTransferEx[8]; /* +0x00b8 fc 11 00 00 */ unsigned char GetScatterGatherListEx[8]; /* +0x00c0 00 12 00 00 */ unsigned char BuildScatterGatherListEx[8]; /* +0x00c8 03 12 00 00 */ unsigned char FlushAdapterBuffersEx[8]; /* +0x00d0 06 12 00 00 */ unsigned char FreeAdapterObject[8]; /* +0x00d8 09 12 00 00 */ unsigned char CancelMappedTransfer[8]; /* +0x00e0 e8 11 00 00 */ }; struct _OSVERSIONINFOW { unsigned long dwOSVersionInfoSize; /* +0x0000 */ unsigned long dwMajorVersion; /* +0x0004 */ unsigned long dwMinorVersion; /* +0x0008 */ unsigned long dwBuildNumber; /* +0x000c */ unsigned long dwPlatformId; /* +0x0010 */ unsigned char szCSDVersion[256]; /* +0x0014 19 12 00 00 */ }; struct _RTL_SPLAY_LINKS { unsigned char Parent[8]; /* +0x0000 1d 12 00 00 */ unsigned char LeftChild[8]; /* +0x0008 1d 12 00 00 */ unsigned char RightChild[8]; /* +0x0010 1d 12 00 00 */ }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT { unsigned char ChainHead[8]; /* +0x0000 20 10 00 00 */ unsigned char PrevLinkage[8]; /* +0x0008 20 10 00 00 */ unsigned long long Signature; /* +0x0010 */ }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR { unsigned char HashEntry[24]; /* +0x0000 27 12 00 00 */ unsigned char ChainHead[8]; /* +0x0018 20 10 00 00 */ unsigned long BucketIndex; /* +0x0020 */ }; struct _RTL_DYNAMIC_HASH_TABLE { unsigned long Flags; /* +0x0000 */ unsigned long Shift; /* +0x0004 */ unsigned long TableSize; /* +0x0008 */ unsigned long Pivot; /* +0x000c */ unsigned long DivisorMask; /* +0x0010 */ unsigned long NumEntries; /* +0x0014 */ unsigned long NonEmptyBuckets; /* +0x0018 */ unsigned long NumEnumerators; /* +0x001c */ void *Directory; /* +0x0020 */ }; struct _KPCR { /* unsigned char NtTib[0]; +0x0000 32 12 00 00 */ unsigned char GdtBase[8]; /* +0x0000 34 12 00 00 */ unsigned char TssBase[8]; /* +0x0008 36 12 00 00 */ unsigned long long UserRsp; /* +0x0010 */ unsigned char Self[8]; /* +0x0018 31 12 00 00 */ unsigned char CurrentPrcb[8]; /* +0x0020 38 12 00 00 */ unsigned char LockArray[8]; /* +0x0028 3a 12 00 00 */ void *Used_Self; /* +0x0030 */ unsigned char IdtBase[8]; /* +0x0038 3c 12 00 00 */ unsigned char Unused[16]; /* +0x0040 3d 12 00 00 */ unsigned char Irql; /* +0x0050 */ unsigned char SecondLevelCacheAssociativity; /* +0x0051 */ unsigned char ObsoleteNumber; /* +0x0052 */ unsigned char Fill0; /* +0x0053 */ unsigned char Unused0[12]; /* +0x0054 3e 12 00 00 */ unsigned short MajorVersion; /* +0x0060 */ unsigned short MinorVersion; /* +0x0062 */ unsigned long StallScaleFactor; /* +0x0064 */ unsigned char Unused1[24]; /* +0x0068 3f 12 00 00 */ unsigned char KernelReserved[60]; /* +0x0080 40 12 00 00 */ unsigned long SecondLevelCacheSize; /* +0x00bc */ unsigned char HalReserved[64]; /* +0x00c0 41 12 00 00 */ unsigned long Unused2; /* +0x0100 */ void *KdVersionBlock; /* +0x0108 */ void *Unused3; /* +0x0110 */ unsigned char PcrAlign1[96]; /* +0x0118 42 12 00 00 */ }; struct _IO_DRIVER_CREATE_CONTEXT { short Size; /* +0x0000 */ unsigned char ExtraCreateParameter[8]; /* +0x0008 4b 12 00 00 */ void *DeviceObjectHint; /* +0x0010 */ unsigned char TxnParameters[8]; /* +0x0018 4d 12 00 00 */ }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor = 0, WheaErrTypeMemory = 1, WheaErrTypePCIExpress = 2, WheaErrTypeNMI = 3, WheaErrTypePCIXBus = 4, WheaErrTypePCIXDevice = 5, WheaErrTypeGeneric = 6 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable = 0, WheaErrSevFatal = 1, WheaErrSevCorrected = 2, WheaErrSevInformational = 3 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE = 0, WheaErrSrcTypeCMC = 1, WheaErrSrcTypeCPE = 2, WheaErrSrcTypeNMI = 3, WheaErrSrcTypePCIe = 4, WheaErrSrcTypeGeneric = 5, WheaErrSrcTypeINIT = 6, WheaErrSrcTypeBOOT = 7, WheaErrSrcTypeSCIGeneric = 8, WheaErrSrcTypeIPFMCA = 9, WheaErrSrcTypeIPFCMC = 10, WheaErrSrcTypeIPFCPE = 11, WheaErrSrcTypeMax = 12 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord = 0, WheaDataFormatXPFMCA = 1, WheaDataFormatMemory = 2, WheaDataFormatPCIExpress = 3, WheaDataFormatNMIPort = 4, WheaDataFormatPCIXBus = 5, WheaDataFormatPCIXDevice = 6, WheaDataFormatGeneric = 7, WheaDataFormatMax = 8 }; struct _WHEA_ERROR_PACKET_V2 { unsigned long Signature; /* +0x0000 */ unsigned long Version; /* +0x0004 */ unsigned long Length; /* +0x0008 */ unsigned char Flags[4]; /* +0x000c 52 12 00 00 */ unsigned char ErrorType[4]; /* +0x0010 54 12 00 00 */ unsigned char ErrorSeverity[4]; /* +0x0014 56 12 00 00 */ unsigned long ErrorSourceId; /* +0x0018 */ unsigned char ErrorSourceType[4]; /* +0x001c 58 12 00 00 */ unsigned char NotifyType[16]; /* +0x0020 27 11 00 00 */ unsigned long long Context; /* +0x0030 */ unsigned char DataFormat[4]; /* +0x0038 5a 12 00 00 */ unsigned long Reserved1; /* +0x003c */ unsigned long DataOffset; /* +0x0040 */ unsigned long DataLength; /* +0x0044 */ unsigned long PshedDataOffset; /* +0x0048 */ unsigned long PshedDataLength; /* +0x004c */ }; struct _WHEA_ERROR_RECORD { unsigned char Header[128]; /* +0x0000 5f 12 00 00 */ unsigned char SectionDescriptor[72]; /* +0x0080 61 12 00 00 */ }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR { unsigned long SectionOffset; /* +0x0000 */ unsigned long SectionLength; /* +0x0004 */ unsigned char Revision[2]; /* +0x0008 66 12 00 00 */ unsigned char ValidBits[1]; /* +0x000a 67 12 00 00 */ unsigned char Reserved; /* +0x000b */ unsigned char Flags[4]; /* +0x000c 68 12 00 00 */ unsigned char SectionType[16]; /* +0x0010 27 11 00 00 */ unsigned char FRUId[16]; /* +0x0020 27 11 00 00 */ unsigned char SectionSeverity[4]; /* +0x0030 56 12 00 00 */ unsigned char FRUText[20]; /* +0x0034 69 12 00 00 */ }; struct _GUID { unsigned long Data1; /* +0x0000 */ unsigned short Data2; /* +0x0004 */ unsigned short Data3; /* +0x0006 */ unsigned char Data4[8]; /* +0x0008 71 12 00 00 */ }; struct _WDF_DRIVER_GLOBALS { unsigned char Driver[8]; /* +0x0000 7f 12 00 00 */ unsigned long DriverFlags; /* +0x0008 */ unsigned long DriverTag; /* +0x000c */ unsigned char DriverName[32]; /* +0x0010 80 12 00 00 */ unsigned char DisplaceDriverUnload; /* +0x0030 */ }; enum _WDF_EXECUTION_LEVEL { WdfExecutionLevelInvalid = 0, WdfExecutionLevelInheritFromParent = 1, WdfExecutionLevelPassive = 2, WdfExecutionLevelDispatch = 3 }; enum _WDF_SYNCHRONIZATION_SCOPE { WdfSynchronizationScopeInvalid = 0, WdfSynchronizationScopeInheritFromParent = 1, WdfSynchronizationScopeDevice = 2, WdfSynchronizationScopeQueue = 3, WdfSynchronizationScopeNone = 4 }; struct _WDF_OBJECT_ATTRIBUTES { unsigned long Size; /* +0x0000 */ unsigned char EvtCleanupCallback[8]; /* +0x0008 a8 10 00 00 */ unsigned char EvtDestroyCallback[8]; /* +0x0010 a8 10 00 00 */ unsigned char ExecutionLevel[4]; /* +0x0018 89 12 00 00 */ unsigned char SynchronizationScope[4]; /* +0x001c 8b 12 00 00 */ void *ParentObject; /* +0x0020 */ unsigned long long ContextSizeOverride; /* +0x0028 */ unsigned char ContextTypeInfo[8]; /* +0x0030 8e 12 00 00 */ }; struct _WDF_OBJECT_CONTEXT_TYPE_INFO { unsigned long Size; /* +0x0000 */ char *ContextName; /* +0x0008 */ unsigned long long ContextSize; /* +0x0010 */ unsigned char UniqueType[8]; /* +0x0018 8e 12 00 00 */ unsigned char EvtDriverGetUniqueContextType[8]; /* +0x0020 97 12 00 00 */ }; struct WDFWAITLOCK__ { unsigned char unused[4]; /* +0x0000 74 00 00 00 */ }; struct _WDF_DRIVER_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char EvtDriverDeviceAdd[8]; /* +0x0008 cc 12 00 00 */ unsigned char EvtDriverUnload[8]; /* +0x0010 cf 12 00 00 */ unsigned long DriverInitFlags; /* +0x0018 */ unsigned long DriverPoolTag; /* +0x001c */ }; struct _WDF_DRIVER_VERSION_AVAILABLE_PARAMS { unsigned long Size; /* +0x0000 */ unsigned long MajorVersion; /* +0x0004 */ unsigned long MinorVersion; /* +0x0008 */ }; struct _DRIVER_OBJECT { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned char DeviceObject[8]; /* +0x0008 da 10 00 00 */ unsigned long Flags; /* +0x0010 */ void *DriverStart; /* +0x0018 */ unsigned long DriverSize; /* +0x0020 */ void *DriverSection; /* +0x0028 */ unsigned char DriverExtension[8]; /* +0x0030 df 12 00 00 */ unsigned char DriverName[16]; /* +0x0038 36 10 00 00 */ unsigned char HardwareDatabase[8]; /* +0x0048 37 10 00 00 */ unsigned char FastIoDispatch[8]; /* +0x0050 e1 12 00 00 */ unsigned char DriverInit[8]; /* +0x0058 e4 12 00 00 */ unsigned char DriverStartIo[8]; /* +0x0060 dd 10 00 00 */ unsigned char DriverUnload[8]; /* +0x0068 e7 12 00 00 */ unsigned char MajorFunction[224]; /* +0x0070 ea 12 00 00 */ }; struct _WDF_QUERY_INTERFACE_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char Interface[8]; /* +0x0008 2b 11 00 00 */ unsigned char InterfaceType[8]; /* +0x0010 29 11 00 00 */ unsigned char SendQueryToParentStack; /* +0x0018 */ unsigned char EvtDeviceProcessQueryInterfaceRequest[8]; /* +0x0020 11 13 00 00 */ unsigned char ImportInterface; /* +0x0028 */ }; struct _INTERFACE { unsigned short Size; /* +0x0000 */ unsigned short Version; /* +0x0002 */ void *Context; /* +0x0008 */ unsigned char InterfaceReference[8]; /* +0x0010 a8 10 00 00 */ unsigned char InterfaceDereference[8]; /* +0x0018 a8 10 00 00 */ }; enum _WDF_MEMORY_DESCRIPTOR_TYPE { WdfMemoryDescriptorTypeInvalid = 0, WdfMemoryDescriptorTypeBuffer = 1, WdfMemoryDescriptorTypeMdl = 2, WdfMemoryDescriptorTypeHandle = 3 }; /* struct { void *Buffer; +0x0000 unsigned long Length; +0x0008 }; */ /* struct { unsigned char Mdl[8]; +0x0000 b9 10 00 00 unsigned long BufferLength; +0x0008 }; */ /* struct { unsigned char Memory[8]; +0x0000 26 13 00 00 unsigned char Offsets[8]; +0x0008 28 13 00 00 }; */ /* struct { /* unsigned char BufferType[0]; +0x0000 22 13 00 00 /* unsigned char MdlType[0]; +0x0000 24 13 00 00 unsigned char HandleType[16]; +0x0000 2a 13 00 00 }; */ struct _WDF_MEMORY_DESCRIPTOR { unsigned char Type[8]; /* +0x0000 20 13 00 00 */ unsigned char u[16]; /* +0x0008 2c 13 00 00 */ }; struct _WDFMEMORY_OFFSET { unsigned long long BufferOffset; /* +0x0000 */ unsigned long long BufferLength; /* +0x0008 */ }; struct _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER { unsigned long IdentificationDescriptionSize; /* +0x0000 */ }; struct _WDF_CHILD_ADDRESS_DESCRIPTION_HEADER { unsigned long AddressDescriptionSize; /* +0x0000 */ }; enum _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS { WdfChildListRetrieveDeviceUndefined = 0, WdfChildListRetrieveDeviceSuccess = 1, WdfChildListRetrieveDeviceNotYetCreated = 2, WdfChildListRetrieveDeviceNoSuchDevice = 3 }; struct _WDF_CHILD_RETRIEVE_INFO { unsigned long Size; /* +0x0000 */ unsigned char IdentificationDescription[8]; /* +0x0008 4f 13 00 00 */ unsigned char AddressDescription[8]; /* +0x0010 53 13 00 00 */ unsigned char Status[8]; /* +0x0018 59 13 00 00 */ unsigned char EvtChildListIdentificationDescriptionCompare[8]; /* +0x0020 5e 13 00 00 */ }; struct _WDF_CHILD_LIST_CONFIG { unsigned long Size; /* +0x0000 */ unsigned long IdentificationDescriptionSize; /* +0x0004 */ unsigned long AddressDescriptionSize; /* +0x0008 */ unsigned char EvtChildListCreateDevice[8]; /* +0x0010 66 13 00 00 */ unsigned char EvtChildListScanForChildren[8]; /* +0x0018 69 13 00 00 */ unsigned char EvtChildListIdentificationDescriptionCopy[8]; /* +0x0020 6b 13 00 00 */ unsigned char EvtChildListIdentificationDescriptionDuplicate[8]; /* +0x0028 6d 13 00 00 */ unsigned char EvtChildListIdentificationDescriptionCleanup[8]; /* +0x0030 70 13 00 00 */ unsigned char EvtChildListIdentificationDescriptionCompare[8]; /* +0x0038 5e 13 00 00 */ unsigned char EvtChildListAddressDescriptionCopy[8]; /* +0x0040 73 13 00 00 */ unsigned char EvtChildListAddressDescriptionDuplicate[8]; /* +0x0048 75 13 00 00 */ unsigned char EvtChildListAddressDescriptionCleanup[8]; /* +0x0050 78 13 00 00 */ unsigned char EvtChildListDeviceReenumerated[8]; /* +0x0058 7b 13 00 00 */ }; struct _WDF_CHILD_LIST_ITERATOR { unsigned long Size; /* +0x0000 */ unsigned long Flags; /* +0x0004 */ unsigned char Reserved[32]; /* +0x0008 df 10 00 00 */ }; struct _FILE_OBJECT { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned char DeviceObject[8]; /* +0x0008 da 10 00 00 */ unsigned char Vpb[8]; /* +0x0010 18 11 00 00 */ void *FsContext; /* +0x0018 */ void *FsContext2; /* +0x0020 */ unsigned char SectionObjectPointer[8]; /* +0x0028 ac 13 00 00 */ void *PrivateCacheMap; /* +0x0030 */ long FinalStatus; /* +0x0038 */ unsigned char RelatedFileObject[8]; /* +0x0040 e3 10 00 00 */ unsigned char LockOperation; /* +0x0048 */ unsigned char DeletePending; /* +0x0049 */ unsigned char ReadAccess; /* +0x004a */ unsigned char WriteAccess; /* +0x004b */ unsigned char DeleteAccess; /* +0x004c */ unsigned char SharedRead; /* +0x004d */ unsigned char SharedWrite; /* +0x004e */ unsigned char SharedDelete; /* +0x004f */ unsigned long Flags; /* +0x0050 */ unsigned char FileName[16]; /* +0x0058 36 10 00 00 */ unsigned char CurrentByteOffset[8]; /* +0x0068 42 10 00 00 */ unsigned long Waiters; /* +0x0070 */ unsigned long Busy; /* +0x0074 */ void *LastLock; /* +0x0078 */ unsigned char Lock[24]; /* +0x0080 64 10 00 00 */ unsigned char Event[24]; /* +0x0098 64 10 00 00 */ unsigned char CompletionContext[8]; /* +0x00b0 ae 13 00 00 */ unsigned long long IrpListLock; /* +0x00b8 */ unsigned char IrpList[16]; /* +0x00c0 1f 10 00 00 */ void *FileObjectExtension; /* +0x00d0 */ }; enum _WDF_TRI_STATE { WdfFalse = 0, WdfTrue = 1, WdfUseDefault = 2 }; enum _WDF_FILEOBJECT_CLASS { WdfFileObjectInvalid = 0, WdfFileObjectNotRequired = 1, WdfFileObjectWdfCanUseFsContext = 2, WdfFileObjectWdfCanUseFsContext2 = 3, WdfFileObjectWdfCannotUseFsContexts = 4, = 32771 }; struct _WDF_FILEOBJECT_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char EvtDeviceFileCreate[8]; /* +0x0008 b7 13 00 00 */ unsigned char EvtFileClose[8]; /* +0x0010 ba 13 00 00 */ unsigned char EvtFileCleanup[8]; /* +0x0018 ba 13 00 00 */ unsigned char AutoForwardCleanupClose[4]; /* +0x0020 bc 13 00 00 */ unsigned char FileObjectClass[4]; /* +0x0024 be 13 00 00 */ }; struct _WDF_POWER_POLICY_EVENT_CALLBACKS { unsigned long Size; /* +0x0000 */ unsigned char EvtDeviceArmWakeFromS0[8]; /* +0x0008 c9 13 00 00 */ unsigned char EvtDeviceDisarmWakeFromS0[8]; /* +0x0010 cb 13 00 00 */ unsigned char EvtDeviceWakeFromS0Triggered[8]; /* +0x0018 cb 13 00 00 */ unsigned char EvtDeviceArmWakeFromSx[8]; /* +0x0020 c9 13 00 00 */ unsigned char EvtDeviceDisarmWakeFromSx[8]; /* +0x0028 cb 13 00 00 */ unsigned char EvtDeviceWakeFromSxTriggered[8]; /* +0x0030 cb 13 00 00 */ unsigned char EvtDeviceArmWakeFromSxWithReason[8]; /* +0x0038 ce 13 00 00 */ }; enum _WDF_POWER_DEVICE_STATE { WdfPowerDeviceInvalid = 0, WdfPowerDeviceD0 = 1, WdfPowerDeviceD1 = 2, WdfPowerDeviceD2 = 3, WdfPowerDeviceD3 = 4, WdfPowerDeviceD3Final = 5, WdfPowerDevicePrepareForHibernation = 6, WdfPowerDeviceMaximum = 7 }; enum _WDF_SPECIAL_FILE_TYPE { WdfSpecialFileUndefined = 0, WdfSpecialFilePaging = 1, WdfSpecialFileHibernation = 2, WdfSpecialFileDump = 3, WdfSpecialFileBoot = 4, WdfSpecialFileMax = 5 }; struct _WDF_PNPPOWER_EVENT_CALLBACKS { unsigned long Size; /* +0x0000 */ unsigned char EvtDeviceD0Entry[8]; /* +0x0008 d7 13 00 00 */ unsigned char EvtDeviceD0EntryPostInterruptsEnabled[8]; /* +0x0010 d7 13 00 00 */ unsigned char EvtDeviceD0Exit[8]; /* +0x0018 d7 13 00 00 */ unsigned char EvtDeviceD0ExitPreInterruptsDisabled[8]; /* +0x0020 d7 13 00 00 */ unsigned char EvtDevicePrepareHardware[8]; /* +0x0028 dc 13 00 00 */ unsigned char EvtDeviceReleaseHardware[8]; /* +0x0030 df 13 00 00 */ unsigned char EvtDeviceSelfManagedIoCleanup[8]; /* +0x0038 cb 13 00 00 */ unsigned char EvtDeviceSelfManagedIoFlush[8]; /* +0x0040 cb 13 00 00 */ unsigned char EvtDeviceSelfManagedIoInit[8]; /* +0x0048 c9 13 00 00 */ unsigned char EvtDeviceSelfManagedIoSuspend[8]; /* +0x0050 c9 13 00 00 */ unsigned char EvtDeviceSelfManagedIoRestart[8]; /* +0x0058 c9 13 00 00 */ unsigned char EvtDeviceSurpriseRemoval[8]; /* +0x0060 cb 13 00 00 */ unsigned char EvtDeviceQueryRemove[8]; /* +0x0068 c9 13 00 00 */ unsigned char EvtDeviceQueryStop[8]; /* +0x0070 c9 13 00 00 */ unsigned char EvtDeviceUsageNotification[8]; /* +0x0078 e4 13 00 00 */ unsigned char EvtDeviceRelationsQuery[8]; /* +0x0080 e7 13 00 00 */ unsigned char EvtDeviceUsageNotificationEx[8]; /* +0x0088 e9 13 00 00 */ }; enum _WDF_POWER_POLICY_S0_IDLE_CAPABILITIES { IdleCapsInvalid = 0, IdleCannotWakeFromS0 = 1, IdleCanWakeFromS0 = 2, IdleUsbSelectiveSuspend = 3 }; enum _WDF_POWER_POLICY_S0_IDLE_USER_CONTROL { IdleUserControlInvalid = 0, IdleDoNotAllowUserControl = 1, IdleAllowUserControl = 2 }; struct _WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS { unsigned long Size; /* +0x0000 */ unsigned char IdleCaps[4]; /* +0x0004 ef 13 00 00 */ unsigned char DxState[4]; /* +0x0008 9f 11 00 00 */ unsigned long IdleTimeout; /* +0x000c */ unsigned char UserControlOfIdleSettings[4]; /* +0x0010 f1 13 00 00 */ unsigned char Enabled[4]; /* +0x0014 bc 13 00 00 */ unsigned char PowerUpIdleDeviceOnSystemWake[4]; /* +0x0018 bc 13 00 00 */ unsigned char UseSystemManagedIdleTimeout; /* +0x001c */ unsigned char ExcludeD3Cold[4]; /* +0x0020 bc 13 00 00 */ }; enum _WDF_POWER_POLICY_SX_WAKE_USER_CONTROL { WakeUserControlInvalid = 0, WakeDoNotAllowUserControl = 1, WakeAllowUserControl = 2 }; struct _WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS { unsigned long Size; /* +0x0000 */ unsigned char DxState[4]; /* +0x0004 9f 11 00 00 */ unsigned char UserControlOfWakeSettings[4]; /* +0x0008 fa 13 00 00 */ unsigned char Enabled[4]; /* +0x000c bc 13 00 00 */ unsigned char ArmForWakeIfChildrenAreArmedForWake; /* +0x0010 */ unsigned char IndicateChildWakeOnParentWake; /* +0x0011 */ }; struct _WDF_DEVICE_STATE { unsigned long Size; /* +0x0000 */ unsigned char Disabled[4]; /* +0x0004 bc 13 00 00 */ unsigned char DontDisplayInUI[4]; /* +0x0008 bc 13 00 00 */ unsigned char Failed[4]; /* +0x000c bc 13 00 00 */ unsigned char NotDisableable[4]; /* +0x0010 bc 13 00 00 */ unsigned char Removed[4]; /* +0x0014 bc 13 00 00 */ unsigned char ResourcesChanged[4]; /* +0x0018 bc 13 00 00 */ }; struct _WDF_DEVICE_PNP_CAPABILITIES { unsigned long Size; /* +0x0000 */ unsigned char LockSupported[4]; /* +0x0004 bc 13 00 00 */ unsigned char EjectSupported[4]; /* +0x0008 bc 13 00 00 */ unsigned char Removable[4]; /* +0x000c bc 13 00 00 */ unsigned char DockDevice[4]; /* +0x0010 bc 13 00 00 */ unsigned char UniqueID[4]; /* +0x0014 bc 13 00 00 */ unsigned char SilentInstall[4]; /* +0x0018 bc 13 00 00 */ unsigned char SurpriseRemovalOK[4]; /* +0x001c bc 13 00 00 */ unsigned char HardwareDisabled[4]; /* +0x0020 bc 13 00 00 */ unsigned char NoDisplayInUI[4]; /* +0x0024 bc 13 00 00 */ unsigned long Address; /* +0x0028 */ unsigned long UINumber; /* +0x002c */ }; struct _WDF_DEVICE_POWER_CAPABILITIES { unsigned long Size; /* +0x0000 */ unsigned char DeviceD1[4]; /* +0x0004 bc 13 00 00 */ unsigned char DeviceD2[4]; /* +0x0008 bc 13 00 00 */ unsigned char WakeFromD0[4]; /* +0x000c bc 13 00 00 */ unsigned char WakeFromD1[4]; /* +0x0010 bc 13 00 00 */ unsigned char WakeFromD2[4]; /* +0x0014 bc 13 00 00 */ unsigned char WakeFromD3[4]; /* +0x0018 bc 13 00 00 */ unsigned char DeviceState[28]; /* +0x001c 08 14 00 00 */ unsigned char DeviceWake[4]; /* +0x0038 9f 11 00 00 */ unsigned char SystemWake[4]; /* +0x003c 48 11 00 00 */ unsigned long D1Latency; /* +0x0040 */ unsigned long D2Latency; /* +0x0044 */ unsigned long D3Latency; /* +0x0048 */ unsigned char IdealDxStateForSx[4]; /* +0x004c 9f 11 00 00 */ }; struct _WDF_REMOVE_LOCK_OPTIONS { unsigned long Size; /* +0x0000 */ unsigned long Flags; /* +0x0004 */ }; struct _WDF_POWER_FRAMEWORK_SETTINGS { unsigned long Size; /* +0x0000 */ unsigned char EvtDeviceWdmPostPoFxRegisterDevice[8]; /* +0x0008 17 14 00 00 */ unsigned char EvtDeviceWdmPrePoFxUnregisterDevice[8]; /* +0x0010 19 14 00 00 */ unsigned char Component[8]; /* +0x0018 1b 14 00 00 */ unsigned char ComponentActiveConditionCallback[8]; /* +0x0020 1e 14 00 00 */ unsigned char ComponentIdleConditionCallback[8]; /* +0x0028 1e 14 00 00 */ unsigned char ComponentIdleStateCallback[8]; /* +0x0030 21 14 00 00 */ unsigned char PowerControlCallback[8]; /* +0x0038 24 14 00 00 */ void *PoFxDeviceContext; /* +0x0040 */ }; enum _WDF_DEVICE_PNP_STATE { WdfDevStatePnpInvalid = 0, WdfDevStatePnpObjectCreated = 256, WdfDevStatePnpCheckForDevicePresence = 257, WdfDevStatePnpEjectFailed = 258, WdfDevStatePnpEjectHardware = 259, WdfDevStatePnpEjectedWaitingForRemove = 260, WdfDevStatePnpInit = 261, WdfDevStatePnpInitStarting = 262, WdfDevStatePnpInitSurpriseRemoved = 263, WdfDevStatePnpHardwareAvailable = 264, WdfDevStatePnpEnableInterfaces = 265, WdfDevStatePnpHardwareAvailablePowerPolicyFailed = 266, WdfDevStatePnpQueryRemoveAskDriver = 267, WdfDevStatePnpQueryRemovePending = 268, WdfDevStatePnpQueryRemoveStaticCheck = 269, WdfDevStatePnpQueriedRemoving = 270, WdfDevStatePnpQueryStopAskDriver = 271, WdfDevStatePnpQueryStopPending = 272, WdfDevStatePnpQueryStopStaticCheck = 273, WdfDevStatePnpQueryCanceled = 274, WdfDevStatePnpRemoved = 275, WdfDevStatePnpPdoRemoved = 276, WdfDevStatePnpRemovedPdoWait = 277, WdfDevStatePnpRemovedPdoSurpriseRemoved = 278, WdfDevStatePnpRemovingDisableInterfaces = 279, WdfDevStatePnpRestarting = 280, WdfDevStatePnpStarted = 281, WdfDevStatePnpStartedCancelStop = 282, WdfDevStatePnpStartedCancelRemove = 283, WdfDevStatePnpStartedRemoving = 284, WdfDevStatePnpStartingFromStopped = 285, WdfDevStatePnpStopped = 286, WdfDevStatePnpStoppedWaitForStartCompletion = 287, WdfDevStatePnpStartedStopping = 288, WdfDevStatePnpSurpriseRemove = 289, WdfDevStatePnpInitQueryRemove = 290, WdfDevStatePnpInitQueryRemoveCanceled = 291, WdfDevStatePnpFdoRemoved = 292, WdfDevStatePnpRemovedWaitForChildren = 293, WdfDevStatePnpQueriedSurpriseRemove = 294, WdfDevStatePnpSurpriseRemoveIoStarted = 295, WdfDevStatePnpFailedPowerDown = 296, WdfDevStatePnpFailedIoStarting = 297, WdfDevStatePnpFailedOwnHardware = 298, WdfDevStatePnpFailed = 299, WdfDevStatePnpFailedSurpriseRemoved = 300, WdfDevStatePnpFailedStarted = 301, WdfDevStatePnpFailedWaitForRemove = 302, WdfDevStatePnpFailedInit = 303, WdfDevStatePnpPdoInitFailed = 304, WdfDevStatePnpRestart = 305, WdfDevStatePnpRestartReleaseHardware = 306, WdfDevStatePnpRestartHardwareAvailable = 307, WdfDevStatePnpPdoRestart = 308, WdfDevStatePnpFinal = 309, WdfDevStatePnpRemovedChildrenRemoved = 310, WdfDevStatePnpQueryRemoveEnsureDeviceAwake = 311, WdfDevStatePnpQueryStopEnsureDeviceAwake = 312, WdfDevStatePnpFailedPowerPolicyRemoved = 313, WdfDevStatePnpNull = 314 }; enum _WDF_DEVICE_POWER_STATE { WdfDevStatePowerInvalid = 0, WdfDevStatePowerObjectCreated = 768, WdfDevStatePowerCheckDeviceType = 769, ƒWdfDevStatePowerCheckDeviceTypeNP = 32770, WdfDevStatePowerCheckParentState = 771, ƒWdfDevStatePowerCheckParentStateNP = 32770, WdfDevStatePowerEnablingWakeAtBus = 773, ƒWdfDevStatePowerEnablingWakeAtBusNP = 32770, WdfDevStatePowerD0 = 775, ƒWdfDevStatePowerD0NP = 32770, WdfDevStatePowerD0BusWakeOwner = 777, ƒWdfDevStatePowerD0BusWakeOwnerNP = 32770, WdfDevStatePowerD0ArmedForWake = 779, ƒWdfDevStatePowerD0ArmedForWakeNP = 32770, WdfDevStatePowerD0DisarmingWakeAtBus = 781, ƒWdfDevStatePowerD0DisarmingWakeAtBusNP = 32770, WdfDevStatePowerD0Starting = 783, WdfDevStatePowerD0StartingConnectInterrupt = 784, WdfDevStatePowerD0StartingDmaEnable = 785, WdfDevStatePowerD0StartingStartSelfManagedIo = 786, WdfDevStatePowerDecideD0State = 787, WdfDevStatePowerGotoD3Stopped = 788, WdfDevStatePowerStopped = 789, WdfDevStatePowerStartingCheckDeviceType = 790, WdfDevStatePowerStartingChild = 791, WdfDevStatePowerDxDisablingWakeAtBus = 792, ƒWdfDevStatePowerDxDisablingWakeAtBusNP = 32770, WdfDevStatePowerGotoDx = 794, ƒWdfDevStatePowerGotoDxNP = 32770, WdfDevStatePowerGotoDxIoStopped = 796, ƒWdfDevStatePowerGotoDxIoStoppedNP = 32770, ƒWdfDevStatePowerGotoDxNPFailed = 32770, WdfDevStatePowerDx = 799, ƒWdfDevStatePowerDxNP = 32770, WdfDevStatePowerGotoDxArmedForWake = 801, "ƒWdfDevStatePowerGotoDxArmedForWakeNP = 32770, WdfDevStatePowerGotoDxIoStoppedArmedForWake = 803, $ƒWdfDevStatePowerGotoDxIoStoppedArmedForWakeNP = 32770, WdfDevStatePowerDxArmedForWake = 805, &ƒWdfDevStatePowerDxArmedForWakeNP = 32770, WdfDevStatePowerCheckParentStateArmedForWake = 807, (ƒWdfDevStatePowerCheckParentStateArmedForWakeNP = 32770, WdfDevStatePowerWaitForParentArmedForWake = 809, *ƒWdfDevStatePowerWaitForParentArmedForWakeNP = 32770, WdfDevStatePowerStartSelfManagedIo = 811, ,ƒWdfDevStatePowerStartSelfManagedIoNP = 32770, WdfDevStatePowerStartSelfManagedIoFailed = 813, .ƒWdfDevStatePowerStartSelfManagedIoFailedNP = 32770, WdfDevStatePowerWaitForParent = 815, 0ƒWdfDevStatePowerWaitForParentNP = 32770, WdfDevStatePowerWakePending = 817, 2ƒWdfDevStatePowerWakePendingNP = 32770, WdfDevStatePowerWaking = 819, 4ƒWdfDevStatePowerWakingNP = 32770, WdfDevStatePowerWakingConnectInterrupt = 821, 6ƒWdfDevStatePowerWakingConnectInterruptNP = 32770, WdfDevStatePowerWakingConnectInterruptFailed = 823, 8ƒWdfDevStatePowerWakingConnectInterruptFailedNP = 32770, WdfDevStatePowerWakingDmaEnable = 825, :ƒWdfDevStatePowerWakingDmaEnableNP = 32770, WdfDevStatePowerWakingDmaEnableFailed = 827, <ƒWdfDevStatePowerWakingDmaEnableFailedNP = 32770, WdfDevStatePowerReportPowerUpFailedDerefParent = 829, WdfDevStatePowerReportPowerUpFailed = 830, WdfDevStatePowerPowerFailedPowerDown = 831, WdfDevStatePowerReportPowerDownFailed = 832, WdfDevStatePowerInitialConnectInterruptFailed = 833, WdfDevStatePowerInitialDmaEnableFailed = 834, WdfDevStatePowerInitialSelfManagedIoFailed = 835, WdfDevStatePowerInitialPowerUpFailedDerefParent = 836, WdfDevStatePowerInitialPowerUpFailed = 837, WdfDevStatePowerDxStoppedDisarmWake = 838, GƒWdfDevStatePowerDxStoppedDisarmWakeNP = 32770, HƒWdfDevStatePowerGotoDxStoppedDisableInterruptNP = 32770, WdfDevStatePowerGotoDxStopped = 841, WdfDevStatePowerDxStopped = 842, WdfDevStatePowerGotoStopped = 843, WdfDevStatePowerStoppedCompleteDx = 844, WdfDevStatePowerDxStoppedDecideDxState = 845, WdfDevStatePowerDxStoppedArmForWake = 846, OƒWdfDevStatePowerDxStoppedArmForWakeNP = 32770, WdfDevStatePowerFinalPowerDownFailed = 848, WdfDevStatePowerFinal = 849, WdfDevStatePowerGotoImplicitD3DisarmWakeAtBus = 850, WdfDevStatePowerNull = 851 }; enum _WDF_DEVICE_POWER_POLICY_STATE { WdfDevStatePwrPolInvalid = 0, WdfDevStatePwrPolObjectCreated = 1280, WdfDevStatePwrPolStarting = 1281, WdfDevStatePwrPolStartingSucceeded = 1282, WdfDevStatePwrPolStartingFailed = 1283, WdfDevStatePwrPolStartingDecideS0Wake = 1284, WdfDevStatePwrPolStartedIdleCapable = 1285, WdfDevStatePwrPolTimerExpiredNoWake = 1286, WdfDevStatePwrPolTimerExpiredNoWakeCompletePowerDown = 1287, WdfDevStatePwrPolWaitingUnarmed = 1288, WdfDevStatePwrPolWaitingUnarmedQueryIdle = 1289, WdfDevStatePwrPolS0NoWakePowerUp = 1290, WdfDevStatePwrPolS0NoWakeCompletePowerUp = 1291, WdfDevStatePwrPolSystemSleepFromDeviceWaitingUnarmed = 1292, WdfDevStatePwrPolSystemSleepNeedWake = 1293, WdfDevStatePwrPolSystemSleepNeedWakeCompletePowerUp = 1294, WdfDevStatePwrPolSystemSleepPowerRequestFailed = 1295, WdfDevStatePwrPolCheckPowerPageable = 1296, WdfDevStatePwrPolSleepingWakeWakeArrived = 1297, WdfDevStatePwrPolSleepingWakeRevertArmWake = 1298, WdfDevStatePwrPolSystemAsleepWakeArmed = 1299, WdfDevStatePwrPolSystemWakeDeviceWakeEnabled = 1300, WdfDevStatePwrPolSystemWakeDeviceWakeEnabledWakeCanceled = 1301, WdfDevStatePwrPolSystemWakeDeviceWakeDisarm = 1302, WdfDevStatePwrPolSystemWakeDeviceWakeTriggered = 1303, WdfDevStatePwrPolSystemWakeDeviceWakeTriggeredS0 = 1304, WdfDevStatePwrPolSystemWakeDeviceWokeDisarm = 1305, …WdfDevStatePwrPolSleepingWakeWakeArrivedNP = 32770, …WdfDevStatePwrPolSleepingWakeRevertArmWakeNP = 32770, WdfDevStatePwrPolSleepingWakePowerDownFailed = 1308, WdfDevStatePwrPolSleepingWakePowerDownFailedWakeCanceled = 1309, …WdfDevStatePwrPolSystemAsleepWakeArmedNP = 32770, …WdfDevStatePwrPolSystemWakeDeviceWakeEnabledNP = 32770, …WdfDevStatePwrPolSystemWakeDeviceWakeEnabledWakeCanceledNP = 32770, !…WdfDevStatePwrPolSystemWakeDeviceWakeDisarmNP = 32770, "…WdfDevStatePwrPolSystemWakeDeviceWakeTriggeredNP = 32770, #…WdfDevStatePwrPolSystemWakeDeviceWakeTriggeredS0NP = 32770, $…WdfDevStatePwrPolSystemWakeDeviceWokeDisarmNP = 32770, WdfDevStatePwrPolSystemWakeDeviceWakeCompletePowerUp = 1317, WdfDevStatePwrPolSleeping = 1318, WdfDevStatePwrPolSleepingNoWakePowerDown = 1319, WdfDevStatePwrPolSleepingNoWakeCompletePowerDown = 1320, WdfDevStatePwrPolSleepingNoWakeDxRequestFailed = 1321, WdfDevStatePwrPolSleepingWakePowerDown = 1322, WdfDevStatePwrPolSleepingSendWake = 1323, WdfDevStatePwrPolSystemAsleepNoWake = 1324, WdfDevStatePwrPolSystemWakeDeviceWakeDisabled = 1325, WdfDevStatePwrPolSystemWakeDeviceToD0 = 1326, WdfDevStatePwrPolSystemWakeDeviceToD0CompletePowerUp = 1327, WdfDevStatePwrPolSystemWakeQueryIdle = 1328, WdfDevStatePwrPolStartedWakeCapable = 1329, WdfDevStatePwrPolTimerExpiredDecideUsbSS = 1330, WdfDevStatePwrPolTimerExpiredWakeCapablePowerDown = 1331, WdfDevStatePwrPolTimerExpiredWakeCapableSendWake = 1332, WdfDevStatePwrPolTimerExpiredWakeCapableUsbSS = 1333, WdfDevStatePwrPolTimerExpiredWakeCapableWakeArrived = 1334, WdfDevStatePwrPolTimerExpiredWakeCapableCancelWake = 1335, WdfDevStatePwrPolTimerExpiredWakeCapableWakeCanceled = 1336, WdfDevStatePwrPolTimerExpiredWakeCapableCleanup = 1337, WdfDevStatePwrPolTimerExpiredWakeCapableDxAllocFailed = 1338, WdfDevStatePwrPolTimerExpiredWakeCompletedPowerDown = 1339, WdfDevStatePwrPolTimerExpiredWakeCompletedPowerUp = 1340, WdfDevStatePwrPolWaitingArmedUsbSS = 1341, WdfDevStatePwrPolWaitingArmed = 1342, WdfDevStatePwrPolWaitingArmedQueryIdle = 1343, WdfDevStatePwrPolIoPresentArmed = 1344, WdfDevStatePwrPolIoPresentArmedWakeCanceled = 1345, WdfDevStatePwrPolS0WakeDisarm = 1346, WdfDevStatePwrPolS0WakeCompletePowerUp = 1347, WdfDevStatePwrPolTimerExpiredWakeSucceeded = 1348, WdfDevStatePwrPolTimerExpiredWakeCompletedDisarm = 1349, WdfDevStatePwrPolTimerExpiredWakeCapableWakeSucceeded = 1350, WdfDevStatePwrPolTimerExpiredWakeCapableWakeFailed = 1351, WdfDevStatePwrPolWakeFailedUsbSS = 1352, WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownFailedCancelWake = 1353, WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownFailedWakeCanceled = 1354, WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownFailedUsbSS = 1355, WdfDevStatePwrPolCancelingWakeForSystemSleep = 1356, WdfDevStatePwrPolCancelingWakeForSystemSleepWakeCanceled = 1357, WdfDevStatePwrPolDisarmingWakeForSystemSleepCompletePowerUp = 1358, WdfDevStatePwrPolPowerUpForSystemSleepFailed = 1359, WdfDevStatePwrPolWokeFromS0UsbSS = 1360, WdfDevStatePwrPolWokeFromS0 = 1361, WdfDevStatePwrPolWokeFromS0NotifyDriver = 1362, WdfDevStatePwrPolStoppingResetDevice = 1363, WdfDevStatePwrPolStoppingResetDeviceCompletePowerUp = 1364, WdfDevStatePwrPolStoppingResetDeviceFailed = 1365, WdfDevStatePwrPolStoppingD0 = 1366, WdfDevStatePwrPolStoppingD0Failed = 1367, WdfDevStatePwrPolStoppingDisarmWake = 1368, WdfDevStatePwrPolStoppingDisarmWakeCancelWake = 1369, WdfDevStatePwrPolStoppingDisarmWakeWakeCanceled = 1370, WdfDevStatePwrPolStopping = 1371, WdfDevStatePwrPolStoppingFailed = 1372, WdfDevStatePwrPolStoppingSendStatus = 1373, WdfDevStatePwrPolStoppingCancelTimer = 1374, WdfDevStatePwrPolStoppingWaitForIdleTimeout = 1375, WdfDevStatePwrPolStoppingCancelUsbSS = 1376, WdfDevStatePwrPolStoppingWaitForUsbSSCompletion = 1377, WdfDevStatePwrPolStoppingCancelWake = 1378, WdfDevStatePwrPolStopped = 1379, WdfDevStatePwrPolCancelUsbSS = 1380, WdfDevStatePwrPolStarted = 1381, WdfDevStatePwrPolStartedCancelTimer = 1382, WdfDevStatePwrPolStartedWaitForIdleTimeout = 1383, WdfDevStatePwrPolStartedWakeCapableCancelTimerForSleep = 1384, WdfDevStatePwrPolStartedWakeCapableWaitForIdleTimeout = 1385, WdfDevStatePwrPolStartedWakeCapableSleepingUsbSS = 1386, WdfDevStatePwrPolStartedIdleCapableCancelTimerForSleep = 1387, WdfDevStatePwrPolStartedIdleCapableWaitForIdleTimeout = 1388, WdfDevStatePwrPolDeviceD0PowerRequestFailed = 1389, WdfDevStatePwrPolDevicePowerRequestFailed = 1390, WdfDevStatePwrPolGotoDx = 1391, WdfDevStatePwrPolGotoDxInDx = 1392, WdfDevStatePwrPolDx = 1393, WdfDevStatePwrPolGotoD0 = 1394, WdfDevStatePwrPolGotoD0InD0 = 1395, WdfDevStatePwrPolFinal = 1396, WdfDevStatePwrPolSleepingPowerDownNotProcessed = 1397, WdfDevStatePwrPolTimerExpiredWakeCapablePowerDownNotProcessed = 1398, WdfDevStatePwrPolTimerExpiredNoWakePowerDownNotProcessed = 1399, WdfDevStatePwrPolTimerExpiredNoWakePoweredDownDisableIdleTimer = 1400, WdfDevStatePwrPolStoppingWaitingForImplicitPowerDown = 1401, WdfDevStatePwrPolStoppingPoweringUp = 1402, WdfDevStatePwrPolStoppingPoweringDown = 1403, WdfDevStatePwrPolPowerUpForSystemSleepNotSeen = 1404, WdfDevStatePwrPolWaitingArmedStoppingCancelUsbSS = 1405, WdfDevStatePwrPolWaitingArmedWakeFailedCancelUsbSS = 1406, WdfDevStatePwrPolWaitingArmedIoPresentCancelUsbSS = 1407, WdfDevStatePwrPolWaitingArmedWakeSucceededCancelUsbSS = 1408, WdfDevStatePwrPolCancelingUsbSSForSystemSleep = 1409, WdfDevStatePwrPolStoppingD0CancelUsbSS = 1410, WdfDevStatePwrPolStartingPoweredUp = 1411, WdfDevStatePwrPolIdleCapableDeviceIdle = 1412, WdfDevStatePwrPolDeviceIdleReturnToActive = 1413, WdfDevStatePwrPolDeviceIdleSleeping = 1414, WdfDevStatePwrPolDeviceIdleStopping = 1415, WdfDevStatePwrPolTimerExpiredNoWakeUndoPowerDown = 1416, WdfDevStatePwrPolD0RequestFailedCompleteDeviceActive = 1417, WdfDevStatePwrPolPowerRequestFailedCompleteDeviceActive = 1418, WdfDevStatePwrPolS0NoWakeReturnToActive = 1419, WdfDevStatePwrPolS0NoWakePowerUpHardwareStarted = 1420, WdfDevStatePwrPolStoppingResetDeviceReturnToActive = 1421, WdfDevStatePwrPolStoppingResetDeviceHardwareStarted = 1422, WdfDevStatePwrPolStoppingResetDeviceReturnToActiveFailed = 1423, WdfDevStatePwrPolSystemAsleepNoWakeDeviceWaitingUnarmed = 1424, WdfDevStatePwrPolSystemWakeWaitingUnarmedDeviceWakeDisabled = 1425, WdfDevStatePwrPolSystemWakeWaitingUnarmedQueryIdle = 1426, WdfDevStatePwrPolSystemWakeDeviceIdle = 1427, WdfDevStatePwrPolSystemSleepNeedWakeReturnToActive = 1428, WdfDevStatePwrPolSystemSleepNeedWakeHardwareStarted = 1429, WdfDevStatePwrPolSystemSleepNeedWakeD0AllocationFailed = 1430, WdfDevStatePwrPolSystemSleepPowerUpNotSeenReturnToActive = 1431, WdfDevStatePwrPolSystemSleepNeedWakeReturnToActiveFailed = 1432, WdfDevStatePwrPolWakeCapableDeviceIdle = 1433, WdfDevStatePwrPolWakeCapableUsbSSReturnToActive = 1434, WdfDevStatePwrPolWakeCapableUsbSSSleepingReturnToActive = 1435, WdfDevStatePwrPolWakeCapableUsbSSStopping = 1436, WdfDevStatePwrPolWakeCapableUsbSSCompleted = 1437, WdfDevStatePwrPolTimerExpiredWakeCapableUndoPowerDown = 1438, WdfDevStatePwrPolIoPresentArmedReturnToActive = 1439, WdfDevStatePwrPolIoPresentArmedHardwareStarted = 1440, WdfDevStatePwrPolWokeFromS0ReturnToActive = 1441, WdfDevStatePwrPolWokeFromS0HardwareStarted = 1442, WdfDevStatePwrPolTimerExpiredWakeCompletedReturnToActive = 1443, WdfDevStatePwrPolTimerExpiredWakeCompletedHardwareStarted = 1444, WdfDevStatePwrPolCancelingWakeForSystemSleepReturnToActive = 1445, WdfDevStatePwrPolSystemSleepWakeCanceledHardwareStarted = 1446, WdfDevStatePwrPolSystemSleepWakeCanceledReturnToActiveFailed = 1447, WdfDevStatePwrPolStoppingD0ReturnToActive = 1448, WdfDevStatePwrPolStoppingD0HardwareStarted = 1449, WdfDevStatePwrPolStoppingD0ReturnToActiveFailed = 1450, WdfDevStatePwrPolStoppedRemoving = 1451, WdfDevStatePwrPolRemoved = 1452, WdfDevStatePwrPolRestarting = 1453, WdfDevStatePwrPolRestartingFailed = 1454, WdfDevStatePwrPolRestartingPoweredUp = 1455, WdfDevStatePwrPolStartingPoweredUpFailed = 1456, WdfDevStatePwrPolSleepingPoSuspend = 1457, WdfDevStatePwrPolSystemSleepFromWaitingUnarmedPoSuspend = 1458, WdfDevStatePwrPolSystemSleepNeedWakeD0AllocFailedPoSuspend = 1459, WdfDevStatePwrPolStoppingPoSuspend = 1460, WdfDevStatePwrPolSystemWakeDeviceToD0PoweredUpPoResume = 1461, WdfDevStatePwrPolSystemWakeDeviceWaitingUnarmedPoResume = 1462, WdfDevStatePwrPolSystemWakeDeviceWakePoweredUpPoResume = 1463, WdfDevStatePwrPolNull = 1464 }; enum _WDF_DEVICE_IO_TYPE { WdfDeviceIoUndefined = 0, WdfDeviceIoNeither = 1, WdfDeviceIoBuffered = 2, WdfDeviceIoDirect = 3 }; enum DEVICE_REGISTRY_PROPERTY { DevicePropertyDeviceDescription = 0, DevicePropertyHardwareID = 1, DevicePropertyCompatibleIDs = 2, DevicePropertyBootConfiguration = 3, DevicePropertyBootConfigurationTranslated = 4, DevicePropertyClassName = 5, DevicePropertyClassGuid = 6, DevicePropertyDriverKeyName = 7, DevicePropertyManufacturer = 8, DevicePropertyFriendlyName = 9, DevicePropertyLocationInformation = 10, DevicePropertyPhysicalDeviceObjectName = 11, DevicePropertyBusTypeGuid = 12, DevicePropertyLegacyBusType = 13, DevicePropertyBusNumber = 14, DevicePropertyEnumeratorName = 15, DevicePropertyAddress = 16, DevicePropertyUINumber = 17, DevicePropertyInstallState = 18, DevicePropertyRemovalPolicy = 19, DevicePropertyResourceRequirements = 20, DevicePropertyAllocatedResources = 21, DevicePropertyContainerID = 22 }; enum _INTERFACE_TYPE { InterfaceTypeUndefined = -1, Internal = 0, Isa = 1, Eisa = 2, MicroChannel = 3, TurboChannel = 4, PCIBus = 5, VMEBus = 6, NuBus = 7, PCMCIABus = 8, CBus = 9, MPIBus = 10, MPSABus = 11, ProcessorInternal = 12, InternalPowerBus = 13, PNPISABus = 14, PNPBus = 15, Vmcs = 16, ACPIBus = 17, MaximumInterfaceType = 18 }; struct _PNP_BUS_INFORMATION { unsigned char BusTypeGuid[16]; /* +0x0000 27 11 00 00 */ unsigned char LegacyBusType[4]; /* +0x0010 de 14 00 00 */ unsigned long BusNumber; /* +0x0014 */ }; enum _WDF_DEVICE_FAILED_ACTION { WdfDeviceFailedUndefined = 0, WdfDeviceFailedAttemptRestart = 1, WdfDeviceFailedNoRestart = 2 }; struct _WDF_DPC_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char EvtDpcFunc[8]; /* +0x0008 1f 15 00 00 */ unsigned char AutomaticSerialization; /* +0x0010 */ }; struct _WDF_TIMER_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char EvtTimerFunc[8]; /* +0x0008 38 15 00 00 */ unsigned long Period; /* +0x0010 */ unsigned char AutomaticSerialization; /* +0x0014 */ unsigned long TolerableDelay; /* +0x0018 */ }; struct _WDF_WORKITEM_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char EvtWorkItemFunc[8]; /* +0x0008 50 15 00 00 */ unsigned char AutomaticSerialization; /* +0x0010 */ }; struct _WDF_INTERRUPT_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char SpinLock[8]; /* +0x0008 ba 12 00 00 */ unsigned char ShareVector[4]; /* +0x0010 bc 13 00 00 */ unsigned char FloatingSave; /* +0x0014 */ unsigned char AutomaticSerialization; /* +0x0015 */ unsigned char EvtInterruptIsr[8]; /* +0x0018 64 15 00 00 */ unsigned char EvtInterruptDpc[8]; /* +0x0020 67 15 00 00 */ unsigned char EvtInterruptEnable[8]; /* +0x0028 6a 15 00 00 */ unsigned char EvtInterruptDisable[8]; /* +0x0030 6a 15 00 00 */ unsigned char EvtInterruptWorkItem[8]; /* +0x0038 67 15 00 00 */ unsigned char InterruptRaw[8]; /* +0x0040 6c 15 00 00 */ unsigned char InterruptTranslated[8]; /* +0x0048 6c 15 00 00 */ unsigned char WaitLock[8]; /* +0x0050 ac 12 00 00 */ unsigned char PassiveHandling; /* +0x0058 */ }; enum _KINTERRUPT_MODE { LevelSensitive = 0, Latched = 1 }; enum _WDF_INTERRUPT_POLARITY { WdfInterruptPolarityUnknown = 0, WdfInterruptActiveHigh = 1, WdfInterruptActiveLow = 2 }; struct _WDF_INTERRUPT_INFO { unsigned long Size; /* +0x0000 */ unsigned long long Reserved1; /* +0x0008 */ unsigned long long TargetProcessorSet; /* +0x0010 */ unsigned long Reserved2; /* +0x0018 */ unsigned long MessageNumber; /* +0x001c */ unsigned long Vector; /* +0x0020 */ unsigned char Irql; /* +0x0024 */ unsigned char Mode[4]; /* +0x0028 74 15 00 00 */ unsigned char Polarity[4]; /* +0x002c 76 15 00 00 */ unsigned char MessageSignaled; /* +0x0030 */ unsigned char ShareDisposition; /* +0x0031 */ unsigned short Group; /* +0x0038 */ }; enum _WDF_INTERRUPT_POLICY { WdfIrqPolicyMachineDefault = 0, WdfIrqPolicyAllCloseProcessors = 1, WdfIrqPolicyOneCloseProcessor = 2, WdfIrqPolicyAllProcessorsInMachine = 3, WdfIrqPolicySpecifiedProcessors = 4, WdfIrqPolicySpreadMessagesAcrossAllProcessors = 5 }; enum _WDF_INTERRUPT_PRIORITY { WdfIrqPriorityUndefined = 0, WdfIrqPriorityLow = 1, WdfIrqPriorityNormal = 2, WdfIrqPriorityHigh = 3 }; struct _WDF_INTERRUPT_EXTENDED_POLICY { unsigned long Size; /* +0x0000 */ unsigned char Policy[4]; /* +0x0004 7c 15 00 00 */ unsigned char Priority[8]; /* +0x0008 7e 15 00 00 */ unsigned char TargetProcessorSetAndGroup[16]; /* +0x0010 7f 15 00 00 */ }; /* struct { unsigned long Length; +0x0000 unsigned long Alignment; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ enum _IRQ_DEVICE_POLICY { IrqPolicyMachineDefault = 0, IrqPolicyAllCloseProcessors = 1, IrqPolicyOneCloseProcessor = 2, IrqPolicyAllProcessorsInMachine = 3, IrqPolicySpecifiedProcessors = 4, IrqPolicySpreadMessagesAcrossAllProcessors = 5 }; enum _IRQ_PRIORITY { IrqPriorityUndefined = 0, IrqPriorityLow = 1, IrqPriorityNormal = 2, IrqPriorityHigh = 3 }; /* struct { unsigned long MinimumVector; +0x0000 unsigned long MaximumVector; +0x0004 unsigned char AffinityPolicy[4]; +0x0008 c7 15 00 00 unsigned char PriorityPolicy[4]; +0x000c c9 15 00 00 unsigned long long TargetedProcessors; +0x0010 }; */ /* struct { unsigned long MinimumChannel; +0x0000 unsigned long MaximumChannel; +0x0004 }; */ /* struct { unsigned long RequestLine; +0x0000 unsigned long Reserved; +0x0004 unsigned long Channel; +0x0008 unsigned long TransferWidth; +0x000c }; */ /* struct { unsigned char Data[12]; +0x0000 3e 12 00 00 }; */ /* struct { unsigned long Length; +0x0000 unsigned long MinBusNumber; +0x0004 unsigned long MaxBusNumber; +0x0008 unsigned long Reserved; +0x000c }; */ /* struct { unsigned long Priority; +0x0000 unsigned long Reserved1; +0x0004 unsigned long Reserved2; +0x0008 }; */ /* struct { unsigned long Length40; +0x0000 unsigned long Alignment40; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ /* struct { unsigned long Length48; +0x0000 unsigned long Alignment48; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ /* struct { unsigned long Length64; +0x0000 unsigned long Alignment64; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ /* struct { unsigned char Class; +0x0000 unsigned char Type; +0x0001 unsigned char Reserved1; +0x0002 unsigned char Reserved2; +0x0003 unsigned long IdLowPart; +0x0004 unsigned long IdHighPart; +0x0008 }; */ /* struct { /* unsigned char Port[0]; +0x0000 c5 15 00 00 /* unsigned char Memory[0]; +0x0000 c5 15 00 00 /* unsigned char Interrupt[0]; +0x0000 cb 15 00 00 /* unsigned char Dma[0]; +0x0000 cd 15 00 00 /* unsigned char DmaV3[0]; +0x0000 cf 15 00 00 /* unsigned char Generic[0]; +0x0000 c5 15 00 00 /* unsigned char DevicePrivate[0]; +0x0000 d1 15 00 00 /* unsigned char BusNumber[0]; +0x0000 d3 15 00 00 /* unsigned char ConfigData[0]; +0x0000 d5 15 00 00 /* unsigned char Memory40[0]; +0x0000 d7 15 00 00 /* unsigned char Memory48[0]; +0x0000 d9 15 00 00 /* unsigned char Memory64[0]; +0x0000 db 15 00 00 unsigned char Connection[24]; +0x0000 dd 15 00 00 }; */ struct _IO_RESOURCE_DESCRIPTOR { unsigned char Option; /* +0x0000 */ unsigned char Type; /* +0x0001 */ unsigned char ShareDisposition; /* +0x0002 */ unsigned char Spare1; /* +0x0003 */ unsigned short Flags; /* +0x0004 */ unsigned short Spare2; /* +0x0006 */ unsigned char u[24]; /* +0x0008 df 15 00 00 */ }; /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length; +0x0008 }; */ /* struct { unsigned long Level; +0x0000 unsigned long Vector; +0x0004 unsigned long long Affinity; +0x0008 }; */ /* struct { unsigned short Reserved; +0x0000 unsigned short MessageCount; +0x0002 unsigned long Vector; +0x0004 unsigned long long Affinity; +0x0008 }; */ /* struct { /* unsigned char Raw[0]; +0x0000 f9 15 00 00 unsigned char Translated[16]; +0x0000 f7 15 00 00 }; */ /* struct { unsigned long Channel; +0x0000 unsigned long Port; +0x0004 unsigned long Reserved1; +0x0008 }; */ /* struct { unsigned long Channel; +0x0000 unsigned long RequestLine; +0x0004 unsigned long Reserved1; +0x0008 }; */ /* struct { unsigned long Start; +0x0000 unsigned long Length; +0x0004 unsigned long Reserved; +0x0008 }; */ /* struct { unsigned long DataSize; +0x0000 unsigned long Reserved1; +0x0004 unsigned long Reserved2; +0x0008 }; */ /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length40; +0x0008 }; */ /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length48; +0x0008 }; */ /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length64; +0x0008 }; */ /* struct { /* unsigned char Generic[0]; +0x0000 f5 15 00 00 /* unsigned char Port[0]; +0x0000 f5 15 00 00 /* unsigned char Interrupt[0]; +0x0000 f7 15 00 00 /* unsigned char MessageInterrupt[0]; +0x0000 fb 15 00 00 /* unsigned char Memory[0]; +0x0000 f5 15 00 00 /* unsigned char Dma[0]; +0x0000 fd 15 00 00 /* unsigned char DmaV3[0]; +0x0000 ff 15 00 00 /* unsigned char DevicePrivate[0]; +0x0000 d1 15 00 00 /* unsigned char BusNumber[0]; +0x0000 01 16 00 00 /* unsigned char DeviceSpecificData[0]; +0x0000 03 16 00 00 /* unsigned char Memory40[0]; +0x0000 05 16 00 00 /* unsigned char Memory48[0]; +0x0000 07 16 00 00 /* unsigned char Memory64[0]; +0x0000 09 16 00 00 unsigned char Connection[16]; +0x0000 dd 15 00 00 }; */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { unsigned char Type; /* +0x0000 */ unsigned char ShareDisposition; /* +0x0001 */ unsigned short Flags; /* +0x0002 */ unsigned char u[16]; /* +0x0004 0b 16 00 00 */ }; /* struct { unsigned long long Length; +0x0000 unsigned long Key; +0x0008 long long DeviceOffset; +0x0010 }; */ /* struct { unsigned long long OutputBufferLength; +0x0000 unsigned long long InputBufferLength; +0x0008 unsigned long IoControlCode; +0x0010 void *Type3InputBuffer; +0x0018 }; */ /* struct { void *Arg1; +0x0000 void *Arg2; +0x0008 unsigned long IoControlCode; +0x0010 void *Arg4; +0x0018 }; */ /* struct { /* unsigned char Create[0]; +0x0000 ef 10 00 00 /* unsigned char Read[0]; +0x0000 1f 16 00 00 /* unsigned char Write[0]; +0x0000 1f 16 00 00 /* unsigned char DeviceIoControl[0]; +0x0000 21 16 00 00 unsigned char Others[32]; +0x0000 23 16 00 00 }; */ struct _WDF_REQUEST_PARAMETERS { unsigned short Size; /* +0x0000 */ unsigned char MinorFunction; /* +0x0002 */ unsigned char Type[4]; /* +0x0004 f4 14 00 00 */ unsigned char Parameters[32]; /* +0x0008 25 16 00 00 */ }; /* struct { unsigned char Buffer[8]; +0x0000 26 13 00 00 unsigned long long Length; +0x0008 unsigned long long Offset; +0x0010 }; */ /* struct { unsigned char Buffer[8]; +0x0000 26 13 00 00 unsigned long long Offset; +0x0008 }; */ /* struct { unsigned char Buffer[8]; +0x0000 26 13 00 00 unsigned long long Offset; +0x0008 unsigned long long Length; +0x0010 }; */ /* struct { unsigned long IoControlCode; +0x0000 unsigned char Input[16]; +0x0008 2d 16 00 00 unsigned char Output[24]; +0x0018 2f 16 00 00 }; */ /* struct { void *Ptr; +0x0000 unsigned long long Value; +0x0000 }; */ /* struct { unsigned char Argument1[8]; +0x0000 33 16 00 00 unsigned char Argument2[8]; +0x0008 33 16 00 00 unsigned char Argument3[8]; +0x0010 33 16 00 00 unsigned char Argument4[8]; +0x0018 33 16 00 00 }; */ /* struct { unsigned char Completion[8]; +0x0000 37 16 00 00 }; */ /* struct { /* unsigned char Write[0]; +0x0000 2b 16 00 00 /* unsigned char Read[0]; +0x0000 2b 16 00 00 /* unsigned char Ioctl[0]; +0x0000 31 16 00 00 /* unsigned char Others[0]; +0x0000 35 16 00 00 unsigned char Usb[48]; +0x0000 39 16 00 00 }; */ struct _WDF_REQUEST_COMPLETION_PARAMS { unsigned long Size; /* +0x0000 */ unsigned char Type[4]; /* +0x0004 f4 14 00 00 */ unsigned char IoStatus[16]; /* +0x0008 d0 10 00 00 */ unsigned char Parameters[48]; /* +0x0018 3b 16 00 00 */ }; enum _WDF_REQUEST_TYPE { WdfRequestTypeCreate = 0, WdfRequestTypeCreateNamedPipe = 1, WdfRequestTypeClose = 2, WdfRequestTypeRead = 3, WdfRequestTypeWrite = 4, WdfRequestTypeQueryInformation = 5, WdfRequestTypeSetInformation = 6, WdfRequestTypeQueryEA = 7, WdfRequestTypeSetEA = 8, WdfRequestTypeFlushBuffers = 9, WdfRequestTypeQueryVolumeInformation = 10, WdfRequestTypeSetVolumeInformation = 11, WdfRequestTypeDirectoryControl = 12, WdfRequestTypeFileSystemControl = 13, WdfRequestTypeDeviceControl = 14, WdfRequestTypeDeviceControlInternal = 15, WdfRequestTypeShutdown = 16, WdfRequestTypeLockControl = 17, WdfRequestTypeCleanup = 18, WdfRequestTypeCreateMailSlot = 19, WdfRequestTypeQuerySecurity = 20, WdfRequestTypeSetSecurity = 21, WdfRequestTypePower = 22, WdfRequestTypeSystemControl = 23, WdfRequestTypeDeviceChange = 24, WdfRequestTypeQueryQuota = 25, WdfRequestTypeSetQuota = 26, WdfRequestTypePnp = 27, WdfRequestTypeOther = 28, WdfRequestTypeUsb = 64, WdfRequestTypeNoFormat = 255, WdfRequestTypeMax = 256 }; struct _WDF_REQUEST_REUSE_PARAMS { unsigned long Size; /* +0x0000 */ unsigned long Flags; /* +0x0004 */ long Status; /* +0x0008 */ unsigned char NewIrp[8]; /* +0x0010 cd 10 00 00 */ }; struct _WDF_REQUEST_SEND_OPTIONS { unsigned long Size; /* +0x0000 */ unsigned long Flags; /* +0x0004 */ long long Timeout; /* +0x0008 */ }; enum _WDF_IO_TARGET_OPEN_TYPE { WdfIoTargetOpenUndefined = 0, WdfIoTargetOpenUseExistingDevice = 1, WdfIoTargetOpenByName = 2, WdfIoTargetOpenReopen = 3 }; struct _WDF_IO_TARGET_OPEN_PARAMS { unsigned long Size; /* +0x0000 */ unsigned char Type[4]; /* +0x0004 a9 16 00 00 */ unsigned char EvtIoTargetQueryRemove[8]; /* +0x0008 ac 16 00 00 */ unsigned char EvtIoTargetRemoveCanceled[8]; /* +0x0010 ae 16 00 00 */ unsigned char EvtIoTargetRemoveComplete[8]; /* +0x0018 ae 16 00 00 */ unsigned char TargetDeviceObject[8]; /* +0x0020 da 10 00 00 */ unsigned char TargetFileObject[8]; /* +0x0028 e3 10 00 00 */ unsigned char TargetDeviceName[16]; /* +0x0030 36 10 00 00 */ unsigned long DesiredAccess; /* +0x0040 */ unsigned long ShareAccess; /* +0x0044 */ unsigned long FileAttributes; /* +0x0048 */ unsigned long CreateDisposition; /* +0x004c */ unsigned long CreateOptions; /* +0x0050 */ void *EaBuffer; /* +0x0058 */ unsigned long EaBufferLength; /* +0x0060 */ long long *AllocationSize; /* +0x0068 */ unsigned long FileInformation; /* +0x0070 */ }; enum _WDF_IO_TARGET_SENT_IO_ACTION { WdfIoTargetSentIoUndefined = 0, WdfIoTargetCancelSentIo = 1, WdfIoTargetWaitForSentIoToComplete = 2, WdfIoTargetLeaveSentIoPending = 3 }; enum _WDF_IO_TARGET_PURGE_IO_ACTION { WdfIoTargetPurgeIoUndefined = 0, WdfIoTargetPurgeIoAndWait = 1, WdfIoTargetPurgeIo = 2 }; enum _WDF_IO_TARGET_STATE { WdfIoTargetStateUndefined = 0, WdfIoTargetStarted = 1, WdfIoTargetStopped = 2, WdfIoTargetClosedForQueryRemove = 3, WdfIoTargetClosed = 4, WdfIoTargetDeleted = 5, WdfIoTargetPurged = 6 }; enum _WDF_IO_QUEUE_STATE { WdfIoQueueAcceptRequests = 1, WdfIoQueueDispatchRequests = 2, WdfIoQueueNoRequests = 4, WdfIoQueueDriverNoRequests = 8, WdfIoQueuePnpHeld = 16 }; enum _WDF_IO_QUEUE_DISPATCH_TYPE { WdfIoQueueDispatchInvalid = 0, WdfIoQueueDispatchSequential = 1, WdfIoQueueDispatchParallel = 2, WdfIoQueueDispatchManual = 3, WdfIoQueueDispatchMax = 4 }; /* struct { unsigned long NumberOfPresentedRequests; +0x0000 }; */ /* struct { unsigned char Parallel[4]; +0x0000 07 17 00 00 }; */ struct _WDF_IO_QUEUE_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char DispatchType[4]; /* +0x0004 f9 16 00 00 */ unsigned char PowerManaged[4]; /* +0x0008 bc 13 00 00 */ unsigned char AllowZeroLengthRequests; /* +0x000c */ unsigned char DefaultQueue; /* +0x000d */ unsigned char EvtIoDefault[8]; /* +0x0010 fc 16 00 00 */ unsigned char EvtIoRead[8]; /* +0x0018 ff 16 00 00 */ unsigned char EvtIoWrite[8]; /* +0x0020 ff 16 00 00 */ unsigned char EvtIoDeviceControl[8]; /* +0x0028 02 17 00 00 */ unsigned char EvtIoInternalDeviceControl[8]; /* +0x0030 02 17 00 00 */ unsigned char EvtIoStop[8]; /* +0x0038 05 17 00 00 */ unsigned char EvtIoResume[8]; /* +0x0040 fc 16 00 00 */ unsigned char EvtIoCanceledOnQueue[8]; /* +0x0048 fc 16 00 00 */ unsigned char Settings[8]; /* +0x0050 09 17 00 00 */ unsigned char Driver[8]; /* +0x0058 7f 12 00 00 */ }; enum _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY { WdfIoForwardProgressInvalidPolicy = 0, WdfIoForwardProgressReservedPolicyAlwaysUseReservedRequest = 1, WdfIoForwardProgressReservedPolicyUseExamine = 2, WdfIoForwardProgressReservedPolicyPagingIO = 3 }; struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY { unsigned long Size; /* +0x0000 */ unsigned long TotalForwardProgressRequests; /* +0x0004 */ unsigned char ForwardProgressReservedPolicy[8]; /* +0x0008 10 17 00 00 */ unsigned char ForwardProgressReservePolicySettings[8]; /* +0x0010 11 17 00 00 */ unsigned char EvtIoAllocateResourcesForReservedRequest[8]; /* +0x0018 13 17 00 00 */ unsigned char EvtIoAllocateRequestResources[8]; /* +0x0020 13 17 00 00 */ }; enum _WDF_IO_FORWARD_PROGRESS_ACTION { WdfIoForwardProgressActionInvalid = 0, WdfIoForwardProgressActionFailRequest = 1, WdfIoForwardProgressActionUseReservedRequest = 2 }; struct _WDF_FDO_EVENT_CALLBACKS { unsigned long Size; /* +0x0000 */ unsigned char EvtDeviceFilterAddResourceRequirements[8]; /* +0x0008 44 17 00 00 */ unsigned char EvtDeviceFilterRemoveResourceRequirements[8]; /* +0x0010 44 17 00 00 */ unsigned char EvtDeviceRemoveAddedResources[8]; /* +0x0018 dc 13 00 00 */ }; struct _WDF_PDO_EVENT_CALLBACKS { unsigned long Size; /* +0x0000 */ unsigned char EvtDeviceResourcesQuery[8]; /* +0x0008 df 13 00 00 */ unsigned char EvtDeviceResourceRequirementsQuery[8]; /* +0x0010 44 17 00 00 */ unsigned char EvtDeviceEject[8]; /* +0x0018 c9 13 00 00 */ unsigned char EvtDeviceSetLock[8]; /* +0x0020 67 17 00 00 */ unsigned char EvtDeviceEnableWakeAtBus[8]; /* +0x0028 6a 17 00 00 */ unsigned char EvtDeviceDisableWakeAtBus[8]; /* +0x0030 cb 13 00 00 */ unsigned char EvtDeviceReportedMissing[8]; /* +0x0038 cb 13 00 00 */ }; enum _WDF_WMI_PROVIDER_CONTROL { WdfWmiControlInvalid = 0, WdfWmiEventControl = 1, WdfWmiInstanceControl = 2 }; struct _WDF_WMI_PROVIDER_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char Guid[16]; /* +0x0004 27 11 00 00 */ unsigned long Flags; /* +0x0014 */ unsigned long MinInstanceBufferSize; /* +0x0018 */ unsigned char EvtWmiProviderFunctionControl[8]; /* +0x0020 8f 17 00 00 */ }; struct _WDF_WMI_INSTANCE_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char Provider[8]; /* +0x0008 8a 17 00 00 */ unsigned char ProviderConfig[8]; /* +0x0010 88 17 00 00 */ unsigned char UseContextForQuery; /* +0x0018 */ unsigned char Register; /* +0x0019 */ unsigned char EvtWmiInstanceQueryInstance[8]; /* +0x0020 98 17 00 00 */ unsigned char EvtWmiInstanceSetInstance[8]; /* +0x0028 9b 17 00 00 */ unsigned char EvtWmiInstanceSetItem[8]; /* +0x0030 9e 17 00 00 */ unsigned char EvtWmiInstanceExecuteMethod[8]; /* +0x0038 a1 17 00 00 */ }; enum _WDF_DMA_PROFILE { WdfDmaProfileInvalid = 0, WdfDmaProfilePacket = 1, WdfDmaProfileScatterGather = 2, WdfDmaProfilePacket64 = 3, WdfDmaProfileScatterGather64 = 4, WdfDmaProfileScatterGatherDuplex = 5, WdfDmaProfileScatterGather64Duplex = 6, WdfDmaProfileSystem = 7, WdfDmaProfileSystemDuplex = 8 }; struct _WDF_DMA_ENABLER_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char Profile[4]; /* +0x0004 00 18 00 00 */ unsigned long long MaximumLength; /* +0x0008 */ unsigned char EvtDmaEnablerFill[8]; /* +0x0010 05 18 00 00 */ unsigned char EvtDmaEnablerFlush[8]; /* +0x0018 05 18 00 00 */ unsigned char EvtDmaEnablerDisable[8]; /* +0x0020 05 18 00 00 */ unsigned char EvtDmaEnablerEnable[8]; /* +0x0028 05 18 00 00 */ unsigned char EvtDmaEnablerSelfManagedIoStart[8]; /* +0x0030 05 18 00 00 */ unsigned char EvtDmaEnablerSelfManagedIoStop[8]; /* +0x0038 05 18 00 00 */ unsigned long AddressWidthOverride; /* +0x0040 */ unsigned long WdmDmaVersionOverride; /* +0x0044 */ unsigned long Flags; /* +0x0048 */ }; enum _DMA_WIDTH { Width8Bits = 0, Width16Bits = 1, Width32Bits = 2, Width64Bits = 3, WidthNoWrap = 4, MaximumDmaWidth = 5 }; struct _WDF_DMA_SYSTEM_PROFILE_CONFIG { unsigned long Size; /* +0x0000 */ unsigned char DemandMode; /* +0x0004 */ unsigned char LoopedTransfer; /* +0x0005 */ unsigned char DmaWidth[8]; /* +0x0008 0c 18 00 00 */ unsigned char DeviceAddress[8]; /* +0x0010 42 10 00 00 */ unsigned char DmaDescriptor[8]; /* +0x0018 6c 15 00 00 */ }; enum _WDF_DMA_DIRECTION { WdfDmaDirectionReadFromDevice = 0, WdfDmaDirectionWriteToDevice = 1 }; struct _WDF_COMMON_BUFFER_CONFIG { unsigned long Size; /* +0x0000 */ unsigned long AlignmentRequirement; /* +0x0004 */ }; /* struct { /* unsigned char Recipient[0]; +0x0000 ff 18 00 00 /* unsigned char Reserved[0]; +0x0000 00 19 00 00 /* unsigned char Type[0]; +0x0000 01 19 00 00 unsigned char Dir[1]; +0x0000 02 19 00 00 }; */ /* struct { /* unsigned char Request[0]; +0x0000 04 19 00 00 unsigned char Byte; +0x0000 }; */ /* struct { unsigned char LowByte; +0x0000 unsigned char HiByte; +0x0001 }; */ /* struct { /* unsigned char Bytes[0]; +0x0000 08 19 00 00 unsigned short Value; +0x0000 }; */ /* struct { unsigned char bm[1]; +0x0000 06 19 00 00 unsigned char bRequest; +0x0001 unsigned char wValue[2]; +0x0002 0a 19 00 00 unsigned char wIndex[2]; +0x0004 0a 19 00 00 unsigned short wLength; +0x0006 }; */ /* struct { unsigned char Bytes[8]; +0x0000 71 12 00 00 }; */ struct _WDF_USB_CONTROL_SETUP_PACKET { /* unsigned char Packet[0]; +0x0000 0c 19 00 00 */ unsigned char Generic[8]; /* +0x0000 0e 19 00 00 */ }; enum _WDF_USB_BMREQUEST_DIRECTION { BmRequestHostToDevice = 0, BmRequestDeviceToHost = 1 }; enum _WDF_USB_BMREQUEST_RECIPIENT { BmRequestToDevice = 0, BmRequestToInterface = 1, BmRequestToEndpoint = 2, BmRequestToOther = 3 }; struct _WDF_USB_CONTINUOUS_READER_CONFIG { unsigned long Size; /* +0x0000 */ unsigned long long TransferLength; /* +0x0008 */ unsigned long long HeaderLength; /* +0x0010 */ unsigned long long TrailerLength; /* +0x0018 */ unsigned char NumPendingReads; /* +0x0020 */ unsigned char BufferAttributes[8]; /* +0x0028 87 12 00 00 */ unsigned char EvtUsbTargetPipeReadComplete[8]; /* +0x0030 1b 19 00 00 */ void *EvtUsbTargetPipeReadCompleteContext; /* +0x0038 */ unsigned char EvtUsbTargetPipeReadersFailed[8]; /* +0x0040 1e 19 00 00 */ }; struct _WDF_USB_DEVICE_INFORMATION { unsigned long Size; /* +0x0000 */ unsigned char UsbdVersionInformation[8]; /* +0x0004 27 19 00 00 */ unsigned long HcdPortCapabilities; /* +0x000c */ unsigned long Traits; /* +0x0010 */ }; enum _WdfUsbTargetDeviceSelectConfigType { WdfUsbTargetDeviceSelectConfigTypeInvalid = 0, WdfUsbTargetDeviceSelectConfigTypeDeconfig = 1, WdfUsbTargetDeviceSelectConfigTypeSingleInterface = 2, WdfUsbTargetDeviceSelectConfigTypeMultiInterface = 3, WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs = 4, WdfUsbTargetDeviceSelectConfigTypeInterfacesDescriptor = 5, WdfUsbTargetDeviceSelectConfigTypeUrb = 6 }; /* struct { unsigned char ConfigurationDescriptor[8]; +0x0000 2f 19 00 00 unsigned char InterfaceDescriptors[8]; +0x0008 32 19 00 00 unsigned long NumInterfaceDescriptors; +0x0010 }; */ /* struct { unsigned char Urb[8]; +0x0000 36 19 00 00 }; */ /* struct { unsigned char NumberConfiguredPipes; +0x0000 unsigned char ConfiguredUsbInterface[8]; +0x0008 3a 19 00 00 }; */ /* struct { unsigned char NumberInterfaces; +0x0000 unsigned char Pairs[8]; +0x0008 3e 19 00 00 unsigned char NumberOfConfiguredInterfaces; +0x0010 }; */ /* struct { /* unsigned char Descriptor[0]; +0x0000 34 19 00 00 /* unsigned char Urb[0]; +0x0000 38 19 00 00 /* unsigned char SingleInterface[0]; +0x0000 3c 19 00 00 unsigned char MultiInterface[24]; +0x0000 40 19 00 00 }; */ struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS { unsigned long Size; /* +0x0000 */ unsigned char Type[4]; /* +0x0004 2d 19 00 00 */ unsigned char Types[24]; /* +0x0008 42 19 00 00 */ }; struct _WDF_USB_INTERFACE_SETTING_PAIR { unsigned char UsbInterface[8]; /* +0x0000 3a 19 00 00 */ unsigned char SettingIndex; /* +0x0008 */ }; struct _USB_CONFIGURATION_DESCRIPTOR { unsigned char bLength; /* +0x0000 */ unsigned char bDescriptorType; /* +0x0001 */ unsigned short wTotalLength; /* +0x0002 */ unsigned char bNumInterfaces; /* +0x0004 */ unsigned char bConfigurationValue; /* +0x0005 */ unsigned char iConfiguration; /* +0x0006 */ unsigned char bmAttributes; /* +0x0007 */ unsigned char MaxPower; /* +0x0008 */ }; struct _USB_INTERFACE_DESCRIPTOR { unsigned char bLength; /* +0x0000 */ unsigned char bDescriptorType; /* +0x0001 */ unsigned char bInterfaceNumber; /* +0x0002 */ unsigned char bAlternateSetting; /* +0x0003 */ unsigned char bNumEndpoints; /* +0x0004 */ unsigned char bInterfaceClass; /* +0x0005 */ unsigned char bInterfaceSubClass; /* +0x0006 */ unsigned char bInterfaceProtocol; /* +0x0007 */ unsigned char iInterface; /* +0x0008 */ }; struct _URB { /* unsigned char UrbHeader[0]; +0x0000 50 19 00 00 */ /* unsigned char UrbSelectInterface[0]; +0x0000 51 19 00 00 */ /* unsigned char UrbSelectConfiguration[0]; +0x0000 52 19 00 00 */ /* unsigned char UrbPipeRequest[0]; +0x0000 53 19 00 00 */ /* unsigned char UrbFrameLengthControl[0]; +0x0000 54 19 00 00 */ /* unsigned char UrbGetFrameLength[0]; +0x0000 55 19 00 00 */ /* unsigned char UrbSetFrameLength[0]; +0x0000 56 19 00 00 */ /* unsigned char UrbGetCurrentFrameNumber[0]; +0x0000 57 19 00 00 */ /* unsigned char UrbControlTransfer[0]; +0x0000 58 19 00 00 */ /* unsigned char UrbControlTransferEx[0]; +0x0000 59 19 00 00 */ /* unsigned char UrbBulkOrInterruptTransfer[0]; +0x0000 5a 19 00 00 */ /* unsigned char UrbIsochronousTransfer[0]; +0x0000 5b 19 00 00 */ /* unsigned char UrbControlDescriptorRequest[0]; +0x0000 5c 19 00 00 */ /* unsigned char UrbControlGetStatusRequest[0]; +0x0000 5d 19 00 00 */ /* unsigned char UrbControlFeatureRequest[0]; +0x0000 5e 19 00 00 */ /* unsigned char UrbControlVendorClassRequest[0]; +0x0000 5f 19 00 00 */ /* unsigned char UrbControlGetInterfaceRequest[0]; +0x0000 60 19 00 00 */ /* unsigned char UrbControlGetConfigurationRequest[0]; +0x0000 61 19 00 00 */ /* unsigned char UrbOSFeatureDescriptorRequest[0]; +0x0000 62 19 00 00 */ unsigned char UrbOpenStaticStreams[152]; /* +0x0000 63 19 00 00 */ }; enum _WdfUsbTargetDeviceSelectSettingType { WdfUsbInterfaceSelectSettingTypeDescriptor = 16, WdfUsbInterfaceSelectSettingTypeSetting = 17, WdfUsbInterfaceSelectSettingTypeUrb = 18 }; /* struct { unsigned char InterfaceDescriptor[8]; +0x0000 31 19 00 00 }; */ /* struct { unsigned char SettingIndex; +0x0000 }; */ /* struct { /* unsigned char Descriptor[0]; +0x0000 6b 19 00 00 /* unsigned char Interface[0]; +0x0000 6d 19 00 00 unsigned char Urb[8]; +0x0000 38 19 00 00 }; */ struct _WDF_USB_INTERFACE_SELECT_SETTING_PARAMS { unsigned long Size; /* +0x0000 */ unsigned char Type[4]; /* +0x0004 69 19 00 00 */ unsigned char Types[8]; /* +0x0008 6f 19 00 00 */ }; enum _WDF_USB_PIPE_TYPE { WdfUsbPipeTypeInvalid = 0, WdfUsbPipeTypeControl = 1, WdfUsbPipeTypeIsochronous = 2, WdfUsbPipeTypeBulk = 3, WdfUsbPipeTypeInterrupt = 4 }; struct _WDF_USB_PIPE_INFORMATION { unsigned long Size; /* +0x0000 */ unsigned long MaximumPacketSize; /* +0x0004 */ unsigned char EndpointAddress; /* +0x0008 */ unsigned char Interval; /* +0x0009 */ unsigned char SettingIndex; /* +0x000a */ unsigned char PipeType[4]; /* +0x000c 77 19 00 00 */ unsigned long MaximumTransferSize; /* +0x0010 */ }; struct _WDF_USBTARGET_DEVICE_CONFIG { unsigned long Size; /* +0x0000 */ unsigned long USBDClientContractVersion; /* +0x0004 */ }; struct _USB_DEVICE_DESCRIPTOR { unsigned char bLength; /* +0x0000 */ unsigned char bDescriptorType; /* +0x0001 */ unsigned short bcdUSB; /* +0x0002 */ unsigned char bDeviceClass; /* +0x0004 */ unsigned char bDeviceSubClass; /* +0x0005 */ unsigned char bDeviceProtocol; /* +0x0006 */ unsigned char bMaxPacketSize0; /* +0x0007 */ unsigned short idVendor; /* +0x0008 */ unsigned short idProduct; /* +0x000a */ unsigned short bcdDevice; /* +0x000c */ unsigned char iManufacturer; /* +0x000e */ unsigned char iProduct; /* +0x000f */ unsigned char iSerialNumber; /* +0x0010 */ unsigned char bNumConfigurations; /* +0x0011 */ }; struct _RECORDER_CONFIGURE_PARAMS { unsigned long Size; /* +0x0000 */ unsigned char CreateDefaultLog; /* +0x0004 */ }; struct _RECORDER_LOG_CREATE_PARAMS { unsigned long Size; /* +0x0000 */ unsigned char LogIdentifier[16]; /* +0x0004 03 1a 00 00 */ unsigned long LogTag; /* +0x0014 */ unsigned long TotalBufferSize; /* +0x0018 */ unsigned long ErrorPartitionSize; /* +0x001c */ }; struct _USBD_STREAM_INFORMATION { void *PipeHandle; /* +0x0000 */ unsigned long StreamID; /* +0x0008 */ unsigned long MaximumTransferSize; /* +0x000c */ unsigned long PipeFlags; /* +0x0010 */ }; struct _COMPOSITE_DEVICE_CAPABILITIES { /* unsigned char CapabilityFunctionSuspend[0]; +0x0000 11 1a 00 00 */ unsigned char Reserved[4]; /* +0x0000 12 1a 00 00 */ }; struct _UCX_GLOBALS { unsigned long Size; /* +0x0000 */ }; struct _UCX_CONTROLLER_CONFIG { unsigned long Size; /* +0x0000 */ unsigned long NumberOfPresentedDeviceMgmtEvtCallbacks; /* +0x0004 */ unsigned char EvtControllerQueryUsbCapability[8]; /* +0x0008 22 1a 00 00 */ unsigned char EvtControllerGetBandwidthInformation[8]; /* +0x0010 25 1a 00 00 */ unsigned char EvtControllerGetCurrentFrameNumber[8]; /* +0x0018 28 1a 00 00 */ unsigned char EvtControllerUsbDeviceAdd[8]; /* +0x0020 2f 1a 00 00 */ unsigned char EvtControllerReset[8]; /* +0x0028 31 1a 00 00 */ unsigned char EvtControllerGetDumpData[8]; /* +0x0030 3a 1a 00 00 */ unsigned char EvtControllerFreeDumpData[8]; /* +0x0038 3d 1a 00 00 */ unsigned char IsValidPciIds; /* +0x0040 */ unsigned char IsValidPciBusAddress; /* +0x0041 */ unsigned long PciVendorId; /* +0x0044 */ unsigned long PciDeviceId; /* +0x0048 */ unsigned long PciRevisionId; /* +0x004c */ unsigned long PciBusNumber; /* +0x0050 */ unsigned long PciDeviceNumber; /* +0x0054 */ unsigned long PciFunctionNumber; /* +0x0058 */ unsigned char DeviceDescription[44]; /* +0x005c 3e 1a 00 00 */ }; enum UCX_CONTROLLER_STATE { UcxControllerStateLost = 0, UcxControllerStatePreserved = 1 }; struct _UCX_CONTROLLER_RESET_COMPLETE_INFO { unsigned long Size; /* +0x0000 */ unsigned char UcxControllerState[4]; /* +0x0004 52 1a 00 00 */ unsigned char UcxCoordinated; /* +0x0008 */ }; struct _UCX_ROOTHUB_CONFIG { unsigned long Size; /* +0x0000 */ unsigned long NumberOfPresentedControlUrbCallbacks; /* +0x0004 */ unsigned char EvtRootHubClearHubFeature[8]; /* +0x0008 5f 1a 00 00 */ unsigned char EvtRootHubClearPortFeature[8]; /* +0x0010 5f 1a 00 00 */ unsigned char EvtRootHubGetHubStatus[8]; /* +0x0018 5f 1a 00 00 */ unsigned char EvtRootHubGetPortStatus[8]; /* +0x0020 5f 1a 00 00 */ unsigned char EvtRootHubSetHubFeature[8]; /* +0x0028 5f 1a 00 00 */ unsigned char EvtRootHubSetPortFeature[8]; /* +0x0030 5f 1a 00 00 */ unsigned char EvtRootHubGetPortErrorCount[8]; /* +0x0038 5f 1a 00 00 */ unsigned char EvtRootHubControlUrb[8]; /* +0x0040 5f 1a 00 00 */ unsigned char EvtRootHubInterruptTx[8]; /* +0x0048 62 1a 00 00 */ unsigned char EvtRootHubGetInfo[8]; /* +0x0050 5f 1a 00 00 */ unsigned char EvtRootHubGet20PortInfo[8]; /* +0x0058 5f 1a 00 00 */ unsigned char EvtRootHubGet30PortInfo[8]; /* +0x0060 5f 1a 00 00 */ unsigned char WdfRequestAttributes[56]; /* +0x0068 86 12 00 00 */ }; struct _UCX_USBDEVICE_EVENT_CALLBACKS { unsigned long Size; /* +0x0000 */ unsigned char EvtUsbDeviceEndpointsConfigure[8]; /* +0x0008 77 1a 00 00 */ unsigned char EvtUsbDeviceEnable[8]; /* +0x0010 77 1a 00 00 */ unsigned char EvtUsbDeviceDisable[8]; /* +0x0018 77 1a 00 00 */ unsigned char EvtUsbDeviceReset[8]; /* +0x0020 77 1a 00 00 */ unsigned char EvtUsbDeviceAddress[8]; /* +0x0028 77 1a 00 00 */ unsigned char EvtUsbDeviceUpdate[8]; /* +0x0030 77 1a 00 00 */ unsigned char EvtUsbDeviceHubInfo[8]; /* +0x0038 77 1a 00 00 */ unsigned char EvtUsbDeviceDefaultEndpointAdd[8]; /* +0x0040 7c 1a 00 00 */ unsigned char EvtUsbDeviceEndpointAdd[8]; /* +0x0048 83 1a 00 00 */ }; struct _UCX_ENDPOINT_EVENT_CALLBACKS { unsigned long Size; /* +0x0000 */ unsigned char EvtEndpointPurge[8]; /* +0x0008 9b 1a 00 00 */ unsigned char EvtEndpointStart[8]; /* +0x0010 9b 1a 00 00 */ unsigned char EvtEndpointAbort[8]; /* +0x0018 9b 1a 00 00 */ unsigned char EvtEndpointReset[8]; /* +0x0020 9e 1a 00 00 */ unsigned char EvtEndpointOkToCancelTransfers[8]; /* +0x0028 a1 1a 00 00 */ unsigned char EvtEndpointStaticStreamsAdd[8]; /* +0x0030 a6 1a 00 00 */ unsigned char EvtEndpointStaticStreamsEnable[8]; /* +0x0038 ab 1a 00 00 */ unsigned char EvtEndpointStaticStreamsDisable[8]; /* +0x0040 ab 1a 00 00 */ unsigned char EvtEndpointEnableForwardProgress[8]; /* +0x0048 ae 1a 00 00 */ }; struct _UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS { unsigned long Size; /* +0x0000 */ unsigned char EvtEndpointPurge[8]; /* +0x0008 9b 1a 00 00 */ unsigned char EvtEndpointStart[8]; /* +0x0010 9b 1a 00 00 */ unsigned char EvtEndpointAbort[8]; /* +0x0018 9b 1a 00 00 */ unsigned char EvtEndpointOkToCancelTransfers[8]; /* +0x0020 a1 1a 00 00 */ unsigned char EvtDefaultEndpointUpdate[8]; /* +0x0028 77 1a 00 00 */ unsigned char EvtEndpointEnableForwardProgress[8]; /* +0x0030 ae 1a 00 00 */ }; struct _STREAM_INFO { unsigned long Size; /* +0x0000 */ unsigned char WdfQueue[8]; /* +0x0008 37 14 00 00 */ unsigned long StreamId; /* +0x0010 */ }; struct _MCGEN_TRACE_CONTEXT { unsigned long long RegistrationHandle; /* +0x0000 */ unsigned long long Logger; /* +0x0008 */ unsigned long long MatchAnyKeyword; /* +0x0010 */ unsigned long long MatchAllKeyword; /* +0x0018 */ unsigned long Flags; /* +0x0020 */ unsigned long IsEnabled; /* +0x0024 */ unsigned char Level; /* +0x0028 */ unsigned char Reserve; /* +0x0029 */ unsigned short EnableBitsCount; /* +0x002a */ unsigned long *EnableBitMask; /* +0x0030 */ unsigned char EnableKeyWords[8]; /* +0x0038 61 10 00 00 */ unsigned char EnableLevel[8]; /* +0x0040 5c 10 00 00 */ }; struct _EVENT_FILTER_DESCRIPTOR { unsigned long long Ptr; /* +0x0000 */ unsigned long Size; /* +0x0008 */ unsigned long Type; /* +0x000c */ }; struct _WDFDRIVER_USBXHCI_CONTEXT { unsigned char ControllerListHead[16]; /* +0x0000 1f 10 00 00 */ unsigned long long ControllerListLock; /* +0x0010 */ unsigned long ControllerListCount; /* +0x0018 */ }; struct _DEVICE_DATA { unsigned char UsbXhciTriageInfo[8]; /* +0x0000 0a 1b 00 00 */ unsigned char ControllerData[8]; /* +0x0008 0c 1b 00 00 */ unsigned char RecorderLog[8]; /* +0x0010 0e 1b 00 00 */ }; struct _TELEMETRY_DATA { long WorkItemPending; /* +0x0000 */ unsigned long long BugCheckParam1; /* +0x0008 */ unsigned long long BugCheckParam2; /* +0x0010 */ unsigned long long BugCheckParam3; /* +0x0018 */ unsigned long long BugCheckParam4; /* +0x0020 */ unsigned char ControllerData[456]; /* +0x0028 0b 1b 00 00 */ }; struct _CONTROLLER_DATA { unsigned char WdfDevice[8]; /* +0x0000 0e 13 00 00 */ unsigned char UcxController[8]; /* +0x0008 1f 1a 00 00 */ unsigned char ControllerListEntry[16]; /* +0x0010 1f 10 00 00 */ unsigned long long DeviceListLock; /* +0x0020 */ unsigned char DeviceListHead[16]; /* +0x0028 1f 10 00 00 */ unsigned long DeviceListCount; /* +0x0038 */ unsigned char RecorderLog[8]; /* +0x0040 0e 1b 00 00 */ unsigned char IoControlHandle[8]; /* +0x0048 17 1b 00 00 */ unsigned char RegisterHandle[8]; /* +0x0050 19 1b 00 00 */ unsigned char CommonBufferHandle[8]; /* +0x0058 1b 1b 00 00 */ unsigned char InterrupterHandle[8]; /* +0x0060 1d 1b 00 00 */ unsigned char DeviceSlotHandle[8]; /* +0x0068 1f 1b 00 00 */ unsigned char CommandHandle[8]; /* +0x0070 21 1b 00 00 */ unsigned char RootHubHandle[8]; /* +0x0078 23 1b 00 00 */ unsigned char PciCommonConfig[256]; /* +0x0080 24 1b 00 00 */ unsigned long PciBusNumber; /* +0x0180 */ unsigned short PciDeviceNumber; /* +0x0184 */ unsigned short PciFunctionNumber; /* +0x0186 */ unsigned char MajorVersion; /* +0x0188 */ unsigned char MinorVersion; /* +0x0189 */ unsigned long FirmwareVersion; /* +0x018c */ unsigned long long DeviceFlags; /* +0x0190 */ unsigned char WdfTimer[8]; /* +0x0198 35 15 00 00 */ unsigned char InternalResetWorkItem[8]; /* +0x01a0 4d 15 00 00 */ unsigned char TelemetryReportWorkItem[8]; /* +0x01a8 4d 15 00 00 */ unsigned char CurrentWdfPowerDeviceState[4]; /* +0x01b0 d4 13 00 00 */ unsigned char ControllerSaveRestoreFailed; /* +0x01b4 */ long ControllerGone; /* +0x01b8 */ unsigned long ResetCount; /* +0x01bc */ void *HibernateContext; /* +0x01c0 */ }; struct _IOCONTROL_DATA { unsigned char WdfQueue[8]; /* +0x0000 37 14 00 00 */ void *ControllerHandle; /* +0x0008 */ }; struct _REGISTER_DATA { void *WdfRegister; /* +0x0000 */ void *ControllerHandle; /* +0x0008 */ unsigned long RegisterMapLength; /* +0x0010 */ unsigned char CapabilityRegisters[8]; /* +0x0018 36 1b 00 00 */ unsigned char OperationalRegisters[8]; /* +0x0020 38 1b 00 00 */ unsigned char RuntimeRegisters[8]; /* +0x0028 3a 1b 00 00 */ unsigned char DoorbellRegisters[8]; /* +0x0030 3c 1b 00 00 */ unsigned char ExtendedCapabilityRegisters[8]; /* +0x0038 3e 1b 00 00 */ unsigned long SupportedNumberOfDeviceSlots; /* +0x0040 */ unsigned long SupportedNumberOfInterrupters; /* +0x0044 */ unsigned long SupportedNumberOfPorts; /* +0x0048 */ unsigned long MaxEventRingSegments; /* +0x004c */ unsigned short U1DeviceExitLatency; /* +0x0050 */ unsigned short U2DeviceExitLatency; /* +0x0052 */ unsigned long ContextSize; /* +0x0054 */ unsigned long PortPowerControl; /* +0x0058 */ unsigned long SupportedNumberOfStreams; /* +0x005c */ }; struct _CAPABILITY_REGISTERS { unsigned char LengthVersion[4]; /* +0x0000 57 1b 00 00 */ unsigned char StructuralParameters1[4]; /* +0x0004 58 1b 00 00 */ unsigned char StructuralParameters2[4]; /* +0x0008 59 1b 00 00 */ unsigned char StructuralParameters3[4]; /* +0x000c 5a 1b 00 00 */ unsigned char CapabilityParameters[4]; /* +0x0010 5b 1b 00 00 */ unsigned long DoorbellOffset; /* +0x0014 */ unsigned long RuntimeRegisterSpaceOffset; /* +0x0018 */ }; struct _OPERATIONAL_REGISTERS { unsigned char UsbCommand[4]; /* +0x0000 5f 1b 00 00 */ unsigned char UsbStatus[4]; /* +0x0004 60 1b 00 00 */ unsigned char PageSizeRegister[4]; /* +0x0008 61 1b 00 00 */ unsigned char Reserved0[8]; /* +0x000c 62 1b 00 00 */ unsigned char DeviceNotificationControl[4]; /* +0x0014 63 1b 00 00 */ unsigned char CommandRingControl[8]; /* +0x0018 64 1b 00 00 */ unsigned char Reserved1[16]; /* +0x0020 65 1b 00 00 */ unsigned char DeviceContextBaseAddressArrayPointer[8]; /* +0x0030 47 10 00 00 */ unsigned char ConfigRegister[4]; /* +0x0038 66 1b 00 00 */ }; struct _CRCR { unsigned long long AsUlong64; /* +0x0000 */ /* unsigned char RingCycleState[0]; +0x0000 84 10 00 00 */ /* unsigned char CommandStop[0]; +0x0000 85 10 00 00 */ /* unsigned char CommandAbort[0]; +0x0000 6b 1b 00 00 */ /* unsigned char CommandRingRunning[0]; +0x0000 6c 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 6d 1b 00 00 */ unsigned char CommandRingPointer[8]; /* +0x0000 6e 1b 00 00 */ }; struct _DOORBELL_REGISTER { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char Target[0]; +0x0000 72 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 73 1b 00 00 */ unsigned char StreamId[4]; /* +0x0000 74 1b 00 00 */ }; struct _PORT_REGISTER_SET { unsigned char PortStatusAndControl[4]; /* +0x0000 79 1b 00 00 */ unsigned char PortPowerManagementStatusAndControl[4]; /* +0x0004 7a 1b 00 00 */ unsigned char PortLinkInfo[4]; /* +0x0008 7b 1b 00 00 */ unsigned long Reserved0; /* +0x000c */ }; struct €_RUNTIME_REGISTERS { unsigned char MicroFrameIndex[4]; /* +0x0000 82 1b 00 00 */ unsigned char Reserved0[28]; /* +0x0004 83 1b 00 00 */ unsigned char InterrupterRegisters[32738]; /* +0x0020 85 1b 00 00 */ }; struct _MFINDEX { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char MicroFrameIndex[0]; +0x0000 8a 1b 00 00 */ unsigned char Reserved0[4]; /* +0x0000 8b 1b 00 00 */ }; struct _INTERRUPTER_REGISTER_SET { unsigned char InterrupterManagement[4]; /* +0x0000 90 1b 00 00 */ unsigned char InterrupterModeration[4]; /* +0x0004 91 1b 00 00 */ unsigned char EventRingSegmentTableSizeRegister[4]; /* +0x0008 92 1b 00 00 */ unsigned long Reserved0; /* +0x000c */ unsigned char EventRingSegmentTableBaseAddress[8]; /* +0x0010 47 10 00 00 */ unsigned char EventRingDequeuePointerRegister[8]; /* +0x0018 93 1b 00 00 */ }; struct _HCSPARAMS2 { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char IsochSchedulingThreshold[0]; +0x0000 96 1b 00 00 */ /* unsigned char EventRingSegmentTableMax[0]; +0x0000 97 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 98 1b 00 00 */ /* unsigned char MaxScratchpadBuffersHi[0]; +0x0000 99 1b 00 00 */ /* unsigned char ScratchpadRestore[0]; +0x0000 9a 1b 00 00 */ unsigned char MaxScratchpadBuffers[4]; /* +0x0000 9b 1b 00 00 */ }; struct _HCCPARAMS { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char AddressingCapability[0]; +0x0000 11 1a 00 00 */ /* unsigned char BwNegotiationCapability[0]; +0x0000 9e 1b 00 00 */ /* unsigned char ContextSize[0]; +0x0000 9f 1b 00 00 */ /* unsigned char PortPowerControl[0]; +0x0000 a0 1b 00 00 */ /* unsigned char PortIndicators[0]; +0x0000 a1 1b 00 00 */ /* unsigned char LightHCResetCapability[0]; +0x0000 a2 1b 00 00 */ /* unsigned char LatencyToleranceMessagingCapability[0]; +0x0000 a3 1b 00 00 */ /* unsigned char NoSecondarySidSupport[0]; +0x0000 a4 1b 00 00 */ /* unsigned char ParseAllEventData[0]; +0x0000 a5 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 a6 1b 00 00 */ /* unsigned char MaximumPrimaryStreamArraySize[0]; +0x0000 a7 1b 00 00 */ unsigned char XhciExtendedCapabilitiesPointer[4]; /* +0x0000 74 1b 00 00 */ }; struct _BUFFER_DATA { unsigned char ListEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned char *VirtualAddress; /* +0x0010 */ unsigned char LogicalAddress[8]; /* +0x0018 42 10 00 00 */ unsigned char WdfCommonBuffer[8]; /* +0x0020 74 18 00 00 */ unsigned long Size; /* +0x0028 */ unsigned char TrackingData[32]; /* +0x0030 ac 1b 00 00 */ }; struct _COMMON_BUFFER_DATA { unsigned char WdfDmaEnabler[8]; /* +0x0000 02 18 00 00 */ void *ControllerHandle; /* +0x0008 */ unsigned long MaxDmaSize; /* +0x0010 */ unsigned char DmaAdapter[8]; /* +0x0018 a6 11 00 00 */ unsigned char WorkItemEvent[24]; /* +0x0020 64 10 00 00 */ unsigned long NumberOfLargeListEntries; /* +0x0038 */ unsigned long AvailableLargeListEntries; /* +0x003c */ unsigned long long CommonBufferLock; /* +0x0040 */ unsigned char LargeList[16]; /* +0x0048 1f 10 00 00 */ unsigned long NumberOfSmallListEntries; /* +0x0058 */ unsigned long AvailableSmallListEntries; /* +0x005c */ unsigned char SmallList[16]; /* +0x0060 1f 10 00 00 */ unsigned char BufferDataTrackingList[16]; /* +0x0070 1f 10 00 00 */ unsigned char CallbackList[16]; /* +0x0080 1f 10 00 00 */ }; enum _InterrupterStates { InterrupterState_Uninitialized = 0, InterrupterState_Prepared = 1, InterrupterState_Released = 2 }; struct _INTERRUPTER_DATA { unsigned char WdfInterrupt[8]; /* +0x0000 61 15 00 00 */ unsigned char MessageSignaled; /* +0x0008 */ unsigned char PendingDisable; /* +0x0009 */ unsigned char Enabled; /* +0x000a */ unsigned char State[4]; /* +0x000c b7 1b 00 00 */ unsigned long MessageNumber; /* +0x0010 */ unsigned long ModerationInterval; /* +0x0014 */ void *ControllerHandle; /* +0x0018 */ unsigned char RecorderLog[8]; /* +0x0020 0e 1b 00 00 */ unsigned char InterrupterRegisterSet[8]; /* +0x0028 8e 1b 00 00 */ unsigned char EventHandlerBusy; /* +0x0030 */ unsigned char Counter[40]; /* +0x0034 b8 1b 00 00 */ unsigned long MaxEventRingSegments; /* +0x005c */ unsigned long UsedEventRingSegments; /* +0x0060 */ unsigned long TRBsPerSegment; /* +0x0064 */ unsigned long CycleState; /* +0x0068 */ unsigned long DequeueIndex; /* +0x006c */ unsigned long DequeueSegment; /* +0x0070 */ unsigned char CurrentRingSegment[8]; /* +0x0078 ba 1b 00 00 */ unsigned char CurrentBufferData[8]; /* +0x0080 ab 1b 00 00 */ unsigned char EventRingTableBufferData[8]; /* +0x0088 ab 1b 00 00 */ unsigned long long EventRingLock; /* +0x0090 */ unsigned char BufferDataList[16]; /* +0x0098 1f 10 00 00 */ unsigned char WorkItemEvent[24]; /* +0x00a8 64 10 00 00 */ unsigned char IoWorkItem[8]; /* +0x00c0 bc 1b 00 00 */ }; struct _PRIMARY_INTERRUPTER_DATA { unsigned char WdfDevice[8]; /* +0x0000 0e 13 00 00 */ void *ControllerHandle; /* +0x0008 */ unsigned char PciMsiFound; /* +0x0010 */ unsigned char PciMsiXFound; /* +0x0011 */ unsigned char PciMsiCapability[24]; /* +0x0014 c0 1b 00 00 */ unsigned char PciMsiXCapability[12]; /* +0x002c c1 1b 00 00 */ unsigned long NumberOfLogicalProcessors; /* +0x0038 */ unsigned long NumberOfInterrupters; /* +0x003c */ unsigned long FrameNumberHighPart; /* +0x0040 */ unsigned char InterrupterDataArray[8]; /* +0x0048 c2 1b 00 00 */ unsigned short *InterrupterLookup; /* +0x0050 */ unsigned short IsochInterrupter; /* +0x0058 */ }; struct _TRB { /* unsigned char Normal[0]; +0x0000 c6 1b 00 00 */ /* unsigned char SetupStage[0]; +0x0000 c7 1b 00 00 */ /* unsigned char DataStage[0]; +0x0000 c8 1b 00 00 */ /* unsigned char StatusStage[0]; +0x0000 c9 1b 00 00 */ /* unsigned char Isoch[0]; +0x0000 ca 1b 00 00 */ /* unsigned char TransferEvent[0]; +0x0000 cb 1b 00 00 */ /* unsigned char CommandCompletionEvent[0]; +0x0000 cc 1b 00 00 */ /* unsigned char PortStatusChangeEvent[0]; +0x0000 cd 1b 00 00 */ /* unsigned char HostControllerEvent[0]; +0x0000 ce 1b 00 00 */ /* unsigned char DeviceNotificationEvent[0]; +0x0000 cf 1b 00 00 */ /* unsigned char DeviceNotificationEventFunctionWake[0]; +0x0000 d0 1b 00 00 */ /* unsigned char NoOpCommand[0]; +0x0000 d1 1b 00 00 */ /* unsigned char EnableSlotCommand[0]; +0x0000 d2 1b 00 00 */ /* unsigned char DisableSlotCommand[0]; +0x0000 d3 1b 00 00 */ /* unsigned char AddressDeviceCommand[0]; +0x0000 d4 1b 00 00 */ /* unsigned char ConfigureEndpointCommand[0]; +0x0000 d5 1b 00 00 */ /* unsigned char EvaluateContextCommand[0]; +0x0000 d6 1b 00 00 */ /* unsigned char ResetEndpointCommand[0]; +0x0000 d7 1b 00 00 */ /* unsigned char StopEndpointCommand[0]; +0x0000 d8 1b 00 00 */ /* unsigned char SetDequeuePointerCommand[0]; +0x0000 d9 1b 00 00 */ /* unsigned char ResetDeviceCommand[0]; +0x0000 da 1b 00 00 */ /* unsigned char Link[0]; +0x0000 db 1b 00 00 */ unsigned char EventData[16]; /* +0x0000 dc 1b 00 00 */ }; enum _CommandStates { CommandState_Uninitialized = 0, CommandState_Prepared = 1, CommandState_Released = 2 }; enum _CommandResetStates { CommandResetState_Uninitialized = 0, CommandResetState_NotInProgress = 1, CommandResetState_Pending = 2, CommandResetState_InProgress = 3, CommandResetState_PostReset = 4, CommandResetState_Failed = 5 }; struct _COMMAND_DATA { void *WdfCommand; /* +0x0000 */ void *ControllerHandle; /* +0x0008 */ unsigned char WdfTimer[8]; /* +0x0010 35 15 00 00 */ unsigned char State[4]; /* +0x0018 e3 1b 00 00 */ unsigned char ResetState[4]; /* +0x001c e5 1b 00 00 */ unsigned char CommandRingControl[8]; /* +0x0020 69 1b 00 00 */ unsigned char DoorbellRegister[8]; /* +0x0028 3c 1b 00 00 */ unsigned long long LinkTrbPointer; /* +0x0030 */ unsigned long MaxTrbIndex; /* +0x0038 */ unsigned long EnqueueIndex; /* +0x003c */ unsigned long DequeueIndex; /* +0x0040 */ unsigned long CycleState; /* +0x0044 */ unsigned char TrbArray[8]; /* +0x0048 ba 1b 00 00 */ unsigned char PendingList[16]; /* +0x0050 1f 10 00 00 */ unsigned char WaitingList[16]; /* +0x0060 1f 10 00 00 */ unsigned char CommandRingBufferData[8]; /* +0x0070 ab 1b 00 00 */ unsigned long long CommandRingLock; /* +0x0078 */ }; struct _DEVICESLOT_DATA { void *WdfDeviceSlot; /* +0x0000 */ void *ControllerHandle; /* +0x0008 */ unsigned long NumberOfDeviceSlots; /* +0x0010 */ unsigned long NumberOfScratchpadBuffers; /* +0x0014 */ unsigned char DeviceContextBaseBufferData[8]; /* +0x0018 ab 1b 00 00 */ unsigned char UsbDeviceHandleArray[8]; /* +0x0020 67 10 00 00 */ unsigned char ScratchpadBufferArrayData[8]; /* +0x0028 ab 1b 00 00 */ unsigned char ScratchpadBufferDatas[16]; /* +0x0030 1f 10 00 00 */ }; struct _USB_DEVICE_PORT_PATH { unsigned long Size; /* +0x0000 */ unsigned long PortPathDepth; /* +0x0004 */ unsigned long TTHubDepth; /* +0x0008 */ unsigned char PortPath[24]; /* +0x000c ed 1b 00 00 */ }; struct _ROOTHUB_DATA { unsigned char UcxRootHub[8]; /* +0x0000 5c 1a 00 00 */ void *ControllerHandle; /* +0x0008 */ unsigned long NumberOfPorts; /* +0x0010 */ unsigned short NumberOf20Ports; /* +0x0014 */ unsigned short NumberOf30Ports; /* +0x0016 */ unsigned short U1DeviceExitLatency; /* +0x0018 */ unsigned short U2DeviceExitLatency; /* +0x001a */ unsigned char OperationalRegisters[8]; /* +0x0020 38 1b 00 00 */ unsigned char PortRegisterSet[8]; /* +0x0028 78 1b 00 00 */ unsigned char PortData[8]; /* +0x0030 f2 1b 00 00 */ unsigned char DebugCapable; /* +0x0038 */ }; struct _ROOTHUB_TIMER_DATA { unsigned char RootHubData[8]; /* +0x0000 23 1b 00 00 */ unsigned long PortNumber; /* +0x0008 */ }; struct _USBDEVICE_DATA { unsigned char UcxUsbDevice[8]; /* +0x0000 33 1a 00 00 */ void *ControllerHandle; /* +0x0008 */ unsigned char UsbDeviceInfo[56]; /* +0x0010 29 1a 00 00 */ unsigned char DeviceListEntry[16]; /* +0x0048 1f 10 00 00 */ unsigned long long EndpointListLock; /* +0x0058 */ unsigned char EndpointListHead[16]; /* +0x0060 1f 10 00 00 */ unsigned long EndpointListCount; /* +0x0070 */ unsigned char DeviceDescriptor[18]; /* +0x0074 88 19 00 00 */ unsigned char SlotEnabled; /* +0x0086 */ unsigned char SlotId; /* +0x0087 */ unsigned char IsHub; /* +0x0088 */ unsigned long NumberOfPorts; /* +0x008c */ unsigned long NumberOfTTs; /* +0x0090 */ unsigned long TTThinkTime; /* +0x0094 */ unsigned long ContextEntriesInUse; /* +0x0098 */ unsigned char DeviceContextBuffer[8]; /* +0x00a0 ab 1b 00 00 */ unsigned char DoorbellRegister[8]; /* +0x00a8 3c 1b 00 00 */ unsigned char EndpointHandle[256]; /* +0x00b0 fb 1b 00 00 */ unsigned char InputDeviceContextBuffer[8]; /* +0x01b0 ab 1b 00 00 */ unsigned char WdfRequest[8]; /* +0x01b8 b4 13 00 00 */ unsigned char Crb[64]; /* +0x01c0 fc 1b 00 00 */ unsigned char CrbCompletionRoutine[8]; /* +0x0200 ff 1b 00 00 */ void *CrbCompletionContext; /* +0x0208 */ }; enum _USB_DEVICE_SPEED { UsbLowSpeed = 0, UsbFullSpeed = 1, UsbHighSpeed = 2, UsbSuperSpeed = 3 }; struct _DEVICE_CONTEXT32 { unsigned char SlotContext[32]; /* +0x0000 0b 1c 00 00 */ unsigned char EndpointContext[992]; /* +0x0020 0d 1c 00 00 */ }; struct _SLOT_CONTEXT32 { /* unsigned char RouteString[0]; +0x0000 12 1c 00 00 */ /* unsigned char Speed[0]; +0x0000 13 1c 00 00 */ /* unsigned char Reserved0[0]; +0x0000 14 1c 00 00 */ /* unsigned char MultiTT[0]; +0x0000 15 1c 00 00 */ /* unsigned char Hub[0]; +0x0000 9a 1b 00 00 */ unsigned char ContextEntries[4]; /* +0x0000 9b 1b 00 00 */ /* unsigned char MaxExitLatency[0]; +0x0004 16 1c 00 00 */ /* unsigned char RootHubPortNumber[0]; +0x0004 17 1c 00 00 */ unsigned char NumberOfPorts[4]; /* +0x0004 18 1c 00 00 */ /* unsigned char TTHubSlotId[0]; +0x0008 72 1b 00 00 */ /* unsigned char TTPortNumber[0]; +0x0008 73 1b 00 00 */ /* unsigned char TTThinkTime[0]; +0x0008 19 1c 00 00 */ /* unsigned char Reserved1[0]; +0x0008 1a 1c 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char UsbDeviceAddress[0]; +0x000c 72 1b 00 00 */ /* unsigned char Reserved2[0]; +0x000c 1c 1c 00 00 */ unsigned char SlotState[4]; /* +0x000c 9b 1b 00 00 */ unsigned char Reserved3[16]; /* +0x0010 65 1b 00 00 */ }; struct _DEVICE_CONTEXT64 { unsigned char SlotContext[64]; /* +0x0000 22 1c 00 00 */ unsigned char EndpointContext[1984]; /* +0x0040 24 1c 00 00 */ }; struct _SLOT_CONTEXT64 { /* unsigned char RouteString[0]; +0x0000 12 1c 00 00 */ /* unsigned char Speed[0]; +0x0000 13 1c 00 00 */ /* unsigned char Reserved0[0]; +0x0000 14 1c 00 00 */ /* unsigned char MultiTT[0]; +0x0000 15 1c 00 00 */ /* unsigned char Hub[0]; +0x0000 9a 1b 00 00 */ unsigned char ContextEntries[4]; /* +0x0000 9b 1b 00 00 */ /* unsigned char MaxExitLatency[0]; +0x0004 16 1c 00 00 */ /* unsigned char RootHubPortNumber[0]; +0x0004 17 1c 00 00 */ unsigned char NumberOfPorts[4]; /* +0x0004 18 1c 00 00 */ /* unsigned char TTHubSlotId[0]; +0x0008 72 1b 00 00 */ /* unsigned char TTPortNumber[0]; +0x0008 73 1b 00 00 */ /* unsigned char TTThinkTime[0]; +0x0008 19 1c 00 00 */ /* unsigned char Reserved1[0]; +0x0008 1a 1c 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char UsbDeviceAddress[0]; +0x000c 72 1b 00 00 */ /* unsigned char Reserved2[0]; +0x000c 1c 1c 00 00 */ unsigned char SlotState[4]; /* +0x000c 9b 1b 00 00 */ unsigned char Reserved3[16]; /* +0x0010 65 1b 00 00 */ unsigned char Reserved[32]; /* +0x0020 29 1c 00 00 */ }; struct _ENDPOINT_CONTEXT32 { /* unsigned char EndpointState[0]; +0x0000 2e 1c 00 00 */ /* unsigned char Reserved0[0]; +0x0000 2f 1c 00 00 */ /* unsigned char Mult[0]; +0x0000 30 1c 00 00 */ /* unsigned char MaxPrimaryStreams[0]; +0x0000 31 1c 00 00 */ /* unsigned char LinearStreamArray[0]; +0x0000 32 1c 00 00 */ /* unsigned char Interval[0]; +0x0000 17 1c 00 00 */ unsigned char Reserved1[4]; /* +0x0000 18 1c 00 00 */ /* unsigned char ForceEvent[0]; +0x0004 11 1a 00 00 */ /* unsigned char ErrorCount[0]; +0x0004 33 1c 00 00 */ /* unsigned char EndpointType[0]; +0x0004 34 1c 00 00 */ /* unsigned char Reserved2[0]; +0x0004 a3 1b 00 00 */ /* unsigned char HostInitiateDisable[0]; +0x0004 a4 1b 00 00 */ /* unsigned char MaxBurstSize[0]; +0x0004 73 1b 00 00 */ unsigned char MaxPacketSize[4]; /* +0x0004 74 1b 00 00 */ unsigned long long DequeuePointer; /* +0x0008 */ /* unsigned char DequeueCycleState[0]; +0x0008 84 10 00 00 */ /* unsigned char Reserved3[0]; +0x0008 8b 10 00 00 */ /* unsigned char DequeuePointerLo[0]; +0x0008 35 1c 00 00 */ unsigned char DequeuePointerHi[8]; /* +0x0008 36 1c 00 00 */ /* unsigned char AverageTrbLength[0]; +0x0010 16 1c 00 00 */ unsigned char MaxEndpointServiceTimeIntervalPayload[4]; /* +0x0010 74 1b 00 00 */ unsigned char Reserved4[12]; /* +0x0014 3e 12 00 00 */ }; struct _ENDPOINT_CONTEXT64 { /* unsigned char EndpointState[0]; +0x0000 2e 1c 00 00 */ /* unsigned char Reserved0[0]; +0x0000 2f 1c 00 00 */ /* unsigned char Mult[0]; +0x0000 30 1c 00 00 */ /* unsigned char MaxPrimaryStreams[0]; +0x0000 31 1c 00 00 */ /* unsigned char LinearStreamArray[0]; +0x0000 32 1c 00 00 */ /* unsigned char Interval[0]; +0x0000 17 1c 00 00 */ unsigned char Reserved1[4]; /* +0x0000 18 1c 00 00 */ /* unsigned char ForceEvent[0]; +0x0004 11 1a 00 00 */ /* unsigned char ErrorCount[0]; +0x0004 33 1c 00 00 */ /* unsigned char EndpointType[0]; +0x0004 34 1c 00 00 */ /* unsigned char Reserved2[0]; +0x0004 a3 1b 00 00 */ /* unsigned char HostInitiateDisable[0]; +0x0004 a4 1b 00 00 */ /* unsigned char MaxBurstSize[0]; +0x0004 73 1b 00 00 */ unsigned char MaxPacketSize[4]; /* +0x0004 74 1b 00 00 */ unsigned long long DequeuePointer; /* +0x0008 */ /* unsigned char DequeueCycleState[0]; +0x0008 84 10 00 00 */ /* unsigned char Reserved3[0]; +0x0008 8b 10 00 00 */ /* unsigned char DequeuePointerLo[0]; +0x0008 35 1c 00 00 */ unsigned char DequeuePointerHi[8]; /* +0x0008 36 1c 00 00 */ /* unsigned char AverageTrbLength[0]; +0x0010 16 1c 00 00 */ unsigned char MaxEndpointServiceTimeIntervalPayload[4]; /* +0x0010 74 1b 00 00 */ unsigned char Reserved4[12]; /* +0x0014 3e 12 00 00 */ unsigned char Reserved[32]; /* +0x0020 29 1c 00 00 */ }; struct _INPUT_CONTEXT32 { unsigned char InputControlContext[32]; /* +0x0000 3f 1c 00 00 */ unsigned char SlotContext[32]; /* +0x0020 0b 1c 00 00 */ unsigned char EndpointContext[992]; /* +0x0040 0d 1c 00 00 */ }; struct _INPUT_CONTEXT64 { unsigned char InputControlContext[64]; /* +0x0000 44 1c 00 00 */ unsigned char SlotContext[64]; /* +0x0040 22 1c 00 00 */ unsigned char EndpointContext[1984]; /* +0x0080 24 1c 00 00 */ }; enum _ENDPOINT_TYPE { EndpointType_NotValid = 0, EndpointType_IsochOut = 1, EndpointType_BulkOut = 2, EndpointType_InterruptOut = 3, EndpointType_Control = 4, EndpointType_IsochIn = 5, EndpointType_BulkIn = 6, EndpointType_InterruptIn = 7 }; struct _ENDPOINT_DATA { void *ControllerHandle; /* +0x0000 */ unsigned char UcxUsbDevice[8]; /* +0x0008 33 1a 00 00 */ void *UsbDeviceHandle; /* +0x0010 */ unsigned char UcxEndpoint[8]; /* +0x0018 98 1a 00 00 */ unsigned char EndpointListEntry[16]; /* +0x0020 1f 10 00 00 */ unsigned char RecorderLog[8]; /* +0x0030 0e 1b 00 00 */ void *TransferRingHandle; /* +0x0038 */ unsigned char UsbEndpointDescriptor[7]; /* +0x0040 7d 1a 00 00 */ unsigned char UsbSuperSpeedEndpointCompanionDescriptor[9]; /* +0x0047 7f 1a 00 00 */ unsigned char Type[4]; /* +0x0050 4a 1c 00 00 */ unsigned char ForwardProgressEnabled; /* +0x0054 */ unsigned char StreamsCapable; /* +0x0055 */ unsigned char DefaultStreamContextArray[8]; /* +0x0058 ab 1b 00 00 */ unsigned char StaticStreamsData[8]; /* +0x0060 4c 1c 00 00 */ unsigned long ContextIndex; /* +0x0068 */ unsigned long MaxBurstSize; /* +0x006c */ unsigned char WdfStopReissueTimer[8]; /* +0x0070 35 15 00 00 */ unsigned long StopReissueCount; /* +0x0078 */ unsigned char Crb[64]; /* +0x0080 fc 1b 00 00 */ }; enum _STREAMS_STATE { StreamsState_Started = 0, StreamsState_PendingStart = 1, StreamsState_Stopped = 2, StreamsState_PendingStop = 3 }; struct _STATIC_STREAMS_DATA { unsigned char EndpointData[8]; /* +0x0000 48 1c 00 00 */ unsigned long NumberOfStreams; /* +0x0008 */ unsigned long MaxPrimaryStreams; /* +0x000c */ unsigned long PurgeCount; /* +0x0010 */ unsigned long UpdateCount; /* +0x0014 */ unsigned long long StreamsLock; /* +0x0018 */ unsigned char StreamsState[8]; /* +0x0020 50 1c 00 00 */ unsigned char StreamContextArray[8]; /* +0x0028 ab 1b 00 00 */ unsigned char StaticStreamData[80]; /* +0x0030 52 1c 00 00 */ }; enum _TRANSFERRING_EVENT { TransferRingEvent_None = 0, TransferRingEvent_MapStageStart = 1, TransferRingEvent_MapStageComplete = 2, TransferRingEvent_PendingResources = 4, TransferRingEvent_CancelStart = 16, TransferRingEvent_CancelComplete = 32, TransferRingEvent_ResetStart = 256, TransferRingEvent_ResetComplete = 512, TransferRingEvent_EndpointStopped = 4096, TransferRingEvent_TrbProcessed = 8192, TransferRingEvent_EndpointUpdated = 16384, = 32770 }; enum _TRANSFERRING_STATE { TransferRingState_Undefined = 0, TransferRingState_Idle = 1, TransferRingState_Mapping = 2, TransferRingState_Cancelling = 3, TransferRingState_Reset = 4, TransferRingState_Error = 5 }; struct _TRANSFERRING_DATA { void *ControllerHandle; /* +0x0000 */ void *UsbDeviceHandle; /* +0x0008 */ void *EndpointHandle; /* +0x0010 */ unsigned long StreamId; /* +0x0018 */ unsigned char WdfQueue[8]; /* +0x0020 37 14 00 00 */ unsigned char WdfDpc[8]; /* +0x0028 1c 15 00 00 */ unsigned char Attributes[24]; /* +0x0030 63 1c 00 00 */ unsigned long long Lock; /* +0x0048 */ unsigned char Events[4]; /* +0x0050 65 1c 00 00 */ unsigned char State[4]; /* +0x0054 67 1c 00 00 */ unsigned long DispatchingEvents; /* +0x0058 */ unsigned long TrbProcessedWaitCount; /* +0x005c */ unsigned char TimerSet; /* +0x0060 */ unsigned char ResourcesAllocated; /* +0x0061 */ unsigned char WdfControlTimer[8]; /* +0x0068 35 15 00 00 */ unsigned char WdfStopTimer[8]; /* +0x0070 35 15 00 00 */ unsigned long MaxRingIndex; /* +0x0078 */ unsigned long CurrentRingIndex; /* +0x007c */ unsigned long CycleState; /* +0x0080 */ unsigned char CurrentRing[8]; /* +0x0088 ba 1b 00 00 */ unsigned char CurrentRingBufferData[8]; /* +0x0090 ab 1b 00 00 */ unsigned long PendingStageCount; /* +0x0098 */ unsigned short InterrupterTarget; /* +0x009c */ unsigned char ValidCurrentFrame; /* +0x009e */ unsigned long CurrentFrame; /* +0x00a0 */ unsigned char TransferRingList[16]; /* +0x00a8 1f 10 00 00 */ unsigned char PendingTransferList[16]; /* +0x00b8 1f 10 00 00 */ unsigned char DoubleBufferDataList[16]; /* +0x00c8 1f 10 00 00 */ unsigned char CancelledOnQueueList[16]; /* +0x00d8 1f 10 00 00 */ unsigned char CancelledDriverOwnedList[16]; /* +0x00e8 1f 10 00 00 */ unsigned char Counter[8]; /* +0x00f8 68 1c 00 00 */ unsigned char PendingTransferData[8]; /* +0x0100 6a 1c 00 00 */ unsigned char CommonBufferCallbackData[48]; /* +0x0108 6b 1c 00 00 */ }; struct _REQUEST_DATA { /* unsigned char TransferData[0]; +0x0000 69 1c 00 00 */ /* unsigned char EndpointUpdateData[0]; +0x0000 7e 1c 00 00 */ /* unsigned char EndpointStaticStreamsConfigure[0]; +0x0000 7f 1c 00 00 */ /* unsigned char EndpointResetData[0]; +0x0000 80 1c 00 00 */ unsigned char UsbDeviceEndpointsConfigureData[496]; /* +0x0000 81 1c 00 00 */ }; struct _TRANSFER_URB { unsigned char Header[24]; /* +0x0000 50 19 00 00 */ void *UsbdPipeHandle; /* +0x0018 */ unsigned long TransferFlags; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ unsigned char *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ /* unsigned char Control[0]; +0x0038 86 1c 00 00 */ unsigned char Isoch[96]; /* +0x0038 87 1c 00 00 */ }; struct _CRASHDUMP_REGISTER_DATA { void *RegisterHandle; /* +0x0000 */ unsigned long long ControllerFlags; /* +0x0008 */ unsigned long MaximumDeviceSlots; /* +0x0010 */ unsigned long MaxScratchpadBuffers; /* +0x0014 */ }; struct _HCLENGTHVERSION { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char CapabilityRegisterLength[0]; +0x0000 72 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 73 1b 00 00 */ /* unsigned char MinorRevision[0]; +0x0000 17 1c 00 00 */ unsigned char MajorRevision[4]; /* +0x0000 18 1c 00 00 */ }; struct _PORTSC { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char CurrentConnectStatus[0]; +0x0000 11 1a 00 00 */ /* unsigned char PortEnabled[0]; +0x0000 9e 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 9f 1b 00 00 */ /* unsigned char OverCurrentActive[0]; +0x0000 a0 1b 00 00 */ /* unsigned char PortReset[0]; +0x0000 a1 1b 00 00 */ /* unsigned char PortLinkState[0]; +0x0000 a4 1c 00 00 */ /* unsigned char PortPower[0]; +0x0000 a5 1c 00 00 */ /* unsigned char PortSpeed[0]; +0x0000 a6 1c 00 00 */ /* unsigned char PortIndicatorControl[0]; +0x0000 a7 1c 00 00 */ /* unsigned char PortLinkStateWriteStrobe[0]; +0x0000 a8 1c 00 00 */ /* unsigned char ConnectStatusChange[0]; +0x0000 a9 1c 00 00 */ /* unsigned char PortEnabledOrDisabledChange[0]; +0x0000 aa 1c 00 00 */ /* unsigned char WarmPortResetChange[0]; +0x0000 ab 1c 00 00 */ /* unsigned char OverCurrentChange[0]; +0x0000 ac 1c 00 00 */ /* unsigned char PortResetChange[0]; +0x0000 ad 1c 00 00 */ /* unsigned char PortLinkStateChange[0]; +0x0000 ae 1c 00 00 */ /* unsigned char PortConfigErrorChange[0]; +0x0000 af 1c 00 00 */ /* unsigned char Reserved1[0]; +0x0000 14 1c 00 00 */ /* unsigned char WakeOnConnectEnable[0]; +0x0000 15 1c 00 00 */ /* unsigned char WakeOnDisconnectEnable[0]; +0x0000 9a 1b 00 00 */ /* unsigned char WakeOnOverCurrentEnable[0]; +0x0000 b0 1c 00 00 */ /* unsigned char Reserved2[0]; +0x0000 b1 1c 00 00 */ /* unsigned char DeviceRemovable[0]; +0x0000 b2 1c 00 00 */ unsigned char WarmPortReset[4]; /* +0x0000 b3 1c 00 00 */ }; struct _USBCMD { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char RunStopBit[0]; +0x0000 11 1a 00 00 */ /* unsigned char HostControllerReset[0]; +0x0000 9e 1b 00 00 */ /* unsigned char InterrupterEnable[0]; +0x0000 9f 1b 00 00 */ /* unsigned char HostSystemErrorEnable[0]; +0x0000 a0 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 b8 1c 00 00 */ /* unsigned char LightHostControllerReset[0]; +0x0000 a4 1b 00 00 */ /* unsigned char ControllerSaveState[0]; +0x0000 a5 1b 00 00 */ /* unsigned char ControllerRestoreState[0]; +0x0000 a5 1c 00 00 */ /* unsigned char EnableWrapEvent[0]; +0x0000 b9 1c 00 00 */ /* unsigned char EnableU3MfIndexStop[0]; +0x0000 ba 1c 00 00 */ unsigned char Reserved1[4]; /* +0x0000 bb 1c 00 00 */ }; struct _CRASHDUMP_ENDPOINT_DATA { void *DumperHandle; /* +0x0000 */ void *RegisterHandle; /* +0x0008 */ void *CommandHandle; /* +0x0010 */ void *UsbDeviceHandle; /* +0x0018 */ unsigned long EndpointDCI; /* +0x0020 */ unsigned char OutputEndpointContext[8]; /* +0x0028 39 1c 00 00 */ unsigned char EndpointContext[64]; /* +0x0030 23 1c 00 00 */ unsigned long TrbPerSegment; /* +0x0070 */ unsigned char TrbSegment[48]; /* +0x0078 c1 1c 00 00 */ unsigned char StreamsCapable; /* +0x00a8 */ unsigned char StreamContextArray[24]; /* +0x00b0 c0 1c 00 00 */ unsigned long CurrentSegmentIndex; /* +0x00c8 */ long long TransferTag; /* +0x00d0 */ unsigned char LastUrb[8]; /* +0x00d8 36 19 00 00 */ unsigned char LastTransferEvent[16]; /* +0x00e0 cb 1b 00 00 */ }; struct _CRASHDUMP_BUFFER_DATA { unsigned char LogicalAddress[8]; /* +0x0000 42 10 00 00 */ unsigned char *VirtualAddress; /* +0x0008 */ unsigned long Size; /* +0x0010 */ }; enum _ENDPOINT_STATE { EndpointState_Disabled = 0, EndpointState_Running = 1, EndpointState_Halted = 2, EndpointState_Stopped = 3, EndpointState_Error = 4 }; struct _CRASHDUMP_USBDEVICE_DATA { void *DumperHandle; /* +0x0000 */ void *RegisterHandle; /* +0x0008 */ void *CommandHandle; /* +0x0010 */ unsigned char DeviceContextBuffer[24]; /* +0x0018 c0 1c 00 00 */ unsigned char SlotId; /* +0x0030 */ unsigned char OutputSlotContext[8]; /* +0x0038 27 1c 00 00 */ unsigned char SlotContext[64]; /* +0x0040 22 1c 00 00 */ unsigned char EndpointHandle[256]; /* +0x0080 fb 1b 00 00 */ unsigned char IsHub; /* +0x0180 */ unsigned char ConfigurationId; /* +0x0181 */ unsigned char InterfaceId; /* +0x0182 */ unsigned char AlternateSettingId; /* +0x0183 */ }; struct _USB_DEFAULT_PIPE_SETUP_PACKET { unsigned char bmRequestType[1]; /* +0x0000 e0 1c 00 00 */ unsigned char bRequest; /* +0x0001 */ unsigned char wValue[2]; /* +0x0002 e1 1c 00 00 */ unsigned char wIndex[2]; /* +0x0004 e2 1c 00 00 */ unsigned short wLength; /* +0x0006 */ }; struct _URB_BULK_OR_INTERRUPT_TRANSFER { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *PipeHandle; /* +0x0018 */ unsigned long TransferFlags; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ }; struct _USB_PORT_STATUS_AND_CHANGE { unsigned long AsUlong32; /* +0x0000 */ unsigned char PortStatus[2]; /* +0x0000 f8 1c 00 00 */ unsigned char PortChange[2]; /* +0x0002 f9 1c 00 00 */ }; enum _CRASHDUMP_PORT_TYPE { CrashdumpPortTypeUnknown = 0, CrashdumpPortType20 = 20, CrashdumpPortType30 = 30 }; enum _DUMP_POWER_DOWN_TYPE { DumpPowerDownTypeCrashdump = 0, DumpPowerDownTypeHibernateStart = 1, DumpPowerDownTypeHibernateEnd = 2, DumpPowerDownTypeHybridSleep = 3, DumpPowerDownTypeMax = 4 }; struct _CRASHDUMP_DATA { unsigned char RegisterData[24]; /* +0x0000 91 1c 00 00 */ unsigned char EventRingData[128]; /* +0x0018 01 1d 00 00 */ unsigned char EventRingHibernateData[128]; /* +0x0098 01 1d 00 00 */ unsigned char CommandData[80]; /* +0x0118 02 1d 00 00 */ unsigned long DeviceSlotCount; /* +0x0168 */ unsigned char DeviceContextBaseBufferData[24]; /* +0x0170 c0 1c 00 00 */ unsigned char ControlTransferBuffer[24]; /* +0x0188 c0 1c 00 00 */ unsigned char InputDeviceContextBuffer[24]; /* +0x01a0 c0 1c 00 00 */ void *CommonBufferHandle; /* +0x01b8 */ unsigned char CommonBufferList[16]; /* +0x01c0 1f 10 00 00 */ unsigned long CommonBufferPageCount; /* +0x01d0 */ unsigned long CommonBufferUsedBytes; /* +0x01d4 */ unsigned long CurrentBufferIndex; /* +0x01d8 */ unsigned char DeviceSpeed[4]; /* +0x01dc 03 1c 00 00 */ unsigned char RootPortType[4]; /* +0x01e0 04 1d 00 00 */ unsigned char PortPath[36]; /* +0x01e4 eb 1b 00 00 */ unsigned char DeviceArray[8]; /* +0x0208 d7 1c 00 00 */ unsigned char TargetDevice[8]; /* +0x0210 d7 1c 00 00 */ unsigned char PowerDownType[8]; /* +0x0218 06 1d 00 00 */ unsigned char DumpMiniportBuffer[24]; /* +0x0220 c0 1c 00 00 */ void *ControllerHandle; /* +0x0238 */ unsigned char ControllerWasReset; /* +0x0240 */ }; struct _CRASHDUMP_EVENTRING_DATA { void *DumperHandle; /* +0x0000 */ void *RegisterHandle; /* +0x0008 */ unsigned char InterrupterRegister[8]; /* +0x0010 8e 1b 00 00 */ unsigned char EventRingTableBuffer[24]; /* +0x0018 c0 1c 00 00 */ unsigned char EventRingSegmentBuffer[24]; /* +0x0030 c0 1c 00 00 */ unsigned char TRBArray[8]; /* +0x0048 ba 1b 00 00 */ unsigned long UsedEventRingSegments; /* +0x0050 */ unsigned long TRBsPerSegment; /* +0x0054 */ unsigned long CycleState; /* +0x0058 */ unsigned long DequeueIndex; /* +0x005c */ unsigned long DequeueSegment; /* +0x0060 */ unsigned char CurrentBufferData[8]; /* +0x0068 ab 1b 00 00 */ unsigned char BufferDataList[16]; /* +0x0070 1f 10 00 00 */ }; struct _CRASHDUMP_COMMAND_DATA { void *DumperHandle; /* +0x0000 */ void *RegisterHandle; /* +0x0008 */ unsigned char CommandRingControl[8]; /* +0x0010 69 1b 00 00 */ unsigned char CommandRingBuffer[24]; /* +0x0018 c0 1c 00 00 */ unsigned char TRBArray[8]; /* +0x0030 ba 1b 00 00 */ unsigned long CycleState; /* +0x0038 */ unsigned char LastCompletionEvent[20]; /* +0x003c cc 1b 00 00 */ }; struct _DEVICE_CONTEXT_BASE_ARRAY { unsigned char DeviceContextBaseAddress[2048]; /* +0x0000 15 1d 00 00 */ }; struct _URB_CONTROL_TRANSFER { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *PipeHandle; /* +0x0018 */ unsigned long TransferFlags; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned char SetupPacket[8]; /* +0x0080 71 12 00 00 */ }; struct _DEVPROPKEY { unsigned char fmtid[16]; /* +0x0000 27 11 00 00 */ unsigned long pid; /* +0x0010 */ }; struct _DEVICE_NOTIFICATION_EVENT_FUNCTION_WAKE_TRB { /* unsigned char Reserved0[0]; +0x0000 96 1b 00 00 */ /* unsigned char NotificationType[0]; +0x0000 97 1b 00 00 */ /* unsigned char Interface[0]; +0x0000 73 1b 00 00 */ unsigned char Reserved1[4]; /* +0x0000 74 1b 00 00 */ unsigned long Reserved2; /* +0x0004 */ /* unsigned char Reserved3[0]; +0x0008 34 1d 00 00 */ unsigned char CompletionCode[4]; /* +0x0008 18 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved4[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Reserved5[0]; +0x000c 17 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _IO_RESOURCE_REQUIREMENTS_LIST { unsigned long ListSize; /* +0x0000 */ unsigned char InterfaceType[4]; /* +0x0004 de 14 00 00 */ unsigned long BusNumber; /* +0x0008 */ unsigned long SlotNumber; /* +0x000c */ unsigned char Reserved[12]; /* +0x0010 3e 12 00 00 */ unsigned long AlternativeLists; /* +0x001c */ unsigned char List[40]; /* +0x0020 3a 1d 00 00 */ }; enum _CrbStates { CrbState_Waiting = 0, CrbState_Pending = 1, CrbState_PendingCompletion = 2 }; enum _CRB_COMPLETION_STATUS { CrbCompletionSuccess = 0, CrbCompletionUnsuccessful = 1, CrbCompletionTimeout = 2, CrbCompletionControllerGone = 3 }; struct _CRB { unsigned char ListEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned char State[4]; /* +0x0010 3e 1d 00 00 */ unsigned long Index; /* +0x0014 */ unsigned char Trb[16]; /* +0x0018 b9 1b 00 00 */ unsigned char CommandCallback[8]; /* +0x0028 44 1d 00 00 */ void *ObjectHandle; /* +0x0030 */ long Timeout; /* +0x0038 */ unsigned char CompletionCode; /* +0x003c */ unsigned char SlotId; /* +0x003d */ unsigned char InternalCommand; /* +0x003e */ }; /* struct { /* unsigned char DequeueCycleState[0]; +0x0000 84 10 00 00 /* unsigned char StreamContextType[0]; +0x0000 47 1d 00 00 /* unsigned char DequeuePointer[0]; +0x0000 48 1d 00 00 unsigned long long AsUlong64; +0x0000 }; */ struct _SET_DEQUEUE_POINTER_COMMAND_TRB { unsigned char u[8]; /* +0x0000 4a 1d 00 00 */ /* unsigned char Reserved0[0]; +0x0008 16 1c 00 00 */ unsigned char StreamId[4]; /* +0x0008 74 1b 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char EndpointId[0]; +0x000c 4b 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 4c 1d 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _PAGESIZE_REGISTER { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char Size[0]; +0x0000 16 1c 00 00 */ unsigned char Reserved0[4]; /* +0x0000 74 1b 00 00 */ }; struct _URB_CONTROL_GET_STATUS_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *Reserved; /* +0x0018 */ unsigned long Reserved0; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned char Reserved1[4]; /* +0x0080 51 1d 00 00 */ unsigned short Index; /* +0x0084 */ unsigned short Reserved2; /* +0x0086 */ }; struct _DISPATCHER_HEADER { unsigned char Type; /* +0x0000 */ unsigned char TimerControlFlags; /* +0x0001 */ /* unsigned char Absolute[0]; +0x0001 54 1d 00 00 */ /* unsigned char Wake[0]; +0x0001 55 1d 00 00 */ /* unsigned char Coalescable[0]; +0x0001 56 1d 00 00 */ /* unsigned char KeepShifting[0]; +0x0001 57 1d 00 00 */ /* unsigned char EncodedTolerableDelay[0]; +0x0001 58 1d 00 00 */ unsigned char Abandoned; /* +0x0001 */ unsigned char Signalling; /* +0x0001 */ unsigned char ThreadControlFlags; /* +0x0002 */ /* unsigned char CycleProfiling[0]; +0x0002 54 1d 00 00 */ /* unsigned char CounterProfiling[0]; +0x0002 55 1d 00 00 */ /* unsigned char GroupScheduling[0]; +0x0002 56 1d 00 00 */ /* unsigned char AffinitySet[0]; +0x0002 57 1d 00 00 */ /* unsigned char Reserved[0]; +0x0002 58 1d 00 00 */ unsigned char Hand; /* +0x0002 */ unsigned char Size; /* +0x0002 */ unsigned char TimerMiscFlags; /* +0x0003 */ /* unsigned char Index[0]; +0x0003 59 1d 00 00 */ /* unsigned char Inserted[0]; +0x0003 5a 1d 00 00 */ /* unsigned char Expired[0]; +0x0003 5b 1d 00 00 */ unsigned char DebugActive; /* +0x0003 */ /* unsigned char ActiveDR7[0]; +0x0003 54 1d 00 00 */ /* unsigned char Instrumented[0]; +0x0003 55 1d 00 00 */ /* unsigned char Reserved2[0]; +0x0003 5c 1d 00 00 */ /* unsigned char UmsScheduled[0]; +0x0003 5a 1d 00 00 */ /* unsigned char UmsPrimary[0]; +0x0003 02 19 00 00 */ unsigned char DpcActive; /* +0x0003 */ unsigned char Lock[4]; /* +0x0000 1b 10 00 00 */ long SignalState; /* +0x0004 */ unsigned char WaitListHead[16]; /* +0x0008 1f 10 00 00 */ }; struct _STOP_ENDPOINT_COMMAND_TRB { unsigned char Reserved0[12]; /* +0x0000 3e 12 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char EndpointId[0]; +0x000c 4b 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 5f 1d 00 00 */ /* unsigned char Suspend[0]; +0x000c af 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _TRANSFERRING_COUNTER { unsigned long MaxEventCount; /* +0x0000 */ }; struct _PORTPMSC { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char Usb3[0]; +0x0000 64 1d 00 00 */ unsigned char Usb2[4]; /* +0x0000 65 1d 00 00 */ }; struct _ISOCH_TRB { unsigned long long DataBufferPointer; /* +0x0000 */ /* unsigned char TransferLength[0]; +0x0008 68 1d 00 00 */ /* unsigned char TDSize[0]; +0x0008 69 1d 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char EvaluateNextTrb[0]; +0x000c 9e 1b 00 00 */ /* unsigned char InterruptOnShortPacket[0]; +0x000c 9f 1b 00 00 */ /* unsigned char NoSnoop[0]; +0x000c a0 1b 00 00 */ /* unsigned char ChainBit[0]; +0x000c a1 1b 00 00 */ /* unsigned char InterruptOnCompletion[0]; +0x000c a2 1b 00 00 */ /* unsigned char ImmediateData[0]; +0x000c a3 1b 00 00 */ /* unsigned char TransferBurstCount[0]; +0x000c 6a 1d 00 00 */ /* unsigned char BlockEventInterrupt[0]; +0x000c a5 1c 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char TransferLastBurstPacketCount[0]; +0x000c 6b 1d 00 00 */ /* unsigned char FrameId[0]; +0x000c 6c 1d 00 00 */ unsigned char StartIsochASAP[4]; /* +0x000c b3 1c 00 00 */ }; struct _URB_CONTROL_DESCRIPTOR_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *Reserved; /* +0x0018 */ unsigned long Reserved0; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned short Reserved1; /* +0x0080 */ unsigned char Index; /* +0x0082 */ unsigned char DescriptorType; /* +0x0083 */ unsigned short LanguageId; /* +0x0084 */ unsigned short Reserved2; /* +0x0086 */ }; struct _TRACKING_DATA { unsigned char ListEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned long Tag; /* +0x0010 */ void *Owner; /* +0x0018 */ }; struct _GROUP_AFFINITY { unsigned long long Mask; /* +0x0000 */ unsigned short Group; /* +0x0008 */ unsigned char Reserved[6]; /* +0x000a 73 1d 00 00 */ }; struct _ENDPOINT_UPDATE_DATA { unsigned char EndpointData[8]; /* +0x0000 48 1c 00 00 */ unsigned char InputBufferData[8]; /* +0x0008 ab 1b 00 00 */ unsigned long MaxPacketSize; /* +0x0010 */ unsigned char Crb[64]; /* +0x0018 fc 1b 00 00 */ }; struct _URB_ISOCH_TRANSFER { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *PipeHandle; /* +0x0018 */ unsigned long TransferFlags; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned long StartFrame; /* +0x0080 */ unsigned long NumberOfPackets; /* +0x0084 */ unsigned long ErrorCount; /* +0x0088 */ unsigned char IsoPacket[12]; /* +0x008c 79 1d 00 00 */ }; struct _KAPC { unsigned char Type; /* +0x0000 */ unsigned char SpareByte0; /* +0x0001 */ unsigned char Size; /* +0x0002 */ unsigned char SpareByte1; /* +0x0003 */ unsigned long SpareLong0; /* +0x0004 */ unsigned char Thread[8]; /* +0x0008 1a 10 00 00 */ unsigned char ApcListEntry[16]; /* +0x0010 1f 10 00 00 */ unsigned char Reserved[24]; /* +0x0020 3f 12 00 00 */ void *NormalContext; /* +0x0038 */ void *SystemArgument1; /* +0x0040 */ void *SystemArgument2; /* +0x0048 */ char ApcStateIndex; /* +0x0050 */ char ApcMode; /* +0x0051 */ unsigned char Inserted; /* +0x0052 */ }; struct _ENDPOINT_STATIC_STREAMS_CONFIGURE { unsigned char StaticStreamsData[8]; /* +0x0000 4c 1c 00 00 */ }; struct _HCSPARAMS1 { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char NumberOfDeviceSlots[0]; +0x0000 72 1b 00 00 */ /* unsigned char NumberOfInterrupters[0]; +0x0000 80 1d 00 00 */ /* unsigned char Reserved0[0]; +0x0000 81 1d 00 00 */ unsigned char NumberOfPorts[4]; /* +0x0000 18 1c 00 00 */ }; struct _ENABLE_SLOT_COMMAND_TRB { unsigned char Reserved0[12]; /* +0x0000 3e 12 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ unsigned char Reserved2[4]; /* +0x000c 74 1b 00 00 */ }; struct _WHEA_ERROR_PACKET_FLAGS { /* unsigned char PreviousError[0]; +0x0000 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x0000 9e 1b 00 00 */ /* unsigned char HypervisorError[0]; +0x0000 9f 1b 00 00 */ /* unsigned char Simulated[0]; +0x0000 a0 1b 00 00 */ /* unsigned char PlatformPfaControl[0]; +0x0000 a1 1b 00 00 */ /* unsigned char PlatformDirectedOffline[0]; +0x0000 a2 1b 00 00 */ /* unsigned char Reserved2[0]; +0x0000 89 1d 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; struct _USB_ENDPOINT_DESCRIPTOR { unsigned char bLength; /* +0x0000 */ unsigned char bDescriptorType; /* +0x0001 */ unsigned char bEndpointAddress; /* +0x0002 */ unsigned char bmAttributes; /* +0x0003 */ unsigned short wMaxPacketSize; /* +0x0004 */ unsigned char bInterval; /* +0x0006 */ }; struct _SETUP_STAGE_TRB { /* unsigned char bmRequestType[0]; +0x0000 72 1b 00 00 */ /* unsigned char bRequest[0]; +0x0000 73 1b 00 00 */ unsigned char wValue[4]; /* +0x0000 74 1b 00 00 */ /* unsigned char wIndex[0]; +0x0004 16 1c 00 00 */ unsigned char wLength[4]; /* +0x0004 74 1b 00 00 */ /* unsigned char TransferLength[0]; +0x0008 68 1d 00 00 */ /* unsigned char Reserved0[0]; +0x0008 69 1d 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c 8e 1d 00 00 */ /* unsigned char InterruptOnCompletion[0]; +0x000c a2 1b 00 00 */ /* unsigned char ImmediateData[0]; +0x000c a3 1b 00 00 */ /* unsigned char Reserved2[0]; +0x000c 8f 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char TransferType[0]; +0x000c 19 1c 00 00 */ unsigned char Reserved3[4]; /* +0x000c 90 1d 00 00 */ }; struct _IMAN { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char Pending[0]; +0x0000 11 1a 00 00 */ /* unsigned char Enable[0]; +0x0000 9e 1b 00 00 */ unsigned char Reserved0[4]; /* +0x0000 93 1d 00 00 */ }; struct _URB_SELECT_INTERFACE { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *ConfigurationHandle; /* +0x0018 */ unsigned char Interface[48]; /* +0x0020 96 1d 00 00 */ }; struct _NT_TIB { unsigned char ExceptionList[8]; /* +0x0000 9b 1d 00 00 */ void *StackBase; /* +0x0008 */ void *StackLimit; /* +0x0010 */ void *SubSystemTib; /* +0x0018 */ void *FiberData; /* +0x0020 */ unsigned long Version; /* +0x0020 */ void *ArbitraryUserPointer; /* +0x0028 */ unsigned char Self[8]; /* +0x0030 9c 1d 00 00 */ }; struct _WHEA_REVISION { unsigned char MinorRevision; /* +0x0000 */ unsigned char MajorRevision; /* +0x0001 */ unsigned short AsUSHORT; /* +0x0000 */ }; struct _CONFIGURE_ENDPOINT_COMMAND_TRB { unsigned long long InputContextPointer; /* +0x0000 */ unsigned long Reserved0; /* +0x0008 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c a1 1d 00 00 */ /* unsigned char Deconfigure[0]; +0x000c a5 1c 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 17 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _WHEA_ERROR_RECORD_HEADER { unsigned long Signature; /* +0x0000 */ unsigned char Revision[2]; /* +0x0004 66 12 00 00 */ unsigned long SignatureEnd; /* +0x0006 */ unsigned short SectionCount; /* +0x000a */ unsigned char Severity[4]; /* +0x000c 56 12 00 00 */ unsigned char ValidBits[4]; /* +0x0010 a4 1d 00 00 */ unsigned long Length; /* +0x0014 */ unsigned char Timestamp[8]; /* +0x0018 a5 1d 00 00 */ unsigned char PlatformId[16]; /* +0x0020 27 11 00 00 */ unsigned char PartitionId[16]; /* +0x0030 27 11 00 00 */ unsigned char CreatorId[16]; /* +0x0040 27 11 00 00 */ unsigned char NotifyType[16]; /* +0x0050 27 11 00 00 */ unsigned long long RecordId; /* +0x0060 */ unsigned char Flags[4]; /* +0x0068 a6 1d 00 00 */ unsigned char PersistenceInfo[8]; /* +0x006c a7 1d 00 00 */ unsigned char Reserved[12]; /* +0x0074 a8 1d 00 00 */ }; struct _TRANSFER_EVENT_TRB { unsigned char Pointer[8]; /* +0x0000 42 10 00 00 */ /* unsigned char TransferLength[0]; +0x0008 34 1d 00 00 */ unsigned char CompletionCode[4]; /* +0x0008 18 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved0[0]; +0x000c 9e 1b 00 00 */ /* unsigned char EventData[0]; +0x000c 9f 1b 00 00 */ /* unsigned char Reserved1[0]; +0x000c ab 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char EndpointId[0]; +0x000c 4b 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 4c 1d 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _DRIVER_EXTENSION { unsigned char DriverObject[8]; /* +0x0000 72 11 00 00 */ unsigned char AddDevice[8]; /* +0x0008 b1 1d 00 00 */ unsigned long Count; /* +0x0010 */ unsigned char ServiceKeyName[16]; /* +0x0018 36 10 00 00 */ }; enum _WDF_STATE_NOTIFICATION_TYPE { StateNotificationInvalid = 0, StateNotificationEnterState = 1, StateNotificationPostProcessState = 2, StateNotificationLeaveState = 4, StateNotificationAllStates = 7 }; /* struct { unsigned char CurrentState[4]; +0x0000 55 14 00 00 unsigned char NewState[4]; +0x0004 55 14 00 00 }; */ /* struct { unsigned char CurrentState[4]; +0x0000 55 14 00 00 }; */ /* struct { /* unsigned char EnterState[0]; +0x0000 b7 1d 00 00 /* unsigned char PostProcessState[0]; +0x0000 b9 1d 00 00 unsigned char LeaveState[8]; +0x0000 b7 1d 00 00 }; */ struct _WDF_DEVICE_POWER_NOTIFICATION_DATA { unsigned char Type[4]; /* +0x0000 b5 1d 00 00 */ unsigned char Data[8]; /* +0x0004 bb 1d 00 00 */ }; struct _RESET_ENDPOINT_COMMAND_TRB { unsigned char Reserved0[12]; /* +0x0000 3e 12 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c a1 1d 00 00 */ /* unsigned char TransferStatePreserve[0]; +0x000c a5 1c 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char EndpointId[0]; +0x000c 4b 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 4c 1d 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _INPUT_CONTROL_CONTEXT64 { unsigned char DropContextFlags[4]; /* +0x0000 c0 1d 00 00 */ unsigned char AddContextFlags[4]; /* +0x0004 c1 1d 00 00 */ unsigned char Reserved1[24]; /* +0x0008 ed 1b 00 00 */ unsigned char Reserved[32]; /* +0x0020 29 1c 00 00 */ }; enum _USER_ACTIVITY_PRESENCE { PowerUserPresent = 0, PowerUserNotPresent = 1, PowerUserInactive = 2, PowerUserMaximum = 3, PowerUserInvalid = 3 }; struct _CONFIG_REGISTER { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char NumberOfDeviceSlotsEnabled[0]; +0x0000 72 1b 00 00 */ unsigned char Reserved0[4]; /* +0x0000 c6 1d 00 00 */ }; struct _GENERAL_LOOKASIDE { /* unsigned char ListHead[0]; +0x0000 7b 10 00 00 */ unsigned char SingleListHead[16]; /* +0x0000 31 10 00 00 */ unsigned short Depth; /* +0x0010 */ unsigned short MaximumDepth; /* +0x0012 */ unsigned long TotalAllocates; /* +0x0014 */ unsigned long AllocateMisses; /* +0x0018 */ unsigned long AllocateHits; /* +0x0018 */ unsigned long TotalFrees; /* +0x001c */ unsigned long FreeMisses; /* +0x0020 */ unsigned long FreeHits; /* +0x0020 */ unsigned char Type[4]; /* +0x0024 92 10 00 00 */ unsigned long Tag; /* +0x0028 */ unsigned long Size; /* +0x002c */ /* unsigned char AllocateEx[0]; +0x0030 95 10 00 00 */ unsigned char Allocate[8]; /* +0x0030 a5 10 00 00 */ /* unsigned char FreeEx[0]; +0x0038 9c 10 00 00 */ unsigned char Free[8]; /* +0x0038 a8 10 00 00 */ unsigned char ListEntry[16]; /* +0x0040 1f 10 00 00 */ unsigned long LastTotalAllocates; /* +0x0050 */ unsigned long LastAllocateMisses; /* +0x0054 */ unsigned long LastAllocateHits; /* +0x0054 */ unsigned char Future[40]; /* +0x0058 62 1b 00 00 */ }; struct _IO_COMPLETION_CONTEXT { void *Port; /* +0x0000 */ void *Key; /* +0x0008 */ }; struct _SUPPPORTED_PROTOCOL_CAPABILITY { /* unsigned char AsUlong32[0]; +0x0000 3e 12 00 00 */ unsigned char Revision[4]; /* +0x0000 ce 1d 00 00 */ unsigned char NameString[4]; /* +0x0004 cf 1d 00 00 */ unsigned char PortOffsetCount[4]; /* +0x0008 d0 1d 00 00 */ }; struct _ROOTHUB_PORT_DATA { unsigned char MinorRevision; /* +0x0000 */ unsigned char MajorRevision; /* +0x0001 */ unsigned char L1Capability; /* +0x0002 */ unsigned char HighSpeedOnly; /* +0x0003 */ unsigned char IntegratedHubImplemented; /* +0x0004 */ unsigned char DeviceRemovable; /* +0x0005 */ unsigned long long ReadModifyWriteLock; /* +0x0008 */ unsigned char WdfTimer20PortResumeComplete[8]; /* +0x0010 35 15 00 00 */ }; struct _DISABLE_SLOT_COMMAND_TRB { unsigned char Reserved0[12]; /* +0x0000 3e 12 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 17 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _EVENT_DATA_TRB { unsigned long long Data; /* +0x0000 */ /* unsigned char Reserved0[0]; +0x0008 d7 1d 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char EvaluateNextTrb[0]; +0x000c 9e 1b 00 00 */ /* unsigned char Reserved1[0]; +0x000c d8 1d 00 00 */ /* unsigned char ChainBit[0]; +0x000c a1 1b 00 00 */ /* unsigned char InterruptOnCompletion[0]; +0x000c a2 1b 00 00 */ /* unsigned char Reserved2[0]; +0x000c d9 1d 00 00 */ /* unsigned char BlockEventInterrupt[0]; +0x000c a5 1c 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ unsigned char Reserved3[4]; /* +0x000c 74 1b 00 00 */ }; struct _DROP_CONTEXT_FLAGS { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char Reserved0[0]; +0x0000 dc 1d 00 00 */ /* unsigned char D2[0]; +0x0000 9f 1b 00 00 */ /* unsigned char D3[0]; +0x0000 a0 1b 00 00 */ /* unsigned char D4[0]; +0x0000 a1 1b 00 00 */ /* unsigned char D5[0]; +0x0000 a2 1b 00 00 */ /* unsigned char D6[0]; +0x0000 a3 1b 00 00 */ /* unsigned char D7[0]; +0x0000 a4 1b 00 00 */ /* unsigned char D8[0]; +0x0000 a5 1b 00 00 */ /* unsigned char D9[0]; +0x0000 a5 1c 00 00 */ /* unsigned char D10[0]; +0x0000 b9 1c 00 00 */ /* unsigned char D11[0]; +0x0000 ba 1c 00 00 */ /* unsigned char D12[0]; +0x0000 dd 1d 00 00 */ /* unsigned char D13[0]; +0x0000 de 1d 00 00 */ /* unsigned char D14[0]; +0x0000 df 1d 00 00 */ /* unsigned char D15[0]; +0x0000 32 1c 00 00 */ /* unsigned char D16[0]; +0x0000 a8 1c 00 00 */ /* unsigned char D17[0]; +0x0000 a9 1c 00 00 */ /* unsigned char D18[0]; +0x0000 aa 1c 00 00 */ /* unsigned char D19[0]; +0x0000 ab 1c 00 00 */ /* unsigned char D20[0]; +0x0000 ac 1c 00 00 */ /* unsigned char D21[0]; +0x0000 ad 1c 00 00 */ /* unsigned char D22[0]; +0x0000 ae 1c 00 00 */ /* unsigned char D23[0]; +0x0000 af 1c 00 00 */ /* unsigned char D24[0]; +0x0000 14 1c 00 00 */ /* unsigned char D25[0]; +0x0000 15 1c 00 00 */ /* unsigned char D26[0]; +0x0000 9a 1b 00 00 */ /* unsigned char D27[0]; +0x0000 b0 1c 00 00 */ /* unsigned char D28[0]; +0x0000 e0 1d 00 00 */ /* unsigned char D29[0]; +0x0000 e1 1d 00 00 */ /* unsigned char D30[0]; +0x0000 b2 1c 00 00 */ unsigned char D31[4]; /* +0x0000 b3 1c 00 00 */ }; struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *Reserved; /* +0x0018 */ unsigned long TransferFlags; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned char RequestTypeReservedBits; /* +0x0080 */ unsigned char Request; /* +0x0081 */ unsigned short Value; /* +0x0082 */ unsigned short Index; /* +0x0084 */ unsigned short Reserved1; /* +0x0086 */ }; struct _USBD_VERSION_INFORMATION { unsigned long USBDI_Version; /* +0x0000 */ unsigned long Supported_USB_Version; /* +0x0004 */ }; struct _SUPPPORTED_PROTOCOL_CAPABILITY_NAME_STRING { unsigned long AsUlong32; /* +0x0000 */ unsigned char NameString[4]; /* +0x0000 51 1d 00 00 */ }; struct _DMA_TRANSFER_INFO { unsigned long Version; /* +0x0000 */ unsigned char V1[12]; /* +0x0004 ea 1d 00 00 */ }; struct _wIndex { unsigned char LowByte; /* +0x0000 */ unsigned char HiByte; /* +0x0001 */ unsigned short W; /* +0x0000 */ }; struct _EVALUATE_CONTEXT_COMMAND_TRB { unsigned long long InputContextPointer; /* +0x0000 */ unsigned long Reserved0; /* +0x0008 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 17 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID = 0, DPFLTR_SMSS_ID = 1, DPFLTR_SETUP_ID = 2, DPFLTR_NTFS_ID = 3, DPFLTR_FSTUB_ID = 4, DPFLTR_CRASHDUMP_ID = 5, DPFLTR_CDAUDIO_ID = 6, DPFLTR_CDROM_ID = 7, DPFLTR_CLASSPNP_ID = 8, DPFLTR_DISK_ID = 9, DPFLTR_REDBOOK_ID = 10, DPFLTR_STORPROP_ID = 11, DPFLTR_SCSIPORT_ID = 12, DPFLTR_SCSIMINIPORT_ID = 13, DPFLTR_CONFIG_ID = 14, DPFLTR_I8042PRT_ID = 15, DPFLTR_SERMOUSE_ID = 16, DPFLTR_LSERMOUS_ID = 17, DPFLTR_KBDHID_ID = 18, DPFLTR_MOUHID_ID = 19, DPFLTR_KBDCLASS_ID = 20, DPFLTR_MOUCLASS_ID = 21, DPFLTR_TWOTRACK_ID = 22, DPFLTR_WMILIB_ID = 23, DPFLTR_ACPI_ID = 24, DPFLTR_AMLI_ID = 25, DPFLTR_HALIA64_ID = 26, DPFLTR_VIDEO_ID = 27, DPFLTR_SVCHOST_ID = 28, DPFLTR_VIDEOPRT_ID = 29, DPFLTR_TCPIP_ID = 30, DPFLTR_DMSYNTH_ID = 31, DPFLTR_NTOSPNP_ID = 32, DPFLTR_FASTFAT_ID = 33, DPFLTR_SAMSS_ID = 34, DPFLTR_PNPMGR_ID = 35, DPFLTR_NETAPI_ID = 36, DPFLTR_SCSERVER_ID = 37, DPFLTR_SCCLIENT_ID = 38, DPFLTR_SERIAL_ID = 39, DPFLTR_SERENUM_ID = 40, DPFLTR_UHCD_ID = 41, DPFLTR_RPCPROXY_ID = 42, DPFLTR_AUTOCHK_ID = 43, DPFLTR_DCOMSS_ID = 44, DPFLTR_UNIMODEM_ID = 45, DPFLTR_SIS_ID = 46, DPFLTR_FLTMGR_ID = 47, DPFLTR_WMICORE_ID = 48, DPFLTR_BURNENG_ID = 49, DPFLTR_IMAPI_ID = 50, DPFLTR_SXS_ID = 51, DPFLTR_FUSION_ID = 52, DPFLTR_IDLETASK_ID = 53, DPFLTR_SOFTPCI_ID = 54, DPFLTR_TAPE_ID = 55, DPFLTR_MCHGR_ID = 56, DPFLTR_IDEP_ID = 57, DPFLTR_PCIIDE_ID = 58, DPFLTR_FLOPPY_ID = 59, DPFLTR_FDC_ID = 60, DPFLTR_TERMSRV_ID = 61, DPFLTR_W32TIME_ID = 62, DPFLTR_PREFETCHER_ID = 63, DPFLTR_RSFILTER_ID = 64, DPFLTR_FCPORT_ID = 65, DPFLTR_PCI_ID = 66, DPFLTR_DMIO_ID = 67, DPFLTR_DMCONFIG_ID = 68, DPFLTR_DMADMIN_ID = 69, DPFLTR_WSOCKTRANSPORT_ID = 70, DPFLTR_VSS_ID = 71, DPFLTR_PNPMEM_ID = 72, DPFLTR_PROCESSOR_ID = 73, DPFLTR_DMSERVER_ID = 74, DPFLTR_SR_ID = 75, DPFLTR_INFINIBAND_ID = 76, DPFLTR_IHVDRIVER_ID = 77, DPFLTR_IHVVIDEO_ID = 78, DPFLTR_IHVAUDIO_ID = 79, DPFLTR_IHVNETWORK_ID = 80, DPFLTR_IHVSTREAMING_ID = 81, DPFLTR_IHVBUS_ID = 82, DPFLTR_HPS_ID = 83, DPFLTR_RTLTHREADPOOL_ID = 84, DPFLTR_LDR_ID = 85, DPFLTR_TCPIP6_ID = 86, DPFLTR_ISAPNP_ID = 87, DPFLTR_SHPC_ID = 88, DPFLTR_STORPORT_ID = 89, DPFLTR_STORMINIPORT_ID = 90, DPFLTR_PRINTSPOOLER_ID = 91, DPFLTR_VSSDYNDISK_ID = 92, DPFLTR_VERIFIER_ID = 93, DPFLTR_VDS_ID = 94, DPFLTR_VDSBAS_ID = 95, DPFLTR_VDSDYN_ID = 96, DPFLTR_VDSDYNDR_ID = 97, DPFLTR_VDSLDR_ID = 98, DPFLTR_VDSUTIL_ID = 99, DPFLTR_DFRGIFC_ID = 100, DPFLTR_DEFAULT_ID = 101, DPFLTR_MM_ID = 102, DPFLTR_DFSC_ID = 103, DPFLTR_WOW64_ID = 104, DPFLTR_ALPC_ID = 105, DPFLTR_WDI_ID = 106, DPFLTR_PERFLIB_ID = 107, DPFLTR_KTM_ID = 108, DPFLTR_IOSTRESS_ID = 109, DPFLTR_HEAP_ID = 110, DPFLTR_WHEA_ID = 111, DPFLTR_USERGDI_ID = 112, DPFLTR_MMCSS_ID = 113, DPFLTR_TPM_ID = 114, DPFLTR_THREADORDER_ID = 115, DPFLTR_ENVIRON_ID = 116, DPFLTR_EMS_ID = 117, DPFLTR_WDT_ID = 118, DPFLTR_FVEVOL_ID = 119, DPFLTR_NDIS_ID = 120, DPFLTR_NVCTRACE_ID = 121, DPFLTR_LUAFV_ID = 122, DPFLTR_APPCOMPAT_ID = 123, DPFLTR_USBSTOR_ID = 124, DPFLTR_SBP2PORT_ID = 125, DPFLTR_COVERAGE_ID = 126, DPFLTR_CACHEMGR_ID = 127, DPFLTR_MOUNTMGR_ID = 128, DPFLTR_CFR_ID = 129, DPFLTR_TXF_ID = 130, DPFLTR_KSECDD_ID = 131, DPFLTR_FLTREGRESS_ID = 132, DPFLTR_MPIO_ID = 133, DPFLTR_MSDSM_ID = 134, DPFLTR_UDFS_ID = 135, DPFLTR_PSHED_ID = 136, DPFLTR_STORVSP_ID = 137, DPFLTR_LSASS_ID = 138, DPFLTR_SSPICLI_ID = 139, DPFLTR_CNG_ID = 140, DPFLTR_EXFAT_ID = 141, DPFLTR_FILETRACE_ID = 142, DPFLTR_XSAVE_ID = 143, DPFLTR_SE_ID = 144, DPFLTR_DRIVEEXTENDER_ID = 145, DPFLTR_POWER_ID = 146, DPFLTR_CRASHDUMPXHCI_ID = 147, DPFLTR_GPIO_ID = 148, DPFLTR_ENDOFTABLE_ID = 149 }; struct _HOST_CONTROLLER_EVENT_TRB { unsigned long long Reserved0; /* +0x0000 */ /* unsigned char Reserved1[0]; +0x0008 34 1d 00 00 */ unsigned char CompletionCode[4]; /* +0x0008 18 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved2[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ unsigned char Reserved3[4]; /* +0x000c 74 1b 00 00 */ }; struct _KSPIN_LOCK_QUEUE { unsigned char Next[8]; /* +0x0000 f5 1d 00 00 */ unsigned char Lock[8]; /* +0x0008 f6 1d 00 00 */ }; enum _DRIVER_RUNTIME_INIT_FLAGS { DrvRtPoolNxOptIn = 1, LastDrvRtFlag = 2 }; struct _USBD_ISO_PACKET_DESCRIPTOR { unsigned long Offset; /* +0x0000 */ unsigned long Length; /* +0x0004 */ long Status; /* +0x0008 */ }; struct _BM_REQUEST_TYPE { /* unsigned char Recipient[0]; +0x0000 ff 18 00 00 */ /* unsigned char Reserved[0]; +0x0000 00 19 00 00 */ /* unsigned char Type[0]; +0x0000 01 19 00 00 */ /* unsigned char Dir[0]; +0x0000 02 19 00 00 */ unsigned char B; /* +0x0000 */ }; struct _ADD_CONTEXT_FLAGS { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char A0[0]; +0x0000 11 1a 00 00 */ /* unsigned char A1[0]; +0x0000 9e 1b 00 00 */ /* unsigned char A2[0]; +0x0000 9f 1b 00 00 */ /* unsigned char A3[0]; +0x0000 a0 1b 00 00 */ /* unsigned char A4[0]; +0x0000 a1 1b 00 00 */ /* unsigned char A5[0]; +0x0000 a2 1b 00 00 */ /* unsigned char A6[0]; +0x0000 a3 1b 00 00 */ /* unsigned char A7[0]; +0x0000 a4 1b 00 00 */ /* unsigned char A8[0]; +0x0000 a5 1b 00 00 */ /* unsigned char A9[0]; +0x0000 a5 1c 00 00 */ /* unsigned char A10[0]; +0x0000 b9 1c 00 00 */ /* unsigned char A11[0]; +0x0000 ba 1c 00 00 */ /* unsigned char A12[0]; +0x0000 dd 1d 00 00 */ /* unsigned char A13[0]; +0x0000 de 1d 00 00 */ /* unsigned char A14[0]; +0x0000 df 1d 00 00 */ /* unsigned char A15[0]; +0x0000 32 1c 00 00 */ /* unsigned char A16[0]; +0x0000 a8 1c 00 00 */ /* unsigned char A17[0]; +0x0000 a9 1c 00 00 */ /* unsigned char A18[0]; +0x0000 aa 1c 00 00 */ /* unsigned char A19[0]; +0x0000 ab 1c 00 00 */ /* unsigned char A20[0]; +0x0000 ac 1c 00 00 */ /* unsigned char A21[0]; +0x0000 ad 1c 00 00 */ /* unsigned char A22[0]; +0x0000 ae 1c 00 00 */ /* unsigned char A23[0]; +0x0000 af 1c 00 00 */ /* unsigned char A24[0]; +0x0000 14 1c 00 00 */ /* unsigned char A25[0]; +0x0000 15 1c 00 00 */ /* unsigned char A26[0]; +0x0000 9a 1b 00 00 */ /* unsigned char A27[0]; +0x0000 b0 1c 00 00 */ /* unsigned char A28[0]; +0x0000 e0 1d 00 00 */ /* unsigned char A29[0]; +0x0000 e1 1d 00 00 */ /* unsigned char A30[0]; +0x0000 b2 1c 00 00 */ unsigned char A31[4]; /* +0x0000 b3 1c 00 00 */ }; /* struct { /* unsigned char type0[0]; +0x0000 01 1e 00 00 /* unsigned char type1[0]; +0x0000 02 1e 00 00 unsigned char type2[48]; +0x0000 03 1e 00 00 }; */ struct _PCI_COMMON_CONFIG { unsigned short VendorID; /* +0x0000 */ unsigned short DeviceID; /* +0x0002 */ unsigned short Command; /* +0x0004 */ unsigned short Status; /* +0x0006 */ unsigned char RevisionID; /* +0x0008 */ unsigned char ProgIf; /* +0x0009 */ unsigned char SubClass; /* +0x000a */ unsigned char BaseClass; /* +0x000b */ unsigned char CacheLineSize; /* +0x000c */ unsigned char LatencyTimer; /* +0x000d */ unsigned char HeaderType; /* +0x000e */ unsigned char BIST; /* +0x000f */ unsigned char u[48]; /* +0x0010 05 1e 00 00 */ unsigned char DeviceSpecific[192]; /* +0x0040 06 1e 00 00 */ }; struct _DMA_ADAPTER_INFO { unsigned long Version; /* +0x0000 */ unsigned char V1[20]; /* +0x0004 09 1e 00 00 */ }; struct _CM_RESOURCE_LIST { unsigned long Count; /* +0x0000 */ unsigned char List[36]; /* +0x0004 0d 1e 00 00 */ }; struct _ENDPOINT_RESET_DATA { unsigned char EndpointData[8]; /* +0x0000 48 1c 00 00 */ unsigned char InputBufferData[8]; /* +0x0008 ab 1b 00 00 */ unsigned char Crb[64]; /* +0x0010 fc 1b 00 00 */ }; struct _CM_FULL_RESOURCE_DESCRIPTOR { unsigned char InterfaceType[4]; /* +0x0000 de 14 00 00 */ unsigned long BusNumber; /* +0x0004 */ unsigned char PartialResourceList[28]; /* +0x0008 12 1e 00 00 */ }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS { /* unsigned char Primary[0]; +0x0000 11 1a 00 00 */ /* unsigned char ContainmentWarning[0]; +0x0000 9e 1b 00 00 */ /* unsigned char Reset[0]; +0x0000 9f 1b 00 00 */ /* unsigned char ThresholdExceeded[0]; +0x0000 a0 1b 00 00 */ /* unsigned char ResourceNotAvailable[0]; +0x0000 a1 1b 00 00 */ /* unsigned char LatentError[0]; +0x0000 a2 1b 00 00 */ /* unsigned char Reserved[0]; +0x0000 89 1d 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; struct _POWER_SEQUENCE { unsigned long SequenceD1; /* +0x0000 */ unsigned long SequenceD2; /* +0x0004 */ unsigned long SequenceD3; /* +0x0008 */ }; struct _URB_CONTROL_GET_INTERFACE_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *Reserved; /* +0x0018 */ unsigned long Reserved0; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned char Reserved1[4]; /* +0x0080 51 1d 00 00 */ unsigned short Interface; /* +0x0084 */ unsigned short Reserved2; /* +0x0086 */ }; struct _ERDP { unsigned long long AsUlong64; /* +0x0000 */ /* unsigned char DequeueErstSegmentIndex[0]; +0x0000 47 1d 00 00 */ /* unsigned char EventHandlerBusy[0]; +0x0000 6c 1b 00 00 */ unsigned char DequeuePointer[8]; /* +0x0000 8c 10 00 00 */ }; /* struct { unsigned char EvtIoWdmIrpForForwardProgress[8]; +0x0000 1b 17 00 00 }; */ /* struct { unsigned char ExaminePolicy[8]; +0x0000 1e 1e 00 00 }; */ struct _WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS { unsigned char Policy[8]; /* +0x0000 20 1e 00 00 */ }; /* struct { /* unsigned char TableSize[0]; +0x0000 24 1e 00 00 /* unsigned char Reserved[0]; +0x0000 25 1e 00 00 /* unsigned char FunctionMask[0]; +0x0000 26 1e 00 00 unsigned char MSIXEnable[2]; +0x0000 27 1e 00 00 }; */ struct PCI_MSIX_CAPABILITY { unsigned char Header[2]; /* +0x0000 23 1e 00 00 */ unsigned char MessageControl[2]; /* +0x0002 29 1e 00 00 */ unsigned char MessageTable[4]; /* +0x0004 2a 1e 00 00 */ unsigned char PBATable[4]; /* +0x0008 2a 1e 00 00 */ }; struct MSIX_TABLE_POINTER { /* unsigned char BaseIndexRegister[0]; +0x0000 2e 1c 00 00 */ /* unsigned char Reserved[0]; +0x0000 2d 1e 00 00 */ unsigned long TableOffset; /* +0x0000 */ }; /* struct { /* unsigned char Register[0]; +0x0000 31 1e 00 00 unsigned long Raw; +0x0000 }; */ /* struct { unsigned short MessageData; +0x0000 unsigned short Reserved; +0x0002 unsigned long MaskBits; +0x0004 unsigned long PendingBits; +0x0008 }; */ /* struct { unsigned long MessageAddressUpper; +0x0000 unsigned short MessageData; +0x0004 unsigned short Reserved; +0x0006 unsigned long MaskBits; +0x0008 unsigned long PendingBits; +0x000c }; */ struct PCI_MSI_CAPABILITY { unsigned char Header[2]; /* +0x0000 23 1e 00 00 */ unsigned char MessageControl[2]; /* +0x0002 30 1e 00 00 */ unsigned char MessageAddressLower[4]; /* +0x0004 33 1e 00 00 */ /* unsigned char Option32Bit[0]; +0x0008 35 1e 00 00 */ unsigned char Option64Bit[16]; /* +0x0008 37 1e 00 00 */ }; struct _USB_DUMP_DEVICE_INFO { unsigned long EndpointCount; /* +0x0000 */ unsigned char EndpointInfo[8]; /* +0x0008 3b 1e 00 00 */ unsigned char ConfigurationId; /* +0x0010 */ unsigned char InterfaceId; /* +0x0011 */ unsigned char AlternateSettingId; /* +0x0012 */ void *DeviceHandle; /* +0x0018 */ }; struct _ADDRESS_DEVICE_COMMAND_TRB { unsigned long long InputContextPointer; /* +0x0000 */ unsigned long Reserved0; /* +0x0008 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c a1 1d 00 00 */ /* unsigned char BlockSetAddressRequest[0]; +0x000c a5 1c 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Reserved2[0]; +0x000c 17 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; /* struct { unsigned char CurrentState[4]; +0x0000 59 14 00 00 unsigned char NewState[4]; +0x0004 59 14 00 00 }; */ /* struct { unsigned char CurrentState[4]; +0x0000 59 14 00 00 }; */ /* struct { /* unsigned char EnterState[0]; +0x0000 41 1e 00 00 /* unsigned char PostProcessState[0]; +0x0000 43 1e 00 00 unsigned char LeaveState[8]; +0x0000 41 1e 00 00 }; */ struct _WDF_DEVICE_POWER_POLICY_NOTIFICATION_DATA { unsigned char Type[4]; /* +0x0000 b5 1d 00 00 */ unsigned char Data[8]; /* +0x0004 45 1e 00 00 */ }; struct _COMMAND_COMPLETION_EVENT_TRB { unsigned long long CommandPointer; /* +0x0000 */ /* unsigned char Reserved0[0]; +0x0008 34 1d 00 00 */ unsigned char CompletionCode[4]; /* +0x0008 18 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved1[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char VirtualFunctionId[0]; +0x000c 17 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _URB_SELECT_CONFIGURATION { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ unsigned char ConfigurationDescriptor[8]; /* +0x0018 2f 19 00 00 */ void *ConfigurationHandle; /* +0x0020 */ unsigned char Interface[48]; /* +0x0028 96 1d 00 00 */ }; struct _IO_STATUS_BLOCK { long Status; /* +0x0000 */ void *Pointer; /* +0x0000 */ unsigned long long Information; /* +0x0008 */ }; struct _DATA_STAGE_TRB { unsigned long long DataBufferPointer; /* +0x0000 */ /* unsigned char TransferLength[0]; +0x0008 68 1d 00 00 */ /* unsigned char TDSize[0]; +0x0008 69 1d 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char EvaluateNextTrb[0]; +0x000c 9e 1b 00 00 */ /* unsigned char InterruptOnShortPacket[0]; +0x000c 9f 1b 00 00 */ /* unsigned char NoSnoop[0]; +0x000c a0 1b 00 00 */ /* unsigned char ChainBit[0]; +0x000c a1 1b 00 00 */ /* unsigned char InterruptOnCompletion[0]; +0x000c a2 1b 00 00 */ /* unsigned char ImmediateData[0]; +0x000c a3 1b 00 00 */ /* unsigned char Reserved0[0]; +0x000c 8f 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Direction[0]; +0x000c a8 1c 00 00 */ unsigned char Reserved1[4]; /* +0x000c 4e 1e 00 00 */ }; struct _PCI_CAPABILITIES_HEADER { unsigned char CapabilityID; /* +0x0000 */ unsigned char Next; /* +0x0001 */ }; struct _USBD_INTERFACE_INFORMATION { unsigned short Length; /* +0x0000 */ unsigned char InterfaceNumber; /* +0x0002 */ unsigned char AlternateSetting; /* +0x0003 */ unsigned char Class; /* +0x0004 */ unsigned char SubClass; /* +0x0005 */ unsigned char Protocol; /* +0x0006 */ unsigned char Reserved; /* +0x0007 */ void *InterfaceHandle; /* +0x0008 */ unsigned long NumberOfPipes; /* +0x0010 */ unsigned char Pipes[24]; /* +0x0018 54 1e 00 00 */ }; enum _TRANSFER_STATE { TransferState_NotValid = 0, TransferState_PendingResources = 1, TransferState_Pending = 2, TransferState_PendingCancel = 3, TransferState_Cancelled = 4, TransferState_TimedOut = 5 }; struct _TRANSFER_DATA { unsigned char ListEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned char TransferState[8]; /* +0x0010 58 1e 00 00 */ unsigned char WdfRequest[8]; /* +0x0018 b4 13 00 00 */ unsigned char TransferUrb[8]; /* +0x0020 85 1c 00 00 */ unsigned char TransferRingData[8]; /* +0x0028 62 1c 00 00 */ unsigned long BytesTotal; /* +0x0030 */ unsigned long BytesTransferred; /* +0x0034 */ unsigned long BytesRemaining; /* +0x0038 */ unsigned long BytesStaged; /* +0x003c */ unsigned long CompletionCode; /* +0x0040 */ unsigned long ResourceAcquireCount; /* +0x0044 */ unsigned char CancelSet; /* +0x0048 */ unsigned long StageTotalCount; /* +0x004c */ unsigned long StageMappedCount; /* +0x0050 */ unsigned long StageCompletedCount; /* +0x0054 */ unsigned long StagingIndex; /* +0x0058 */ unsigned char StagingData[336]; /* +0x0060 5a 1e 00 00 */ unsigned char Crb[64]; /* +0x01b0 fc 1b 00 00 */ }; struct _TRANSFER_RING_ATTRIBUTES { unsigned long MaxStageSize; /* +0x0000 */ unsigned long MaxPendingStages; /* +0x0004 */ unsigned long NumberOfTransferRingSegments; /* +0x0008 */ unsigned long TransferRingSegmentSize; /* +0x000c */ unsigned long DoubleBufferSize; /* +0x0010 */ }; struct _KDEVICE_QUEUE_ENTRY { unsigned char DeviceListEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned long SortKey; /* +0x0010 */ unsigned char Inserted; /* +0x0014 */ }; enum _WDF_USB_REQUEST_TYPE { WdfUsbRequestTypeInvalid = 0, WdfUsbRequestTypeNoFormat = 1, WdfUsbRequestTypeDeviceString = 2, WdfUsbRequestTypeDeviceControlTransfer = 3, WdfUsbRequestTypeDeviceUrb = 4, WdfUsbRequestTypePipeWrite = 5, WdfUsbRequestTypePipeRead = 6, WdfUsbRequestTypePipeAbort = 7, WdfUsbRequestTypePipeReset = 8, WdfUsbRequestTypePipeUrb = 9 }; /* struct { unsigned char Buffer[8]; +0x0000 26 13 00 00 unsigned short LangID; +0x0008 unsigned char StringIndex; +0x000a unsigned char RequiredSize; +0x000b }; */ /* struct { unsigned char Buffer[8]; +0x0000 26 13 00 00 unsigned char SetupPacket[8]; +0x0008 fd 18 00 00 unsigned long Length; +0x0010 }; */ /* struct { unsigned char Buffer[8]; +0x0000 26 13 00 00 }; */ /* struct { /* unsigned char DeviceString[0]; +0x0000 64 1e 00 00 /* unsigned char DeviceControlTransfer[0]; +0x0000 66 1e 00 00 /* unsigned char DeviceUrb[0]; +0x0000 68 1e 00 00 /* unsigned char PipeWrite[0]; +0x0000 2b 16 00 00 /* unsigned char PipeRead[0]; +0x0000 2b 16 00 00 unsigned char PipeUrb[24]; +0x0000 68 1e 00 00 }; */ struct _WDF_USB_REQUEST_COMPLETION_PARAMS { long UsbdStatus; /* +0x0000 */ unsigned char Type[4]; /* +0x0004 62 1e 00 00 */ unsigned char Parameters[24]; /* +0x0008 6a 1e 00 00 */ }; struct _PORTPMSC_USB3 { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char U1Timeout[0]; +0x0000 72 1b 00 00 */ /* unsigned char U2Timeout[0]; +0x0000 73 1b 00 00 */ /* unsigned char ForceLinkPMAccept[0]; +0x0000 a8 1c 00 00 */ unsigned char Reserved[4]; /* +0x0000 4e 1e 00 00 */ }; struct _URB_HCD_AREA { unsigned char Reserved8[64]; /* +0x0000 6f 1e 00 00 */ }; enum _UCX_CLASS_FUNCTIONS { UcxIoDeviceControlIndex = 0, UcxControllerCreateIndex = 1, UcxControllerNeedsResetIndex = 2, UcxControllerResetCompleteIndex = 3, UcxRootHubCreateIndex = 4, UcxRootHubPortChangedIndex = 5, UcxUsbDeviceCreateIndex = 6, UcxUsbDeviceInitSetEventCallbacksIndex = 7, UcxUsbDeviceRemoteWakeNotificationIndex = 8, UcxEndpointCreateIndex = 9, UcxEndpointNeedToCancelTransfersIndex = 10, UcxEndpointInitSetEventCallbacksIndex = 11, UcxDefaultEndpointInitSetEventCallbacksIndex = 12, UcxEndpointInitSetWdfIoQueueIndex = 13, UcxEndpointPurgeCompleteIndex = 14, UcxEndpointStartCompleteIndex = 15, UcxEndpointAbortCompleteIndex = 16, UcxStaticStreamsInitSetStreamInfoIndex = 17, UcxStaticStreamsCreateIndex = 18, UcxFunctionsMax = 19 }; struct _DEVICE_CAPABILITIES { unsigned short Size; /* +0x0000 */ unsigned short Version; /* +0x0002 */ /* unsigned char DeviceD1[0]; +0x0004 11 1a 00 00 */ /* unsigned char DeviceD2[0]; +0x0004 9e 1b 00 00 */ /* unsigned char LockSupported[0]; +0x0004 9f 1b 00 00 */ /* unsigned char EjectSupported[0]; +0x0004 a0 1b 00 00 */ /* unsigned char Removable[0]; +0x0004 a1 1b 00 00 */ /* unsigned char DockDevice[0]; +0x0004 a2 1b 00 00 */ /* unsigned char UniqueID[0]; +0x0004 a3 1b 00 00 */ /* unsigned char SilentInstall[0]; +0x0004 a4 1b 00 00 */ /* unsigned char RawDeviceOK[0]; +0x0004 a5 1b 00 00 */ /* unsigned char SurpriseRemovalOK[0]; +0x0004 a5 1c 00 00 */ /* unsigned char WakeFromD0[0]; +0x0004 b9 1c 00 00 */ /* unsigned char WakeFromD1[0]; +0x0004 ba 1c 00 00 */ /* unsigned char WakeFromD2[0]; +0x0004 dd 1d 00 00 */ /* unsigned char WakeFromD3[0]; +0x0004 de 1d 00 00 */ /* unsigned char HardwareDisabled[0]; +0x0004 df 1d 00 00 */ /* unsigned char NonDynamic[0]; +0x0004 32 1c 00 00 */ /* unsigned char WarmEjectSupported[0]; +0x0004 a8 1c 00 00 */ /* unsigned char NoDisplayInUI[0]; +0x0004 a9 1c 00 00 */ /* unsigned char Reserved1[0]; +0x0004 aa 1c 00 00 */ unsigned char Reserved[4]; /* +0x0004 74 1e 00 00 */ unsigned long Address; /* +0x0008 */ unsigned long UINumber; /* +0x000c */ unsigned char DeviceState[28]; /* +0x0010 08 14 00 00 */ unsigned char SystemWake[4]; /* +0x002c 48 11 00 00 */ unsigned char DeviceWake[4]; /* +0x0030 9f 11 00 00 */ unsigned long D1Latency; /* +0x0034 */ unsigned long D2Latency; /* +0x0038 */ unsigned long D3Latency; /* +0x003c */ }; struct _USB_PORT_STATUS { unsigned short AsUshort16; /* +0x0000 */ /* unsigned char Usb20PortStatus[0]; +0x0000 78 1e 00 00 */ unsigned char Usb30PortStatus[2]; /* +0x0000 79 1e 00 00 */ }; struct _NORMAL_TRB { unsigned long long DataBufferPointer; /* +0x0000 */ /* unsigned char TransferLength[0]; +0x0008 68 1d 00 00 */ /* unsigned char TDSize[0]; +0x0008 69 1d 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char EvaluateNextTrb[0]; +0x000c 9e 1b 00 00 */ /* unsigned char InterruptOnShortPacket[0]; +0x000c 9f 1b 00 00 */ /* unsigned char NoSnoop[0]; +0x000c a0 1b 00 00 */ /* unsigned char ChainBit[0]; +0x000c a1 1b 00 00 */ /* unsigned char InterruptOnCompletion[0]; +0x000c a2 1b 00 00 */ /* unsigned char ImmediateData[0]; +0x000c a3 1b 00 00 */ /* unsigned char Reserved0[0]; +0x000c 6a 1d 00 00 */ /* unsigned char BlockEventInterrupt[0]; +0x000c a5 1c 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ unsigned char Reserved1[4]; /* +0x000c 74 1b 00 00 */ }; struct _USB_DUMP_DEVICE_ENDPOINT_INFO { unsigned char Address; /* +0x0000 */ unsigned long MaximumTransferSize; /* +0x0004 */ }; struct _COMMON_BUFFER_CALLBACK_DATA { unsigned char ListEntry[16]; /* +0x0000 1f 10 00 00 */ void *Owner; /* +0x0010 */ unsigned long NumberToAcquire; /* +0x0018 */ unsigned long BufferSize; /* +0x001c */ unsigned long Tag; /* +0x0020 */ unsigned char Callback[8]; /* +0x0028 83 1e 00 00 */ }; struct _USBDEVICE_ENDPOINTS_CONFIGURE_DATA { unsigned char EndpointEnableFailed; /* +0x0000 */ unsigned char ConfigureEndpointCommandFailed; /* +0x0001 */ }; struct _WHEA_ERROR_RECORD_HEADER_VALIDBITS { /* unsigned char PlatformId[0]; +0x0000 11 1a 00 00 */ /* unsigned char Timestamp[0]; +0x0000 9e 1b 00 00 */ /* unsigned char PartitionId[0]; +0x0000 9f 1b 00 00 */ /* unsigned char Reserved[0]; +0x0000 2d 1e 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; struct _CM_PARTIAL_RESOURCE_LIST { unsigned short Version; /* +0x0000 */ unsigned short Revision; /* +0x0002 */ unsigned long Count; /* +0x0004 */ unsigned char PartialDescriptors[20]; /* +0x0008 8a 1e 00 00 */ }; struct _UCXUSBDEVICE_INFO { unsigned long Size; /* +0x0000 */ unsigned char DeviceSpeed[4]; /* +0x0004 03 1c 00 00 */ unsigned char TtHub[8]; /* +0x0008 33 1a 00 00 */ unsigned char PortPath[40]; /* +0x0010 eb 1b 00 00 */ }; struct _SECTION_OBJECT_POINTERS { void *DataSectionObject; /* +0x0000 */ void *SharedCacheMap; /* +0x0008 */ void *ImageSectionObject; /* +0x0010 */ }; struct _INPUT_CONTROL_CONTEXT32 { unsigned char DropContextFlags[4]; /* +0x0000 c0 1d 00 00 */ unsigned char AddContextFlags[4]; /* +0x0004 c1 1d 00 00 */ unsigned char Reserved1[24]; /* +0x0008 ed 1b 00 00 */ }; struct _PORTPMSC_USB2 { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char L1Status[0]; +0x0000 2e 1c 00 00 */ /* unsigned char RemoteWakeEnable[0]; +0x0000 a0 1b 00 00 */ /* unsigned char HostInitiatedResumeDuration[0]; +0x0000 97 1b 00 00 */ /* unsigned char L1DeviceSlot[0]; +0x0000 73 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 93 1e 00 00 */ unsigned char TestMode[4]; /* +0x0000 94 1e 00 00 */ }; struct _KDEVICE_QUEUE { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned char DeviceListHead[16]; /* +0x0008 1f 10 00 00 */ unsigned long long Lock; /* +0x0018 */ unsigned char Busy; /* +0x0020 */ /* unsigned char Reserved[0]; +0x0020 97 1e 00 00 */ unsigned char Hint[8]; /* +0x0020 98 1e 00 00 */ }; struct _SYSTEM_POWER_STATE_CONTEXT { /* unsigned char Reserved1[0]; +0x0000 72 1b 00 00 */ /* unsigned char TargetSystemState[0]; +0x0000 9b 1e 00 00 */ /* unsigned char EffectiveSystemState[0]; +0x0000 a7 1b 00 00 */ /* unsigned char CurrentSystemState[0]; +0x0000 6b 1d 00 00 */ /* unsigned char IgnoreHibernationPath[0]; +0x0000 ac 1c 00 00 */ /* unsigned char PseudoTransition[0]; +0x0000 ad 1c 00 00 */ /* unsigned char Reserved2[0]; +0x0000 1b 1c 00 00 */ unsigned long ContextAsUlong; /* +0x0000 */ }; /* struct { /* unsigned char MaxStreams[0]; +0x0000 9e 1e 00 00 unsigned char Reserved1[1]; +0x0000 9f 1e 00 00 }; */ /* struct { /* unsigned char Mult[0]; +0x0000 ff 18 00 00 unsigned char Reserved2[1]; +0x0000 a2 1e 00 00 }; */ /* struct { unsigned char AsUchar; +0x0000 /* unsigned char Bulk[0]; +0x0000 a1 1e 00 00 unsigned char Isochronous[1]; +0x0000 a4 1e 00 00 }; */ struct _USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR { unsigned char bLength; /* +0x0000 */ unsigned char bDescriptorType; /* +0x0001 */ unsigned char bMaxBurst; /* +0x0002 */ unsigned char bmAttributes[1]; /* +0x0003 a6 1e 00 00 */ unsigned short wBytesPerInterval; /* +0x0004 */ }; struct _SCATTER_GATHER_LIST { unsigned long NumberOfElements; /* +0x0000 */ unsigned long long Reserved; /* +0x0008 */ /* unsigned char Elements[0]; +0x0010 aa 1e 00 00 */ }; enum _WDF_RETRIEVE_CHILD_FLAGS { WdfRetrieveUnspecified = 0, WdfRetrievePresentChildren = 1, WdfRetrieveMissingChildren = 2, WdfRetrievePendingChildren = 4, WdfRetrieveAddedChildren = 5, WdfRetrieveAllChildren = 7 }; struct _DMA_TRANSFER_INFO_V1 { unsigned long MapRegisterCount; /* +0x0000 */ unsigned long ScatterGatherElementCount; /* +0x0004 */ unsigned long ScatterGatherListSize; /* +0x0008 */ }; struct _WHEA_TIMESTAMP { /* unsigned char Seconds[0]; +0x0000 b1 1e 00 00 */ /* unsigned char Minutes[0]; +0x0000 b2 1e 00 00 */ /* unsigned char Hours[0]; +0x0000 b3 1e 00 00 */ /* unsigned char Precise[0]; +0x0000 b4 1e 00 00 */ /* unsigned char Reserved[0]; +0x0000 b5 1e 00 00 */ /* unsigned char Day[0]; +0x0000 b6 1e 00 00 */ /* unsigned char Month[0]; +0x0000 b7 1e 00 00 */ /* unsigned char Year[0]; +0x0000 b8 1e 00 00 */ /* unsigned char Century[0]; +0x0000 b9 1e 00 00 */ unsigned char AsLARGE_INTEGER[8]; /* +0x0000 42 10 00 00 */ }; struct _VPB { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned short Flags; /* +0x0004 */ unsigned short VolumeLabelLength; /* +0x0006 */ unsigned char DeviceObject[8]; /* +0x0008 da 10 00 00 */ unsigned char RealDevice[8]; /* +0x0010 da 10 00 00 */ unsigned long SerialNumber; /* +0x0018 */ unsigned long ReferenceCount; /* +0x001c */ unsigned char VolumeLabel[64]; /* +0x0020 bc 1e 00 00 */ }; enum _WORK_QUEUE_TYPE { CriticalWorkQueue = 0, DelayedWorkQueue = 1, HyperCriticalWorkQueue = 2, NormalWorkQueue = 3, BackgroundWorkQueue = 4, MaximumWorkQueue = 5 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached = 2 }; struct _STATIC_STREAM_DATA { void *TransferRingHandle; /* +0x0000 */ unsigned char TransferRingEnabled; /* +0x0008 */ unsigned char Crb[64]; /* +0x0010 fc 1b 00 00 */ }; struct _PO_FX_COMPONENT { unsigned char Id[16]; /* +0x0000 27 11 00 00 */ unsigned long IdleStateCount; /* +0x0010 */ unsigned long DeepestWakeableIdleState; /* +0x0014 */ unsigned char IdleStates[8]; /* +0x0018 cd 1e 00 00 */ }; struct _POWER_STATE { /* unsigned char SystemState[0]; +0x0000 48 11 00 00 */ unsigned char DeviceState[4]; /* +0x0000 9f 11 00 00 */ }; struct _PORT_STATUS_CHANGE_EVENT_TRB { /* unsigned char Reserved0[0]; +0x0000 34 1d 00 00 */ unsigned char PortId[4]; /* +0x0000 18 1c 00 00 */ unsigned long Reserved1; /* +0x0004 */ /* unsigned char Reserved2[0]; +0x0008 34 1d 00 00 */ unsigned char CompletionCode[4]; /* +0x0008 18 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved3[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ unsigned char Reserved4[4]; /* +0x000c 74 1b 00 00 */ }; struct _PCI_HEADER_TYPE_0 { unsigned char BaseAddresses[24]; /* +0x0000 ed 1b 00 00 */ unsigned long CIS; /* +0x0018 */ unsigned short SubVendorID; /* +0x001c */ unsigned short SubSystemID; /* +0x001e */ unsigned long ROMBaseAddress; /* +0x0020 */ unsigned char CapabilitiesPtr; /* +0x0024 */ unsigned char Reserved1[3]; /* +0x0025 42 11 00 00 */ unsigned long Reserved2; /* +0x0028 */ unsigned char InterruptLine; /* +0x002c */ unsigned char InterruptPin; /* +0x002d */ unsigned char MinimumGrant; /* +0x002e */ unsigned char MaximumLatency; /* +0x002f */ }; struct _URB_HEADER { unsigned short Length; /* +0x0000 */ unsigned short Function; /* +0x0002 */ long Status; /* +0x0004 */ void *UsbdDeviceHandle; /* +0x0008 */ unsigned long UsbdFlags; /* +0x0010 */ }; struct _URB_GET_CURRENT_FRAME_NUMBER { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ unsigned long FrameNumber; /* +0x0018 */ }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS { /* unsigned char FRUId[0]; +0x0000 54 1d 00 00 */ /* unsigned char FRUText[0]; +0x0000 55 1d 00 00 */ /* unsigned char Reserved[0]; +0x0000 a2 1e 00 00 */ unsigned char AsUCHAR; /* +0x0000 */ }; enum _MODE { KernelMode = 0, UserMode = 1, MaximumMode = 2 }; enum _USBD_PIPE_TYPE { UsbdPipeTypeControl = 0, UsbdPipeTypeIsochronous = 1, UsbdPipeTypeBulk = 2, UsbdPipeTypeInterrupt = 3 }; struct _USBD_PIPE_INFORMATION { unsigned short MaximumPacketSize; /* +0x0000 */ unsigned char EndpointAddress; /* +0x0002 */ unsigned char Interval; /* +0x0003 */ unsigned char PipeType[4]; /* +0x0004 df 1e 00 00 */ void *PipeHandle; /* +0x0008 */ unsigned long MaximumTransferSize; /* +0x0010 */ unsigned long PipeFlags; /* +0x0014 */ }; struct _IO_RESOURCE_LIST { unsigned short Version; /* +0x0000 */ unsigned short Revision; /* +0x0002 */ unsigned long Count; /* +0x0004 */ unsigned char Descriptors[32]; /* +0x0008 e2 1e 00 00 */ }; struct _PO_FX_COMPONENT_IDLE_STATE { unsigned long long TransitionLatency; /* +0x0000 */ unsigned long long ResidencyRequirement; /* +0x0008 */ unsigned long NominalPower; /* +0x0010 */ }; struct _WHEA_ERROR_RECORD_HEADER_FLAGS { /* unsigned char Recovered[0]; +0x0000 11 1a 00 00 */ /* unsigned char PreviousError[0]; +0x0000 9e 1b 00 00 */ /* unsigned char Simulated[0]; +0x0000 9f 1b 00 00 */ /* unsigned char Reserved[0]; +0x0000 2d 1e 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; struct _USB_PORT_CHANGE { unsigned short AsUshort16; /* +0x0000 */ /* unsigned char Usb20PortChange[0]; +0x0000 e9 1e 00 00 */ unsigned char Usb30PortChange[2]; /* +0x0000 ea 1e 00 00 */ }; enum _WDF_POWER_POLICY_IDLE_TIMEOUT_CONSTANTS { IdleTimeoutDefaultConstant = 0 }; struct _USB_DUMP_CONTROLLER_INFO { unsigned long MajorVersion; /* +0x0000 */ unsigned long MinorVersion; /* +0x0004 */ void *ControllerContext; /* +0x0008 */ unsigned char ControllerInitialize[8]; /* +0x0010 f0 1e 00 00 */ unsigned char ControllerSendURB[8]; /* +0x0018 f3 1e 00 00 */ unsigned char ControllerSendURBAsync[8]; /* +0x0020 f3 1e 00 00 */ unsigned char ControllerPollForCompletion[8]; /* +0x0028 f6 1e 00 00 */ unsigned char ControllerResetDevice[8]; /* +0x0030 f0 1e 00 00 */ unsigned char ControllerCleanUp[8]; /* +0x0038 f0 1e 00 00 */ void *ControllerCommonBufferVA; /* +0x0040 */ unsigned char ControllerCommonBufferPA[8]; /* +0x0048 42 10 00 00 */ unsigned long ControllerCommonBufferSize; /* +0x0050 */ unsigned char ControllerSupportsMultistageResume; /* +0x0054 */ }; struct _STAGING_DATA { unsigned char TransferData[8]; /* +0x0000 6a 1c 00 00 */ unsigned char Used; /* +0x0008 */ unsigned char DmaTransfer; /* +0x0009 */ unsigned long RequiredTrbs; /* +0x000c */ unsigned long UsedTrbs; /* +0x0010 */ unsigned long TrbsPerBurst; /* +0x0014 */ unsigned long IsochPacketIndex; /* +0x0018 */ unsigned long EventDataCount; /* +0x001c */ unsigned char AvailableRingList[16]; /* +0x0020 1f 10 00 00 */ unsigned char FreeRingList[16]; /* +0x0030 1f 10 00 00 */ unsigned char DoubleBufferData[8]; /* +0x0040 ab 1b 00 00 */ unsigned long TransferSize; /* +0x0048 */ unsigned char *TransferBuffer; /* +0x0050 */ unsigned char FreeMdl; /* +0x0058 */ unsigned char TransferMdl[8]; /* +0x0060 b9 10 00 00 */ unsigned char ScatterGatherList[8]; /* +0x0068 c9 11 00 00 */ }; enum _WDF_DEVICE_STATE_FLAGS { = 32770 }; struct _WAIT_CONTEXT_BLOCK { /* unsigned char WaitQueueEntry[0]; +0x0000 de 10 00 00 */ unsigned char DmaWaitEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned long NumberOfChannels; /* +0x0010 */ /* unsigned char SyncCallback[0]; +0x0014 11 1a 00 00 */ /* unsigned char DmaContext[0]; +0x0014 9e 1b 00 00 */ unsigned char Reserved[4]; /* +0x0014 93 1d 00 00 */ unsigned char DeviceRoutine[8]; /* +0x0018 b9 11 00 00 */ void *DeviceContext; /* +0x0020 */ unsigned long NumberOfMapRegisters; /* +0x0028 */ void *DeviceObject; /* +0x0030 */ void *CurrentIrp; /* +0x0038 */ unsigned char BufferChainingDpc[8]; /* +0x0040 6a 11 00 00 */ }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY { unsigned char Linkage[16]; /* +0x0000 1f 10 00 00 */ unsigned long long Signature; /* +0x0010 */ }; struct _USB_30_PORT_STATUS { unsigned short AsUshort16; /* +0x0000 */ /* unsigned char CurrentConnectStatus[0]; +0x0000 02 1f 00 00 */ /* unsigned char PortEnabledDisabled[0]; +0x0000 03 1f 00 00 */ /* unsigned char Reserved0[0]; +0x0000 04 1f 00 00 */ /* unsigned char OverCurrent[0]; +0x0000 05 1f 00 00 */ /* unsigned char Reset[0]; +0x0000 06 1f 00 00 */ /* unsigned char PortLinkState[0]; +0x0000 07 1f 00 00 */ /* unsigned char PortPower[0]; +0x0000 08 1f 00 00 */ /* unsigned char NegotiatedDeviceSpeed[0]; +0x0000 09 1f 00 00 */ unsigned char Reserved1[2]; /* +0x0000 0a 1f 00 00 */ }; enum _WDFFUNCENUM { WdfChildListCreateTableIndex = 0, WdfChildListGetDeviceTableIndex = 1, WdfChildListRetrievePdoTableIndex = 2, WdfChildListRetrieveAddressDescriptionTableIndex = 3, WdfChildListBeginScanTableIndex = 4, WdfChildListEndScanTableIndex = 5, WdfChildListBeginIterationTableIndex = 6, WdfChildListRetrieveNextDeviceTableIndex = 7, WdfChildListEndIterationTableIndex = 8, WdfChildListAddOrUpdateChildDescriptionAsPresentTableIndex = 9, WdfChildListUpdateChildDescriptionAsMissingTableIndex = 10, WdfChildListUpdateAllChildDescriptionsAsPresentTableIndex = 11, WdfChildListRequestChildEjectTableIndex = 12, WdfCollectionCreateTableIndex = 13, WdfCollectionGetCountTableIndex = 14, WdfCollectionAddTableIndex = 15, WdfCollectionRemoveTableIndex = 16, WdfCollectionRemoveItemTableIndex = 17, WdfCollectionGetItemTableIndex = 18, WdfCollectionGetFirstItemTableIndex = 19, WdfCollectionGetLastItemTableIndex = 20, WdfCommonBufferCreateTableIndex = 21, WdfCommonBufferGetAlignedVirtualAddressTableIndex = 22, WdfCommonBufferGetAlignedLogicalAddressTableIndex = 23, WdfCommonBufferGetLengthTableIndex = 24, WdfControlDeviceInitAllocateTableIndex = 25, WdfControlDeviceInitSetShutdownNotificationTableIndex = 26, WdfControlFinishInitializingTableIndex = 27, WdfDeviceGetDeviceStateTableIndex = 28, WdfDeviceSetDeviceStateTableIndex = 29, WdfWdmDeviceGetWdfDeviceHandleTableIndex = 30, WdfDeviceWdmGetDeviceObjectTableIndex = 31, WdfDeviceWdmGetAttachedDeviceTableIndex = 32, WdfDeviceWdmGetPhysicalDeviceTableIndex = 33, WdfDeviceWdmDispatchPreprocessedIrpTableIndex = 34, WdfDeviceAddDependentUsageDeviceObjectTableIndex = 35, WdfDeviceAddRemovalRelationsPhysicalDeviceTableIndex = 36, WdfDeviceRemoveRemovalRelationsPhysicalDeviceTableIndex = 37, WdfDeviceClearRemovalRelationsDevicesTableIndex = 38, WdfDeviceGetDriverTableIndex = 39, WdfDeviceRetrieveDeviceNameTableIndex = 40, WdfDeviceAssignMofResourceNameTableIndex = 41, WdfDeviceGetIoTargetTableIndex = 42, WdfDeviceGetDevicePnpStateTableIndex = 43, WdfDeviceGetDevicePowerStateTableIndex = 44, WdfDeviceGetDevicePowerPolicyStateTableIndex = 45, WdfDeviceAssignS0IdleSettingsTableIndex = 46, WdfDeviceAssignSxWakeSettingsTableIndex = 47, WdfDeviceOpenRegistryKeyTableIndex = 48, WdfDeviceSetSpecialFileSupportTableIndex = 49, WdfDeviceSetCharacteristicsTableIndex = 50, WdfDeviceGetCharacteristicsTableIndex = 51, WdfDeviceGetAlignmentRequirementTableIndex = 52, WdfDeviceSetAlignmentRequirementTableIndex = 53, WdfDeviceInitFreeTableIndex = 54, WdfDeviceInitSetPnpPowerEventCallbacksTableIndex = 55, WdfDeviceInitSetPowerPolicyEventCallbacksTableIndex = 56, WdfDeviceInitSetPowerPolicyOwnershipTableIndex = 57, WdfDeviceInitRegisterPnpStateChangeCallbackTableIndex = 58, WdfDeviceInitRegisterPowerStateChangeCallbackTableIndex = 59, WdfDeviceInitRegisterPowerPolicyStateChangeCallbackTableIndex = 60, WdfDeviceInitSetIoTypeTableIndex = 61, WdfDeviceInitSetExclusiveTableIndex = 62, WdfDeviceInitSetPowerNotPageableTableIndex = 63, WdfDeviceInitSetPowerPageableTableIndex = 64, WdfDeviceInitSetPowerInrushTableIndex = 65, WdfDeviceInitSetDeviceTypeTableIndex = 66, WdfDeviceInitAssignNameTableIndex = 67, WdfDeviceInitAssignSDDLStringTableIndex = 68, WdfDeviceInitSetDeviceClassTableIndex = 69, WdfDeviceInitSetCharacteristicsTableIndex = 70, WdfDeviceInitSetFileObjectConfigTableIndex = 71, WdfDeviceInitSetRequestAttributesTableIndex = 72, WdfDeviceInitAssignWdmIrpPreprocessCallbackTableIndex = 73, WdfDeviceInitSetIoInCallerContextCallbackTableIndex = 74, WdfDeviceCreateTableIndex = 75, WdfDeviceSetStaticStopRemoveTableIndex = 76, WdfDeviceCreateDeviceInterfaceTableIndex = 77, WdfDeviceSetDeviceInterfaceStateTableIndex = 78, WdfDeviceRetrieveDeviceInterfaceStringTableIndex = 79, WdfDeviceCreateSymbolicLinkTableIndex = 80, WdfDeviceQueryPropertyTableIndex = 81, WdfDeviceAllocAndQueryPropertyTableIndex = 82, WdfDeviceSetPnpCapabilitiesTableIndex = 83, WdfDeviceSetPowerCapabilitiesTableIndex = 84, WdfDeviceSetBusInformationForChildrenTableIndex = 85, WdfDeviceIndicateWakeStatusTableIndex = 86, WdfDeviceSetFailedTableIndex = 87, WdfDeviceStopIdleTableIndex = 88, WdfDeviceResumeIdleTableIndex = 89, WdfDeviceGetFileObjectTableIndex = 90, WdfDeviceEnqueueRequestTableIndex = 91, WdfDeviceGetDefaultQueueTableIndex = 92, WdfDeviceConfigureRequestDispatchingTableIndex = 93, WdfDmaEnablerCreateTableIndex = 94, WdfDmaEnablerGetMaximumLengthTableIndex = 95, WdfDmaEnablerGetMaximumScatterGatherElementsTableIndex = 96, WdfDmaEnablerSetMaximumScatterGatherElementsTableIndex = 97, WdfDmaTransactionCreateTableIndex = 98, WdfDmaTransactionInitializeTableIndex = 99, WdfDmaTransactionInitializeUsingRequestTableIndex = 100, WdfDmaTransactionExecuteTableIndex = 101, WdfDmaTransactionReleaseTableIndex = 102, WdfDmaTransactionDmaCompletedTableIndex = 103, WdfDmaTransactionDmaCompletedWithLengthTableIndex = 104, WdfDmaTransactionDmaCompletedFinalTableIndex = 105, WdfDmaTransactionGetBytesTransferredTableIndex = 106, WdfDmaTransactionSetMaximumLengthTableIndex = 107, WdfDmaTransactionGetRequestTableIndex = 108, WdfDmaTransactionGetCurrentDmaTransferLengthTableIndex = 109, WdfDmaTransactionGetDeviceTableIndex = 110, WdfDpcCreateTableIndex = 111, WdfDpcEnqueueTableIndex = 112, WdfDpcCancelTableIndex = 113, WdfDpcGetParentObjectTableIndex = 114, WdfDpcWdmGetDpcTableIndex = 115, WdfDriverCreateTableIndex = 116, WdfDriverGetRegistryPathTableIndex = 117, WdfDriverWdmGetDriverObjectTableIndex = 118, WdfDriverOpenParametersRegistryKeyTableIndex = 119, WdfWdmDriverGetWdfDriverHandleTableIndex = 120, WdfDriverRegisterTraceInfoTableIndex = 121, WdfDriverRetrieveVersionStringTableIndex = 122, WdfDriverIsVersionAvailableTableIndex = 123, WdfFdoInitWdmGetPhysicalDeviceTableIndex = 124, WdfFdoInitOpenRegistryKeyTableIndex = 125, WdfFdoInitQueryPropertyTableIndex = 126, WdfFdoInitAllocAndQueryPropertyTableIndex = 127, WdfFdoInitSetEventCallbacksTableIndex = 128, WdfFdoInitSetFilterTableIndex = 129, WdfFdoInitSetDefaultChildListConfigTableIndex = 130, WdfFdoQueryForInterfaceTableIndex = 131, WdfFdoGetDefaultChildListTableIndex = 132, WdfFdoAddStaticChildTableIndex = 133, WdfFdoLockStaticChildListForIterationTableIndex = 134, WdfFdoRetrieveNextStaticChildTableIndex = 135, WdfFdoUnlockStaticChildListFromIterationTableIndex = 136, WdfFileObjectGetFileNameTableIndex = 137, WdfFileObjectGetFlagsTableIndex = 138, WdfFileObjectGetDeviceTableIndex = 139, WdfFileObjectWdmGetFileObjectTableIndex = 140, WdfInterruptCreateTableIndex = 141, WdfInterruptQueueDpcForIsrTableIndex = 142, WdfInterruptSynchronizeTableIndex = 143, WdfInterruptAcquireLockTableIndex = 144, WdfInterruptReleaseLockTableIndex = 145, WdfInterruptEnableTableIndex = 146, WdfInterruptDisableTableIndex = 147, WdfInterruptWdmGetInterruptTableIndex = 148, WdfInterruptGetInfoTableIndex = 149, WdfInterruptSetPolicyTableIndex = 150, WdfInterruptGetDeviceTableIndex = 151, WdfIoQueueCreateTableIndex = 152, WdfIoQueueGetStateTableIndex = 153, WdfIoQueueStartTableIndex = 154, WdfIoQueueStopTableIndex = 155, WdfIoQueueStopSynchronouslyTableIndex = 156, WdfIoQueueGetDeviceTableIndex = 157, WdfIoQueueRetrieveNextRequestTableIndex = 158, WdfIoQueueRetrieveRequestByFileObjectTableIndex = 159, WdfIoQueueFindRequestTableIndex = 160, WdfIoQueueRetrieveFoundRequestTableIndex = 161, WdfIoQueueDrainSynchronouslyTableIndex = 162, WdfIoQueueDrainTableIndex = 163, WdfIoQueuePurgeSynchronouslyTableIndex = 164, WdfIoQueuePurgeTableIndex = 165, WdfIoQueueReadyNotifyTableIndex = 166, WdfIoTargetCreateTableIndex = 167, WdfIoTargetOpenTableIndex = 168, WdfIoTargetCloseForQueryRemoveTableIndex = 169, WdfIoTargetCloseTableIndex = 170, WdfIoTargetStartTableIndex = 171, WdfIoTargetStopTableIndex = 172, WdfIoTargetGetStateTableIndex = 173, WdfIoTargetGetDeviceTableIndex = 174, WdfIoTargetQueryTargetPropertyTableIndex = 175, WdfIoTargetAllocAndQueryTargetPropertyTableIndex = 176, WdfIoTargetQueryForInterfaceTableIndex = 177, WdfIoTargetWdmGetTargetDeviceObjectTableIndex = 178, WdfIoTargetWdmGetTargetPhysicalDeviceTableIndex = 179, WdfIoTargetWdmGetTargetFileObjectTableIndex = 180, WdfIoTargetWdmGetTargetFileHandleTableIndex = 181, WdfIoTargetSendReadSynchronouslyTableIndex = 182, WdfIoTargetFormatRequestForReadTableIndex = 183, WdfIoTargetSendWriteSynchronouslyTableIndex = 184, WdfIoTargetFormatRequestForWriteTableIndex = 185, WdfIoTargetSendIoctlSynchronouslyTableIndex = 186, WdfIoTargetFormatRequestForIoctlTableIndex = 187, WdfIoTargetSendInternalIoctlSynchronouslyTableIndex = 188, WdfIoTargetFormatRequestForInternalIoctlTableIndex = 189, WdfIoTargetSendInternalIoctlOthersSynchronouslyTableIndex = 190, WdfIoTargetFormatRequestForInternalIoctlOthersTableIndex = 191, WdfMemoryCreateTableIndex = 192, WdfMemoryCreatePreallocatedTableIndex = 193, WdfMemoryGetBufferTableIndex = 194, WdfMemoryAssignBufferTableIndex = 195, WdfMemoryCopyToBufferTableIndex = 196, WdfMemoryCopyFromBufferTableIndex = 197, WdfLookasideListCreateTableIndex = 198, WdfMemoryCreateFromLookasideTableIndex = 199, WdfDeviceMiniportCreateTableIndex = 200, WdfDriverMiniportUnloadTableIndex = 201, WdfObjectGetTypedContextWorkerTableIndex = 202, WdfObjectAllocateContextTableIndex = 203, WdfObjectContextGetObjectTableIndex = 204, WdfObjectReferenceActualTableIndex = 205, WdfObjectDereferenceActualTableIndex = 206, WdfObjectCreateTableIndex = 207, WdfObjectDeleteTableIndex = 208, WdfObjectQueryTableIndex = 209, WdfPdoInitAllocateTableIndex = 210, WdfPdoInitSetEventCallbacksTableIndex = 211, WdfPdoInitAssignDeviceIDTableIndex = 212, WdfPdoInitAssignInstanceIDTableIndex = 213, WdfPdoInitAddHardwareIDTableIndex = 214, WdfPdoInitAddCompatibleIDTableIndex = 215, WdfPdoInitAddDeviceTextTableIndex = 216, WdfPdoInitSetDefaultLocaleTableIndex = 217, WdfPdoInitAssignRawDeviceTableIndex = 218, WdfPdoMarkMissingTableIndex = 219, WdfPdoRequestEjectTableIndex = 220, WdfPdoGetParentTableIndex = 221, WdfPdoRetrieveIdentificationDescriptionTableIndex = 222, WdfPdoRetrieveAddressDescriptionTableIndex = 223, WdfPdoUpdateAddressDescriptionTableIndex = 224, WdfPdoAddEjectionRelationsPhysicalDeviceTableIndex = 225, WdfPdoRemoveEjectionRelationsPhysicalDeviceTableIndex = 226, WdfPdoClearEjectionRelationsDevicesTableIndex = 227, WdfDeviceAddQueryInterfaceTableIndex = 228, WdfRegistryOpenKeyTableIndex = 229, WdfRegistryCreateKeyTableIndex = 230, WdfRegistryCloseTableIndex = 231, WdfRegistryWdmGetHandleTableIndex = 232, WdfRegistryRemoveKeyTableIndex = 233, WdfRegistryRemoveValueTableIndex = 234, WdfRegistryQueryValueTableIndex = 235, WdfRegistryQueryMemoryTableIndex = 236, WdfRegistryQueryMultiStringTableIndex = 237, WdfRegistryQueryUnicodeStringTableIndex = 238, WdfRegistryQueryStringTableIndex = 239, WdfRegistryQueryULongTableIndex = 240, WdfRegistryAssignValueTableIndex = 241, WdfRegistryAssignMemoryTableIndex = 242, WdfRegistryAssignMultiStringTableIndex = 243, WdfRegistryAssignUnicodeStringTableIndex = 244, WdfRegistryAssignStringTableIndex = 245, WdfRegistryAssignULongTableIndex = 246, WdfRequestCreateTableIndex = 247, WdfRequestCreateFromIrpTableIndex = 248, WdfRequestReuseTableIndex = 249, WdfRequestChangeTargetTableIndex = 250, WdfRequestFormatRequestUsingCurrentTypeTableIndex = 251, WdfRequestWdmFormatUsingStackLocationTableIndex = 252, WdfRequestSendTableIndex = 253, WdfRequestGetStatusTableIndex = 254, WdfRequestMarkCancelableTableIndex = 255, WdfRequestUnmarkCancelableTableIndex = 256, WdfRequestIsCanceledTableIndex = 257, WdfRequestCancelSentRequestTableIndex = 258, WdfRequestIsFrom32BitProcessTableIndex = 259, WdfRequestSetCompletionRoutineTableIndex = 260, WdfRequestGetCompletionParamsTableIndex = 261, WdfRequestAllocateTimerTableIndex = 262, WdfRequestCompleteTableIndex = 263, WdfRequestCompleteWithPriorityBoostTableIndex = 264, WdfRequestCompleteWithInformationTableIndex = 265, WdfRequestGetParametersTableIndex = 266, WdfRequestRetrieveInputMemoryTableIndex = 267, WdfRequestRetrieveOutputMemoryTableIndex = 268, WdfRequestRetrieveInputBufferTableIndex = 269, WdfRequestRetrieveOutputBufferTableIndex = 270, WdfRequestRetrieveInputWdmMdlTableIndex = 271, WdfRequestRetrieveOutputWdmMdlTableIndex = 272, WdfRequestRetrieveUnsafeUserInputBufferTableIndex = 273, WdfRequestRetrieveUnsafeUserOutputBufferTableIndex = 274, WdfRequestSetInformationTableIndex = 275, WdfRequestGetInformationTableIndex = 276, WdfRequestGetFileObjectTableIndex = 277, WdfRequestProbeAndLockUserBufferForReadTableIndex = 278, WdfRequestProbeAndLockUserBufferForWriteTableIndex = 279, WdfRequestGetRequestorModeTableIndex = 280, WdfRequestForwardToIoQueueTableIndex = 281, WdfRequestGetIoQueueTableIndex = 282, WdfRequestRequeueTableIndex = 283, WdfRequestStopAcknowledgeTableIndex = 284, WdfRequestWdmGetIrpTableIndex = 285, WdfIoResourceRequirementsListSetSlotNumberTableIndex = 286, WdfIoResourceRequirementsListSetInterfaceTypeTableIndex = 287, WdfIoResourceRequirementsListAppendIoResListTableIndex = 288, WdfIoResourceRequirementsListInsertIoResListTableIndex = 289, WdfIoResourceRequirementsListGetCountTableIndex = 290, WdfIoResourceRequirementsListGetIoResListTableIndex = 291, WdfIoResourceRequirementsListRemoveTableIndex = 292, WdfIoResourceRequirementsListRemoveByIoResListTableIndex = 293, WdfIoResourceListCreateTableIndex = 294, WdfIoResourceListAppendDescriptorTableIndex = 295, WdfIoResourceListInsertDescriptorTableIndex = 296, WdfIoResourceListUpdateDescriptorTableIndex = 297, WdfIoResourceListGetCountTableIndex = 298, WdfIoResourceListGetDescriptorTableIndex = 299, WdfIoResourceListRemoveTableIndex = 300, WdfIoResourceListRemoveByDescriptorTableIndex = 301, WdfCmResourceListAppendDescriptorTableIndex = 302, WdfCmResourceListInsertDescriptorTableIndex = 303, WdfCmResourceListGetCountTableIndex = 304, WdfCmResourceListGetDescriptorTableIndex = 305, WdfCmResourceListRemoveTableIndex = 306, WdfCmResourceListRemoveByDescriptorTableIndex = 307, WdfStringCreateTableIndex = 308, WdfStringGetUnicodeStringTableIndex = 309, WdfObjectAcquireLockTableIndex = 310, WdfObjectReleaseLockTableIndex = 311, WdfWaitLockCreateTableIndex = 312, WdfWaitLockAcquireTableIndex = 313, WdfWaitLockReleaseTableIndex = 314, WdfSpinLockCreateTableIndex = 315, WdfSpinLockAcquireTableIndex = 316, WdfSpinLockReleaseTableIndex = 317, WdfTimerCreateTableIndex = 318, WdfTimerStartTableIndex = 319, WdfTimerStopTableIndex = 320, WdfTimerGetParentObjectTableIndex = 321, WdfUsbTargetDeviceCreateTableIndex = 322, WdfUsbTargetDeviceRetrieveInformationTableIndex = 323, WdfUsbTargetDeviceGetDeviceDescriptorTableIndex = 324, WdfUsbTargetDeviceRetrieveConfigDescriptorTableIndex = 325, WdfUsbTargetDeviceQueryStringTableIndex = 326, WdfUsbTargetDeviceAllocAndQueryStringTableIndex = 327, WdfUsbTargetDeviceFormatRequestForStringTableIndex = 328, WdfUsbTargetDeviceGetNumInterfacesTableIndex = 329, WdfUsbTargetDeviceSelectConfigTableIndex = 330, WdfUsbTargetDeviceWdmGetConfigurationHandleTableIndex = 331, WdfUsbTargetDeviceRetrieveCurrentFrameNumberTableIndex = 332, WdfUsbTargetDeviceSendControlTransferSynchronouslyTableIndex = 333, WdfUsbTargetDeviceFormatRequestForControlTransferTableIndex = 334, WdfUsbTargetDeviceIsConnectedSynchronousTableIndex = 335, WdfUsbTargetDeviceResetPortSynchronouslyTableIndex = 336, WdfUsbTargetDeviceCyclePortSynchronouslyTableIndex = 337, WdfUsbTargetDeviceFormatRequestForCyclePortTableIndex = 338, WdfUsbTargetDeviceSendUrbSynchronouslyTableIndex = 339, WdfUsbTargetDeviceFormatRequestForUrbTableIndex = 340, WdfUsbTargetPipeGetInformationTableIndex = 341, WdfUsbTargetPipeIsInEndpointTableIndex = 342, WdfUsbTargetPipeIsOutEndpointTableIndex = 343, WdfUsbTargetPipeGetTypeTableIndex = 344, WdfUsbTargetPipeSetNoMaximumPacketSizeCheckTableIndex = 345, WdfUsbTargetPipeWriteSynchronouslyTableIndex = 346, WdfUsbTargetPipeFormatRequestForWriteTableIndex = 347, WdfUsbTargetPipeReadSynchronouslyTableIndex = 348, WdfUsbTargetPipeFormatRequestForReadTableIndex = 349, WdfUsbTargetPipeConfigContinuousReaderTableIndex = 350, WdfUsbTargetPipeAbortSynchronouslyTableIndex = 351, WdfUsbTargetPipeFormatRequestForAbortTableIndex = 352, WdfUsbTargetPipeResetSynchronouslyTableIndex = 353, WdfUsbTargetPipeFormatRequestForResetTableIndex = 354, WdfUsbTargetPipeSendUrbSynchronouslyTableIndex = 355, WdfUsbTargetPipeFormatRequestForUrbTableIndex = 356, WdfUsbInterfaceGetInterfaceNumberTableIndex = 357, WdfUsbInterfaceGetNumEndpointsTableIndex = 358, WdfUsbInterfaceGetDescriptorTableIndex = 359, WdfUsbInterfaceSelectSettingTableIndex = 360, WdfUsbInterfaceGetEndpointInformationTableIndex = 361, WdfUsbTargetDeviceGetInterfaceTableIndex = 362, WdfUsbInterfaceGetConfiguredSettingIndexTableIndex = 363, WdfUsbInterfaceGetNumConfiguredPipesTableIndex = 364, WdfUsbInterfaceGetConfiguredPipeTableIndex = 365, WdfUsbTargetPipeWdmGetPipeHandleTableIndex = 366, WdfVerifierDbgBreakPointTableIndex = 367, WdfVerifierKeBugCheckTableIndex = 368, WdfWmiProviderCreateTableIndex = 369, WdfWmiProviderGetDeviceTableIndex = 370, WdfWmiProviderIsEnabledTableIndex = 371, WdfWmiProviderGetTracingHandleTableIndex = 372, WdfWmiInstanceCreateTableIndex = 373, WdfWmiInstanceRegisterTableIndex = 374, WdfWmiInstanceDeregisterTableIndex = 375, WdfWmiInstanceGetDeviceTableIndex = 376, WdfWmiInstanceGetProviderTableIndex = 377, WdfWmiInstanceFireEventTableIndex = 378, WdfWorkItemCreateTableIndex = 379, WdfWorkItemEnqueueTableIndex = 380, WdfWorkItemGetParentObjectTableIndex = 381, WdfWorkItemFlushTableIndex = 382, WdfCommonBufferCreateWithConfigTableIndex = 383, WdfDmaEnablerGetFragmentLengthTableIndex = 384, WdfDmaEnablerWdmGetDmaAdapterTableIndex = 385, WdfUsbInterfaceGetNumSettingsTableIndex = 386, WdfDeviceRemoveDependentUsageDeviceObjectTableIndex = 387, WdfDeviceGetSystemPowerActionTableIndex = 388, WdfInterruptSetExtendedPolicyTableIndex = 389, WdfIoQueueAssignForwardProgressPolicyTableIndex = 390, WdfPdoInitAssignContainerIDTableIndex = 391, WdfPdoInitAllowForwardingRequestToParentTableIndex = 392, WdfRequestMarkCancelableExTableIndex = 393, WdfRequestIsReservedTableIndex = 394, WdfRequestForwardToParentDeviceIoQueueTableIndex = 395, WdfCxDeviceInitAllocateTableIndex = 396, WdfCxDeviceInitAssignWdmIrpPreprocessCallbackTableIndex = 397, WdfCxDeviceInitSetIoInCallerContextCallbackTableIndex = 398, WdfCxDeviceInitSetRequestAttributesTableIndex = 399, WdfCxDeviceInitSetFileObjectConfigTableIndex = 400, WdfDeviceWdmDispatchIrpTableIndex = 401, WdfDeviceWdmDispatchIrpToIoQueueTableIndex = 402, WdfDeviceInitSetRemoveLockOptionsTableIndex = 403, WdfDeviceConfigureWdmIrpDispatchCallbackTableIndex = 404, WdfDmaEnablerConfigureSystemProfileTableIndex = 405, WdfDmaTransactionInitializeUsingOffsetTableIndex = 406, WdfDmaTransactionGetTransferInfoTableIndex = 407, WdfDmaTransactionSetChannelConfigurationCallbackTableIndex = 408, WdfDmaTransactionSetTransferCompleteCallbackTableIndex = 409, WdfDmaTransactionSetImmediateExecutionTableIndex = 410, WdfDmaTransactionAllocateResourcesTableIndex = 411, WdfDmaTransactionSetDeviceAddressOffsetTableIndex = 412, WdfDmaTransactionFreeResourcesTableIndex = 413, WdfDmaTransactionCancelTableIndex = 414, WdfDmaTransactionWdmGetTransferContextTableIndex = 415, WdfInterruptQueueWorkItemForIsrTableIndex = 416, WdfInterruptTryToAcquireLockTableIndex = 417, WdfIoQueueStopAndPurgeTableIndex = 418, WdfIoQueueStopAndPurgeSynchronouslyTableIndex = 419, WdfIoTargetPurgeTableIndex = 420, WdfUsbTargetDeviceCreateWithConfigTableIndex = 421, WdfUsbTargetDeviceQueryUsbCapabilityTableIndex = 422, WdfUsbTargetDeviceCreateUrbTableIndex = 423, WdfUsbTargetDeviceCreateIsochUrbTableIndex = 424, WdfDeviceWdmAssignPowerFrameworkSettingsTableIndex = 425, WdfDmaTransactionStopSystemTransferTableIndex = 426, WdfCxVerifierKeBugCheckTableIndex = 427, WdfInterruptReportActiveTableIndex = 428, WdfInterruptReportInactiveTableIndex = 429, WdfFunctionTableNumEntries = 430 }; enum _INTERLOCKED_RESULT { ResultNegative = 1, ResultZero = 0, ResultPositive = 2 }; /* struct { unsigned long Base; +0x0000 unsigned long Limit; +0x0004 }; */ struct _PCI_HEADER_TYPE_2 { unsigned long SocketRegistersBaseAddress; /* +0x0000 */ unsigned char CapabilitiesPtr; /* +0x0004 */ unsigned char Reserved; /* +0x0005 */ unsigned short SecondaryStatus; /* +0x0006 */ unsigned char PrimaryBus; /* +0x0008 */ unsigned char SecondaryBus; /* +0x0009 */ unsigned char SubordinateBus; /* +0x000a */ unsigned char SecondaryLatency; /* +0x000b */ unsigned char Range[32]; /* +0x000c 13 1f 00 00 */ unsigned char InterruptLine; /* +0x002c */ unsigned char InterruptPin; /* +0x002d */ unsigned short BridgeControl; /* +0x002e */ }; enum _WDF_REQUEST_SEND_OPTIONS_FLAGS { WDF_REQUEST_SEND_OPTION_TIMEOUT = 1, WDF_REQUEST_SEND_OPTION_SYNCHRONOUS = 2, WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE = 4, WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET = 8 }; struct _LINK_TRB { unsigned long long RingSegmentPointer; /* +0x0000 */ /* unsigned char Reserved0[0]; +0x0008 d7 1d 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char ToggleCycle[0]; +0x000c 9e 1b 00 00 */ /* unsigned char Reserved1[0]; +0x000c d8 1d 00 00 */ /* unsigned char ChainBit[0]; +0x000c a1 1b 00 00 */ /* unsigned char InterruptOnCompletion[0]; +0x000c a2 1b 00 00 */ /* unsigned char Reserved2[0]; +0x000c 18 1f 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ unsigned char Reserved3[4]; /* +0x000c 74 1b 00 00 */ }; struct _USB_30_PORT_CHANGE { unsigned short AsUshort16; /* +0x0000 */ /* unsigned char ConnectStatusChange[0]; +0x0000 02 1f 00 00 */ /* unsigned char Reserved2[0]; +0x0000 1b 1f 00 00 */ /* unsigned char OverCurrentIndicatorChange[0]; +0x0000 05 1f 00 00 */ /* unsigned char ResetChange[0]; +0x0000 06 1f 00 00 */ /* unsigned char BHResetChange[0]; +0x0000 1c 1f 00 00 */ /* unsigned char PortLinkStateChange[0]; +0x0000 1d 1f 00 00 */ /* unsigned char PortConfigErrorChange[0]; +0x0000 1e 1f 00 00 */ unsigned char Reserved3[2]; /* +0x0000 1f 1f 00 00 */ }; struct _INTERRUPTER_COUNTER { unsigned long IsrCount; /* +0x0000 */ unsigned long DpcCount; /* +0x0004 */ unsigned long WorkItemCount; /* +0x0008 */ unsigned long RequeueCount; /* +0x000c */ unsigned long QueuedWorkItem; /* +0x0010 */ unsigned long QueuedDpc; /* +0x0014 */ unsigned long EventRingBusy; /* +0x0018 */ unsigned long EventRingFull; /* +0x001c */ unsigned long DpcTimeExpired; /* +0x0020 */ unsigned long DpcWatchdogExpired; /* +0x0024 */ }; struct _STATUS_STAGE_TRB { unsigned long long Reserved0; /* +0x0000 */ /* unsigned char Reserved1[0]; +0x0008 d7 1d 00 00 */ unsigned char InterrupterTarget[4]; /* +0x0008 1b 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char EvaluateNextTrb[0]; +0x000c 9e 1b 00 00 */ /* unsigned char Reserved2[0]; +0x000c d8 1d 00 00 */ /* unsigned char ChainBit[0]; +0x000c a1 1b 00 00 */ /* unsigned char InterruptOnCompletion[0]; +0x000c a2 1b 00 00 */ /* unsigned char Reserved3[0]; +0x000c 18 1f 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Direction[0]; +0x000c a8 1c 00 00 */ unsigned char Reserved[4]; /* +0x000c 4e 1e 00 00 */ }; struct _USB_20_PORT_CHANGE { unsigned short AsUshort16; /* +0x0000 */ /* unsigned char ConnectStatusChange[0]; +0x0000 02 1f 00 00 */ /* unsigned char PortEnableDisableChange[0]; +0x0000 03 1f 00 00 */ /* unsigned char SuspendChange[0]; +0x0000 04 1f 00 00 */ /* unsigned char OverCurrentIndicatorChange[0]; +0x0000 05 1f 00 00 */ /* unsigned char ResetChange[0]; +0x0000 06 1f 00 00 */ unsigned char Reserved2[2]; /* +0x0000 26 1f 00 00 */ }; struct _FAST_IO_DISPATCH { unsigned long SizeOfFastIoDispatch; /* +0x0000 */ unsigned char FastIoCheckIfPossible[8]; /* +0x0008 2b 1f 00 00 */ unsigned char FastIoRead[8]; /* +0x0010 2e 1f 00 00 */ unsigned char FastIoWrite[8]; /* +0x0018 2e 1f 00 00 */ unsigned char FastIoQueryBasicInfo[8]; /* +0x0020 33 1f 00 00 */ unsigned char FastIoQueryStandardInfo[8]; /* +0x0028 38 1f 00 00 */ unsigned char FastIoLock[8]; /* +0x0030 3b 1f 00 00 */ unsigned char FastIoUnlockSingle[8]; /* +0x0038 3e 1f 00 00 */ unsigned char FastIoUnlockAll[8]; /* +0x0040 41 1f 00 00 */ unsigned char FastIoUnlockAllByKey[8]; /* +0x0048 44 1f 00 00 */ unsigned char FastIoDeviceControl[8]; /* +0x0050 47 1f 00 00 */ unsigned char AcquireFileForNtCreateSection[8]; /* +0x0058 4a 1f 00 00 */ unsigned char ReleaseFileForNtCreateSection[8]; /* +0x0060 4a 1f 00 00 */ unsigned char FastIoDetachDevice[8]; /* +0x0068 4d 1f 00 00 */ unsigned char FastIoQueryNetworkOpenInfo[8]; /* +0x0070 52 1f 00 00 */ unsigned char AcquireForModWrite[8]; /* +0x0078 58 1f 00 00 */ unsigned char MdlRead[8]; /* +0x0080 5b 1f 00 00 */ unsigned char MdlReadComplete[8]; /* +0x0088 5e 1f 00 00 */ unsigned char PrepareMdlWrite[8]; /* +0x0090 5b 1f 00 00 */ unsigned char MdlWriteComplete[8]; /* +0x0098 61 1f 00 00 */ unsigned char FastIoReadCompressed[8]; /* +0x00a0 66 1f 00 00 */ unsigned char FastIoWriteCompressed[8]; /* +0x00a8 66 1f 00 00 */ unsigned char MdlReadCompleteCompressed[8]; /* +0x00b0 5e 1f 00 00 */ unsigned char MdlWriteCompleteCompressed[8]; /* +0x00b8 61 1f 00 00 */ unsigned char FastIoQueryOpen[8]; /* +0x00c0 69 1f 00 00 */ unsigned char ReleaseForModWrite[8]; /* +0x00c8 6c 1f 00 00 */ unsigned char AcquireForCcFlush[8]; /* +0x00d0 6f 1f 00 00 */ unsigned char ReleaseForCcFlush[8]; /* +0x00d8 6f 1f 00 00 */ }; struct _CONTROL_URB { unsigned long Timeout; /* +0x0000 */ unsigned char Reserved0[64]; /* +0x0008 6f 1e 00 00 */ unsigned char SetupPacket[8]; /* +0x0048 71 12 00 00 */ }; enum _WDF_REQUEST_FORWARD_OPTIONS_FLAGS { WDF_REQUEST_FORWARD_OPTION_SEND_AND_FORGET = 1 }; struct _URB_CONTROL_GET_CONFIGURATION_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *Reserved; /* +0x0018 */ unsigned long Reserved0; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned char Reserved1[8]; /* +0x0080 71 12 00 00 */ }; struct _SUPPPORTED_PROTOCOL_CAPABILITY_PORT_OFFSET_COUNT { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char CompatiblePortOffset[0]; +0x0000 72 1b 00 00 */ /* unsigned char CompatiblePortCount[0]; +0x0000 73 1b 00 00 */ /* unsigned char L1Capability[0]; +0x0000 a8 1c 00 00 */ /* unsigned char HighSpeedOnly[0]; +0x0000 a9 1c 00 00 */ /* unsigned char IntegratedHubImplemented[0]; +0x0000 aa 1c 00 00 */ unsigned char Reserved[4]; /* +0x0000 74 1e 00 00 */ }; struct _DMA_ADAPTER_INFO_V1 { unsigned long ReadDmaCounterAvailable; /* +0x0000 */ unsigned long ScatterGatherLimit; /* +0x0004 */ unsigned long DmaAddressWidth; /* +0x0008 */ unsigned long Flags; /* +0x000c */ unsigned long MinimumTransferUnit; /* +0x0010 */ }; struct _FILE_BASIC_INFORMATION { unsigned char CreationTime[8]; /* +0x0000 42 10 00 00 */ unsigned char LastAccessTime[8]; /* +0x0008 42 10 00 00 */ unsigned char LastWriteTime[8]; /* +0x0010 42 10 00 00 */ unsigned char ChangeTime[8]; /* +0x0018 42 10 00 00 */ unsigned long FileAttributes; /* +0x0020 */ }; /* struct { unsigned char CurrentState[4]; +0x0000 51 14 00 00 unsigned char NewState[4]; +0x0004 51 14 00 00 }; */ /* struct { unsigned char CurrentState[4]; +0x0000 51 14 00 00 }; */ /* struct { /* unsigned char EnterState[0]; +0x0000 80 1f 00 00 /* unsigned char PostProcessState[0]; +0x0000 82 1f 00 00 unsigned char LeaveState[8]; +0x0000 80 1f 00 00 }; */ struct _WDF_DEVICE_PNP_NOTIFICATION_DATA { unsigned char Type[4]; /* +0x0000 b5 1d 00 00 */ unsigned char Data[8]; /* +0x0004 84 1f 00 00 */ }; struct _IMOD { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char Inverval[0]; +0x0000 16 1c 00 00 */ unsigned char Counter[4]; /* +0x0000 74 1b 00 00 */ }; struct _PCI_HEADER_TYPE_1 { unsigned char BaseAddresses[8]; /* +0x0000 62 1b 00 00 */ unsigned char PrimaryBus; /* +0x0008 */ unsigned char SecondaryBus; /* +0x0009 */ unsigned char SubordinateBus; /* +0x000a */ unsigned char SecondaryLatency; /* +0x000b */ unsigned char IOBase; /* +0x000c */ unsigned char IOLimit; /* +0x000d */ unsigned short SecondaryStatus; /* +0x000e */ unsigned short MemoryBase; /* +0x0010 */ unsigned short MemoryLimit; /* +0x0012 */ unsigned short PrefetchBase; /* +0x0014 */ unsigned short PrefetchLimit; /* +0x0016 */ unsigned long PrefetchBaseUpper32; /* +0x0018 */ unsigned long PrefetchLimitUpper32; /* +0x001c */ unsigned short IOBaseUpper16; /* +0x0020 */ unsigned short IOLimitUpper16; /* +0x0022 */ unsigned char CapabilitiesPtr; /* +0x0024 */ unsigned char Reserved1[3]; /* +0x0025 42 11 00 00 */ unsigned long ROMBaseAddress; /* +0x0028 */ unsigned char InterruptLine; /* +0x002c */ unsigned char InterruptPin; /* +0x002d */ unsigned short BridgeControl; /* +0x002e */ }; struct _DNCTRL { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char Enable0[0]; +0x0000 11 1a 00 00 */ /* unsigned char Enable1[0]; +0x0000 9e 1b 00 00 */ /* unsigned char Enable2[0]; +0x0000 9f 1b 00 00 */ /* unsigned char Enable3[0]; +0x0000 a0 1b 00 00 */ /* unsigned char Enable4[0]; +0x0000 a1 1b 00 00 */ /* unsigned char Enable5[0]; +0x0000 a2 1b 00 00 */ /* unsigned char Enable6[0]; +0x0000 a3 1b 00 00 */ /* unsigned char Enable7[0]; +0x0000 a4 1b 00 00 */ /* unsigned char Enable8[0]; +0x0000 a5 1b 00 00 */ /* unsigned char Enable9[0]; +0x0000 a5 1c 00 00 */ /* unsigned char Enable10[0]; +0x0000 b9 1c 00 00 */ /* unsigned char Enable11[0]; +0x0000 ba 1c 00 00 */ /* unsigned char Enable12[0]; +0x0000 dd 1d 00 00 */ /* unsigned char Enable13[0]; +0x0000 de 1d 00 00 */ /* unsigned char Enable14[0]; +0x0000 df 1d 00 00 */ /* unsigned char Enable15[0]; +0x0000 32 1c 00 00 */ unsigned char Reserved0[4]; /* +0x0000 74 1b 00 00 */ }; struct _IO_SECURITY_CONTEXT { unsigned char SecurityQos[8]; /* +0x0000 8e 1f 00 00 */ unsigned char AccessState[8]; /* +0x0008 90 1f 00 00 */ unsigned long DesiredAccess; /* +0x0010 */ unsigned long FullCreateOptions; /* +0x0014 */ }; struct _URB_GET_FRAME_LENGTH { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ unsigned long FrameLength; /* +0x0018 */ unsigned long FrameNumber; /* +0x001c */ }; struct _ISOCH_URB { unsigned long Padding0; /* +0x0000 */ unsigned char Reserved0[64]; /* +0x0008 6f 1e 00 00 */ unsigned long StartFrame; /* +0x0048 */ unsigned long NumberOfPackets; /* +0x004c */ unsigned long ErrorCount; /* +0x0050 */ unsigned char IsochPacket[12]; /* +0x0054 79 1d 00 00 */ }; struct _URB_SET_FRAME_LENGTH { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ long FrameLengthDelta; /* +0x0018 */ }; struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *Reserved; /* +0x0018 */ unsigned long Reserved0; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ /* unsigned char Recipient[0]; +0x0080 9e 1e 00 00 */ unsigned char Reserved1[1]; /* +0x0080 9f 1e 00 00 */ unsigned char Reserved2; /* +0x0081 */ unsigned char InterfaceNumber; /* +0x0082 */ unsigned char MS_PageIndex; /* +0x0083 */ unsigned short MS_FeatureDescriptorIndex; /* +0x0084 */ unsigned short Reserved3; /* +0x0086 */ }; struct _MAILSLOT_CREATE_PARAMETERS { unsigned long MailslotQuota; /* +0x0000 */ unsigned long MaximumMessageSize; /* +0x0004 */ unsigned char ReadTimeout[8]; /* +0x0008 42 10 00 00 */ unsigned char TimeoutSpecified; /* +0x0010 */ }; struct _URB_FRAME_LENGTH_CONTROL { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ }; struct _USBSTS { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char HcHalted[0]; +0x0000 11 1a 00 00 */ /* unsigned char Reserved0[0]; +0x0000 9e 1b 00 00 */ /* unsigned char HostSystemError[0]; +0x0000 9f 1b 00 00 */ /* unsigned char EventInterrupt[0]; +0x0000 a0 1b 00 00 */ /* unsigned char PortChangeDetect[0]; +0x0000 a1 1b 00 00 */ /* unsigned char Reserved1[0]; +0x0000 9f 1f 00 00 */ /* unsigned char SaveStateStatus[0]; +0x0000 a5 1b 00 00 */ /* unsigned char RestoreStateStatus[0]; +0x0000 a5 1c 00 00 */ /* unsigned char SaveRestoreError[0]; +0x0000 b9 1c 00 00 */ /* unsigned char ControllerNotReady[0]; +0x0000 ba 1c 00 00 */ /* unsigned char HostControllerError[0]; +0x0000 dd 1d 00 00 */ unsigned char Reserved2[4]; /* +0x0000 a0 1f 00 00 */ }; struct _NAMED_PIPE_CREATE_PARAMETERS { unsigned long NamedPipeType; /* +0x0000 */ unsigned long ReadMode; /* +0x0004 */ unsigned long CompletionMode; /* +0x0008 */ unsigned long MaximumInstances; /* +0x000c */ unsigned long InboundQuota; /* +0x0010 */ unsigned long OutboundQuota; /* +0x0014 */ unsigned char DefaultTimeout[8]; /* +0x0018 42 10 00 00 */ unsigned char TimeoutSpecified; /* +0x0020 */ }; struct _EXTENDED_CAPABILITY { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char CapabilityID[0]; +0x0000 72 1b 00 00 */ /* unsigned char NextCapabilityPointer[0]; +0x0000 73 1b 00 00 */ unsigned char CapabilitySpecific[4]; /* +0x0000 74 1b 00 00 */ }; enum _WDF_REQUEST_REUSE_FLAGS { WDF_REQUEST_REUSE_NO_FLAGS = 0, WDF_REQUEST_REUSE_SET_NEW_IRP = 1, WDF_REQUEST_REUSE_CX_FLAG1 = 2 }; struct _PORTLI { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char LinkErrorCount[0]; +0x0000 16 1c 00 00 */ unsigned char Reserved0[4]; /* +0x0000 74 1b 00 00 */ }; struct _SUPPPORTED_PROTOCOL_CAPABILITY_REVISION { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char CapabilityID[0]; +0x0000 72 1b 00 00 */ /* unsigned char NextCapabilityPointer[0]; +0x0000 73 1b 00 00 */ /* unsigned char MinorRevision[0]; +0x0000 17 1c 00 00 */ unsigned char MajorRevision[4]; /* +0x0000 18 1c 00 00 */ }; struct _DEVOBJ_EXTENSION { short Type; /* +0x0000 */ unsigned short Size; /* +0x0002 */ unsigned char DeviceObject[8]; /* +0x0008 da 10 00 00 */ }; struct _URB_CONTROL_TRANSFER_EX { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *PipeHandle; /* +0x0018 */ unsigned long TransferFlags; /* +0x0020 */ unsigned long TransferBufferLength; /* +0x0024 */ void *TransferBuffer; /* +0x0028 */ unsigned char TransferBufferMDL[8]; /* +0x0030 b9 10 00 00 */ unsigned long Timeout; /* +0x0038 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned char SetupPacket[8]; /* +0x0080 71 12 00 00 */ }; struct _HCSPARAMS3 { unsigned long AsUlong32; /* +0x0000 */ /* unsigned char U1DeviceExitLatency[0]; +0x0000 72 1b 00 00 */ /* unsigned char Reserved0[0]; +0x0000 73 1b 00 00 */ unsigned char U2DeviceExitLatency[4]; /* +0x0000 74 1b 00 00 */ }; struct _TXN_PARAMETER_BLOCK { unsigned short Length; /* +0x0000 */ unsigned short TxFsContext; /* +0x0002 */ void *TransactionObject; /* +0x0008 */ }; struct _PCI_MSI_MESSAGE_CONTROL { /* unsigned char MSIEnable[0]; +0x0000 02 1f 00 00 */ /* unsigned char MultipleMessageCapable[0]; +0x0000 b6 1f 00 00 */ /* unsigned char MultipleMessageEnable[0]; +0x0000 b7 1f 00 00 */ /* unsigned char CapableOf64Bits[0]; +0x0000 1e 1f 00 00 */ /* unsigned char PerVectorMaskCapable[0]; +0x0000 b8 1f 00 00 */ unsigned char Reserved[2]; /* +0x0000 b9 1f 00 00 */ }; enum _WDF_WMI_PROVIDER_FLAGS { WdfWmiProviderEventOnly = 1, WdfWmiProviderExpensive = 2, WdfWmiProviderTracing = 4, WdfWmiProviderValidFlags = 7 }; struct _SCATTER_GATHER_ELEMENT { unsigned char Address[8]; /* +0x0000 42 10 00 00 */ unsigned long Length; /* +0x0008 */ unsigned long long Reserved; /* +0x0010 */ }; struct _USBXHCI_TRIAGE_INFO { unsigned long Version; /* +0x0000 */ unsigned long DeviceDataSize; /* +0x0004 */ unsigned long DeviceData_ControllerDataOffset; /* +0x0008 */ unsigned long ControllerDataSize; /* +0x000c */ unsigned long ControllerData_WdfDeviceOffset; /* +0x0010 */ unsigned long ControllerData_UcxControllerOffset; /* +0x0014 */ unsigned long ControllerData_RecorderLogOffset; /* +0x0018 */ unsigned long ControllerData_IoControlOffset; /* +0x001c */ unsigned long IoControlDataSize; /* +0x0020 */ unsigned long ControllerData_RegisterOffset; /* +0x0024 */ unsigned long RegisterDataSize; /* +0x0028 */ unsigned long ControllerData_CommonBufferOffset; /* +0x002c */ unsigned long CommonBufferDataSize; /* +0x0030 */ unsigned long ControllerData_InterrupterOffset; /* +0x0034 */ unsigned long PrimaryInterrupterSize; /* +0x0038 */ unsigned long ControllerData_DeviceSlotOffset; /* +0x003c */ unsigned long DeviceSlotDataSize; /* +0x0040 */ unsigned long ControllerData_CommandOffset; /* +0x0044 */ unsigned long CommandDataSize; /* +0x0048 */ unsigned long ControllerData_RootHubOffset; /* +0x004c */ unsigned long RootHubDataSize; /* +0x0050 */ unsigned long ControllerData_WdfTimerOffset; /* +0x0054 */ unsigned long IfrLogHeaderSize; /* +0x0058 */ unsigned long IfrLogSizeOffset; /* +0x005c */ unsigned long IfrSizeOfLogSizeField; /* +0x0060 */ unsigned long IfrDriverContextOffset; /* +0x0064 */ unsigned long IfrDriverContextSize; /* +0x0068 */ void *WppGlobalControlPtr; /* +0x0070 */ unsigned long WppGlobalControlSize; /* +0x0078 */ }; struct _DEVICE_NOTIFICATION_EVENT_TRB { /* unsigned char Reserved0[0]; +0x0000 96 1b 00 00 */ /* unsigned char NotificationType[0]; +0x0000 97 1b 00 00 */ unsigned char DeviceNotificationDataLo[4]; /* +0x0000 c6 1d 00 00 */ unsigned long DeviceNotificationDataHi; /* +0x0004 */ /* unsigned char Reserved1[0]; +0x0008 34 1d 00 00 */ unsigned char CompletionCode[4]; /* +0x0008 18 1c 00 00 */ /* unsigned char CycleBit[0]; +0x000c 11 1a 00 00 */ /* unsigned char Reserved2[0]; +0x000c 35 1d 00 00 */ /* unsigned char Type[0]; +0x000c 36 1d 00 00 */ /* unsigned char Reserved3[0]; +0x000c 17 1c 00 00 */ unsigned char SlotId[4]; /* +0x000c 18 1c 00 00 */ }; struct _URB_CONTROL_FEATURE_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *Reserved; /* +0x0018 */ unsigned long Reserved2; /* +0x0020 */ unsigned long Reserved3; /* +0x0024 */ void *Reserved4; /* +0x0028 */ unsigned char Reserved5[8]; /* +0x0030 b9 10 00 00 */ unsigned char UrbLink[8]; /* +0x0038 36 19 00 00 */ unsigned char hca[64]; /* +0x0040 e9 1c 00 00 */ unsigned short Reserved0; /* +0x0080 */ unsigned short FeatureSelector; /* +0x0082 */ unsigned short Index; /* +0x0084 */ unsigned short Reserved1; /* +0x0086 */ }; struct _URB_PIPE_REQUEST { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *PipeHandle; /* +0x0018 */ unsigned long Reserved; /* +0x0020 */ }; struct _PCI_MSI_MESSAGE_ADDRESS { /* unsigned char Reserved[0]; +0x0000 dc 1d 00 00 */ unsigned char Address[4]; /* +0x0000 93 1d 00 00 */ }; enum _WDF_USB_BMREQUEST_TYPE { BmRequestStandard = 0, BmRequestClass = 1, BmRequestVendor = 2 }; struct _FILE_NETWORK_OPEN_INFORMATION { unsigned char CreationTime[8]; /* +0x0000 42 10 00 00 */ unsigned char LastAccessTime[8]; /* +0x0008 42 10 00 00 */ unsigned char LastWriteTime[8]; /* +0x0010 42 10 00 00 */ unsigned char ChangeTime[8]; /* +0x0018 42 10 00 00 */ unsigned char AllocationSize[8]; /* +0x0020 42 10 00 00 */ unsigned char EndOfFile[8]; /* +0x0028 42 10 00 00 */ unsigned long FileAttributes; /* +0x0030 */ }; /* struct { /* unsigned char InitialPrivilegeSet[0]; +0x0000 cf 1f 00 00 unsigned char PrivilegeSet[44]; +0x0000 d0 1f 00 00 }; */ struct _ACCESS_STATE { unsigned char OperationID[8]; /* +0x0000 2e 12 00 00 */ unsigned char SecurityEvaluated; /* +0x0008 */ unsigned char GenerateAudit; /* +0x0009 */ unsigned char GenerateOnClose; /* +0x000a */ unsigned char PrivilegesAllocated; /* +0x000b */ unsigned long Flags; /* +0x000c */ unsigned long RemainingDesiredAccess; /* +0x0010 */ unsigned long PreviouslyGrantedAccess; /* +0x0014 */ unsigned long OriginalDesiredAccess; /* +0x0018 */ unsigned char SubjectSecurityContext[32]; /* +0x0020 ce 1f 00 00 */ void *SecurityDescriptor; /* +0x0040 */ void *AuxData; /* +0x0048 */ unsigned char Privileges[44]; /* +0x0050 d2 1f 00 00 */ unsigned char AuditPrivileges; /* +0x007c */ unsigned char ObjectName[16]; /* +0x0080 36 10 00 00 */ unsigned char ObjectTypeName[16]; /* +0x0090 36 10 00 00 */ }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey = 0, RegNtPreDeleteKey = 0, RegNtSetValueKey = 1, RegNtPreSetValueKey = 1, RegNtDeleteValueKey = 2, RegNtPreDeleteValueKey = 2, RegNtSetInformationKey = 3, RegNtPreSetInformationKey = 3, RegNtRenameKey = 4, RegNtPreRenameKey = 4, RegNtEnumerateKey = 5, RegNtPreEnumerateKey = 5, RegNtEnumerateValueKey = 6, RegNtPreEnumerateValueKey = 6, RegNtQueryKey = 7, RegNtPreQueryKey = 7, RegNtQueryValueKey = 8, RegNtPreQueryValueKey = 8, RegNtQueryMultipleValueKey = 9, RegNtPreQueryMultipleValueKey = 9, RegNtPreCreateKey = 10, RegNtPostCreateKey = 11, RegNtPreOpenKey = 12, RegNtPostOpenKey = 13, RegNtKeyHandleClose = 14, RegNtPreKeyHandleClose = 14, RegNtPostDeleteKey = 15, RegNtPostSetValueKey = 16, RegNtPostDeleteValueKey = 17, RegNtPostSetInformationKey = 18, RegNtPostRenameKey = 19, RegNtPostEnumerateKey = 20, RegNtPostEnumerateValueKey = 21, RegNtPostQueryKey = 22, RegNtPostQueryValueKey = 23, RegNtPostQueryMultipleValueKey = 24, RegNtPostKeyHandleClose = 25, RegNtPreCreateKeyEx = 26, RegNtPostCreateKeyEx = 27, RegNtPreOpenKeyEx = 28, RegNtPostOpenKeyEx = 29, RegNtPreFlushKey = 30, RegNtPostFlushKey = 31, RegNtPreLoadKey = 32, RegNtPostLoadKey = 33, RegNtPreUnLoadKey = 34, RegNtPostUnLoadKey = 35, RegNtPreQueryKeySecurity = 36, RegNtPostQueryKeySecurity = 37, RegNtPreSetKeySecurity = 38, RegNtPostSetKeySecurity = 39, RegNtCallbackObjectContextCleanup = 40, RegNtPreRestoreKey = 41, RegNtPostRestoreKey = 42, RegNtPreSaveKey = 43, RegNtPostSaveKey = 44, RegNtPreReplaceKey = 45, RegNtPostReplaceKey = 46, MaxRegNtNotifyClass = 47 }; struct _ERESOURCE { unsigned char SystemResourcesList[16]; /* +0x0000 1f 10 00 00 */ unsigned char OwnerTable[8]; /* +0x0010 d8 1f 00 00 */ short ActiveCount; /* +0x0018 */ unsigned short Flag; /* +0x001a */ unsigned char ReservedLowFlags; /* +0x001a */ unsigned char WaiterPriority; /* +0x001b */ unsigned char SharedWaiters[8]; /* +0x0020 da 1f 00 00 */ unsigned char ExclusiveWaiters[8]; /* +0x0028 68 10 00 00 */ unsigned char OwnerEntry[16]; /* +0x0030 d7 1f 00 00 */ unsigned long ActiveEntries; /* +0x0040 */ unsigned long ContentionCount; /* +0x0044 */ unsigned long NumberOfSharedWaiters; /* +0x0048 */ unsigned long NumberOfExclusiveWaiters; /* +0x004c */ void *Reserved2; /* +0x0050 */ void *Address; /* +0x0058 */ unsigned long long CreatorBackTraceIndex; /* +0x0058 */ unsigned long long SpinLock; /* +0x0060 */ }; struct _KSEMAPHORE { unsigned char Header[24]; /* +0x0000 6f 10 00 00 */ long Limit; /* +0x0018 */ }; struct _USB_20_PORT_STATUS { unsigned short AsUshort16; /* +0x0000 */ /* unsigned char CurrentConnectStatus[0]; +0x0000 02 1f 00 00 */ /* unsigned char PortEnabledDisabled[0]; +0x0000 03 1f 00 00 */ /* unsigned char Suspend[0]; +0x0000 04 1f 00 00 */ /* unsigned char OverCurrent[0]; +0x0000 05 1f 00 00 */ /* unsigned char Reset[0]; +0x0000 06 1f 00 00 */ /* unsigned char Reserved0[0]; +0x0000 df 1f 00 00 */ /* unsigned char PortPower[0]; +0x0000 b8 1f 00 00 */ /* unsigned char LowSpeedDeviceAttached[0]; +0x0000 08 1f 00 00 */ /* unsigned char HighSpeedDeviceAttached[0]; +0x0000 e0 1f 00 00 */ /* unsigned char PortTestMode[0]; +0x0000 e1 1f 00 00 */ /* unsigned char PortIndicatorControl[0]; +0x0000 e2 1f 00 00 */ unsigned char Reserved1[2]; /* +0x0000 0a 1f 00 00 */ }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous = 0, SecurityIdentification = 1, SecurityImpersonation = 2, SecurityDelegation = 3 }; struct _SECURITY_SUBJECT_CONTEXT { void *ClientToken; /* +0x0000 */ unsigned char ImpersonationLevel[8]; /* +0x0008 e7 1f 00 00 */ void *PrimaryToken; /* +0x0010 */ void *ProcessAuditId; /* +0x0018 */ }; struct _WHEA_PERSISTENCE_INFO { /* unsigned char Signature[0]; +0x0000 81 10 00 00 */ /* unsigned char Length[0]; +0x0000 eb 1f 00 00 */ /* unsigned char Identifier[0]; +0x0000 ec 1f 00 00 */ /* unsigned char Attributes[0]; +0x0000 ed 1f 00 00 */ /* unsigned char DoNotLog[0]; +0x0000 ee 1f 00 00 */ /* unsigned char Reserved[0]; +0x0000 ef 1f 00 00 */ unsigned long long AsULONGLONG; /* +0x0000 */ }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown = 0, InterruptActiveHigh = 1, InterruptRisingEdge = 1, InterruptActiveLow = 2, InterruptFallingEdge = 2, InterruptActiveBoth = 3 }; struct _URB_OPEN_STATIC_STREAMS { unsigned char Hdr[24]; /* +0x0000 50 19 00 00 */ void *PipeHandle; /* +0x0018 */ unsigned long NumberOfStreams; /* +0x0020 */ unsigned short StreamInfoVersion; /* +0x0024 */ unsigned short StreamInfoSize; /* +0x0026 */ unsigned char Streams[8]; /* +0x0028 0b 1a 00 00 */ }; struct _INITIAL_PRIVILEGE_SET { unsigned long PrivilegeCount; /* +0x0000 */ unsigned long Control; /* +0x0004 */ unsigned char Privilege[36]; /* +0x0008 f8 1f 00 00 */ }; struct _SECURITY_QUALITY_OF_SERVICE { unsigned long Length; /* +0x0000 */ unsigned char ImpersonationLevel[4]; /* +0x0004 e7 1f 00 00 */ unsigned char ContextTrackingMode; /* +0x0008 */ unsigned char EffectiveOnly; /* +0x0009 */ }; struct _FILE_STANDARD_INFORMATION { unsigned char AllocationSize[8]; /* +0x0000 42 10 00 00 */ unsigned char EndOfFile[8]; /* +0x0008 42 10 00 00 */ unsigned long NumberOfLinks; /* +0x0010 */ unsigned char DeletePending; /* +0x0014 */ unsigned char Directory; /* +0x0015 */ }; struct _OWNER_ENTRY { unsigned long long OwnerThread; /* +0x0000 */ /* unsigned char IoPriorityBoosted[0]; +0x0008 11 1a 00 00 */ /* unsigned char OwnerReferenced[0]; +0x0008 9e 1b 00 00 */ /* unsigned char OwnerCount[0]; +0x0008 93 1d 00 00 */ unsigned long TableSize; /* +0x0008 */ }; struct _LUID_AND_ATTRIBUTES { unsigned char Luid[8]; /* +0x0000 2e 12 00 00 */ unsigned long Attributes; /* +0x0008 */ }; struct _PRIVILEGE_SET { unsigned long PrivilegeCount; /* +0x0000 */ unsigned long Control; /* +0x0004 */ unsigned char Privilege[12]; /* +0x0008 03 20 00 00 */ };