/*
   This file has been generated by IDA.
   It contains local type definitions from
   the type library 'HEVD'
*/

#define __int8 char
#define __int16 short
#define __int32 int
#define __int64 long long

struct _OWNER_ENTRY;
struct _DEVICE_OBJECT;
struct _DRIVER_OBJECT;
struct _DRIVER_EXTENSION;
struct _FILE_OBJECT;
struct _FILE_BASIC_INFORMATION;
struct _FILE_STANDARD_INFORMATION;
struct _FILE_NETWORK_OPEN_INFORMATION;
struct _KSEMAPHORE;
struct _ERESOURCE;
struct _MDL;
struct _IRP;
struct _SECURITY_QUALITY_OF_SERVICE;
struct _ACCESS_STATE;
struct _IO_SECURITY_CONTEXT;
struct _VPB;
struct _GUID;
struct _INTERFACE;
struct _DEVICE_CAPABILITIES;
struct _IO_RESOURCE_REQUIREMENTS_LIST;
struct _POWER_SEQUENCE;
struct _CM_RESOURCE_LIST;
struct _IO_STACK_LOCATION;
struct _FAST_IO_DISPATCH;
struct _KDPC;
struct _DEVOBJ_EXTENSION;
struct _SECTION_OBJECT_POINTERS;
struct _IO_COMPLETION_CONTEXT;

/* 30 */
struct _LIST_ENTRY
{
  _LIST_ENTRY *Flink;
  _LIST_ENTRY *Blink;
};

/* 48 */
struct __declspec(align(4)) _KDEVICE_QUEUE_ENTRY
{
  _LIST_ENTRY DeviceListEntry;
  unsigned int SortKey;
  char Inserted;
};

struct __MajorFunction{
unsigned int _MJ_CREATE;                     
unsigned int _MJ_CREATE_NAMED_PIPE;          
unsigned int _MJ_CLOSE;                      
unsigned int _MJ_READ;                       
unsigned int _MJ_WRITE;                      
unsigned int _MJ_QUERY_INFORMATION;          
unsigned int _MJ_SET_INFORMATION;            
unsigned int _MJ_QUERY_EA;                   
unsigned int _MJ_SET_EA;                     
unsigned int _MJ_FLUSH_BUFFERS;              
unsigned int _MJ_QUERY_VOLUME_INFORMATION;   
unsigned int _MJ_SET_VOLUME_INFORMATION;     
unsigned int _MJ_DIRECTORY_CONTROL;          
unsigned int _MJ_FILE_SYSTEM_CONTROL;        
unsigned int _MJ_DEVICE_CONTROL;             
unsigned int _MJ_INTERNAL_DEVICE_CONTROL;    
unsigned int _MJ_SCSI;                       
unsigned int _MJ_SHUTDOWN;                   
unsigned int _MJ_LOCK_CONTROL;               
unsigned int _MJ_CLEANUP;                    
unsigned int _MJ_CREATE_MAILSLOT;            
unsigned int _MJ_QUERY_SECURITY;             
unsigned int _MJ_SET_SECURITY;               
unsigned int _MJ_POWER;                      
unsigned int _MJ_SYSTEM_CONTROL;             
unsigned int _MJ_DEVICE_CHANGE;              
unsigned int _MJ_QUERY_QUOTA;                
unsigned int _MJ_SET_QUOTA;                  
unsigned int _MJ_PNP;                        
unsigned int _MJ_PNP_POWER;                  
unsigned int _MJ_MAXIMUM_FUNCTION;           
};

/* 136 */
struct _WAIT_CONTEXT_BLOCK
{
  _KDEVICE_QUEUE_ENTRY WaitQueueEntry;
  _IO_ALLOCATION_ACTION (__stdcall *DeviceRoutine)(_DEVICE_OBJECT *, _IRP *, void *, void *);
  void *DeviceContext;
  unsigned int NumberOfMapRegisters;
  void *DeviceObject;
  void *CurrentIrp;
  _KDPC *BufferChainingDpc;
};

/* 137 */
union $C6ACC1BB993012B3A10E7CDCFCCA515F
{
  _LIST_ENTRY ListEntry;
  _WAIT_CONTEXT_BLOCK Wcb;
};

/* 138 */
struct __declspec(align(4)) _KDEVICE_QUEUE
{
  __int16 Type;
  __int16 Size;
  _LIST_ENTRY DeviceListHead;
  unsigned int Lock;
  char Busy;
};

/* 135 */
struct _KDPC
{
  char Type;
  char Importance;
  volatile unsigned __int16 Number;
  _LIST_ENTRY DpcListEntry;
  void (__stdcall *DeferredRoutine)(_KDPC *, void *, void *, void *);
  void *DeferredContext;
  void *SystemArgument1;
  void *SystemArgument2;
  void *DpcData;
};

/* 31 */
struct $C2D3F388F99B02FF6FA1BC09949C6256
{
  char Type;
  char TimerControlFlags;
  char ThreadControlFlags;
  char TimerMiscFlags;
};

/* 32 */
struct $24C9B4BD5BDBFDE559AE039F3ECAE0E1
{
  _BYTE gap0[1];
  __int8 Absolute : 1;
  __int8 Coalescable : 1;
  __int8 KeepShifting : 1;
  __int8 EncodedTolerableDelay : 5;
  __int8 CpuThrottled : 1;
  __int8 CycleProfiling : 1;
  __int8 CounterProfiling : 1;
  __int8 Reserved : 5;
  __int8 Index : 1;
  __int8 Processor : 5;
  __int8 Inserted : 1;
  __int8 Expired : 1;
};

/* 33 */
struct $F151C2BFBC638D507868B880929DEDD5
{
  _BYTE gap0[1];
  char Abandoned;
  char Hand;
  char DebugActive;
};

/* 34 */
struct $0B6FB50FFAD4BED3D9F7829B10596895
{
  _BYTE gap0[1];
  char Signalling;
  char Size;
  char DpcActive;
};

/* 35 */
struct $D14A413E6F4FC7D01F586962AF64E9C2
{
  _BYTE gap0[3];
  __int8 ActiveDR7 : 1;
  __int8 Instrumented : 1;
  __int8 Reserved2 : 4;
  __int8 UmsScheduled : 1;
  __int8 UmsPrimary : 1;
};

/* 36 */
union $F4DFF8D6AD3F2D8A035777AE06A8337D
{
  $C2D3F388F99B02FF6FA1BC09949C6256 __s0;
  volatile int Lock;
  $24C9B4BD5BDBFDE559AE039F3ECAE0E1 __s2;
  $F151C2BFBC638D507868B880929DEDD5 __s3;
  $0B6FB50FFAD4BED3D9F7829B10596895 __s4;
  $D14A413E6F4FC7D01F586962AF64E9C2 __s5;
};

/* 37 */
struct _DISPATCHER_HEADER
{
  $F4DFF8D6AD3F2D8A035777AE06A8337D ___u0;
  int SignalState;
  _LIST_ENTRY WaitListHead;
};

/* 39 */
struct _KEVENT
{
  _DISPATCHER_HEADER Header;
};

/* 18 */
struct _DEVICE_OBJECT
{
  __int16 Type;
  unsigned __int16 Size;
  int ReferenceCount;
  _DRIVER_OBJECT *DriverObject;
  _DEVICE_OBJECT *NextDevice;
  _DEVICE_OBJECT *AttachedDevice;
  _IRP *CurrentIrp;
  struct _IO_TIMER *Timer;
  unsigned int Flags;
  unsigned int Characteristics;
  _VPB *Vpb;
  void *DeviceExtension;
  unsigned int DeviceType;
  char StackSize;
  $C6ACC1BB993012B3A10E7CDCFCCA515F Queue;
  unsigned int AlignmentRequirement;
  _KDEVICE_QUEUE DeviceQueue;
  _KDPC Dpc;
  unsigned int ActiveThreadCount;
  void *SecurityDescriptor;
  _KEVENT DeviceLock;
  unsigned __int16 SectorSize;
  unsigned __int16 Spare1;
  _DEVOBJ_EXTENSION *DeviceObjectExtension;
  void *Reserved;
};

/* 20 */
struct _UNICODE_STRING
{
  unsigned __int16 Length;
  unsigned __int16 MaximumLength;
  unsigned __int16 *Buffer;
};

/* 19 */
struct _DRIVER_OBJECT
{
  __int16 Type;
  __int16 Size;
  _DEVICE_OBJECT *DeviceObject;
  unsigned int Flags;
  void *DriverStart;
  unsigned int DriverSize;
  void *DriverSection;
  _DRIVER_EXTENSION *DriverExtension;
  _UNICODE_STRING DriverName;
  _UNICODE_STRING *HardwareDatabase;
  _FAST_IO_DISPATCH *FastIoDispatch;
  int (__stdcall *DriverInit)(_DRIVER_OBJECT *, _UNICODE_STRING *);
  void (__stdcall *DriverStartIo)(_DEVICE_OBJECT *, _IRP *);
  void (__stdcall *DriverUnload)(_DRIVER_OBJECT *);
  int (__stdcall *MajorFunction[28])(_DEVICE_OBJECT *, _IRP *);
};

/* 44 */
union $60AA61550E05FF3BD8B5BD4D4EEC5275
{
  _IRP *MasterIrp;
  int IrpCount;
  void *SystemBuffer;
};

/* 25 */
union $250F5FE22B4503EFD7D48C86CC7F2167
{
  int Status;
  void *Pointer;
};

/* 26 */
struct _IO_STATUS_BLOCK
{
  $250F5FE22B4503EFD7D48C86CC7F2167 ___u0;
  unsigned int Information;
};

/* 45 */
union $FF834687CA4D2CB1027D78ED51320405
{
  void (__stdcall *UserApcRoutine)(void *, _IO_STATUS_BLOCK *, unsigned int);
  void *IssuingProcess;
};

/* 46 */
struct $1F06749A8509CC92E2F26D7A5F05C507
{
  $FF834687CA4D2CB1027D78ED51320405 ___u0;
  void *UserApcContext;
};

/* 23 */
struct $FAF74743FBE1C8632047CFB668F7028A
{
  unsigned int LowPart;
  int HighPart;
};

/* 24 */
union _LARGE_INTEGER
{
  $FAF74743FBE1C8632047CFB668F7028A __s0;
  $FAF74743FBE1C8632047CFB668F7028A u;
  __int64 QuadPart;
};

/* 47 */
union $117A29CD9699E166D243A88999B25B34
{
  $1F06749A8509CC92E2F26D7A5F05C507 AsynchronousParameters;
  _LARGE_INTEGER AllocationSize;
};

/* 129 */
union $BE169DC8F8363823C03D43BF1A6C7211
{
  _KDEVICE_QUEUE_ENTRY DeviceQueueEntry;
  void *DriverContext[4];
};

/* 130 */
union $077B09EA2C034D69E32C376C01CAB81C
{
  _IO_STACK_LOCATION *CurrentStackLocation;
  unsigned int PacketType;
};

/* 131 */
struct $3DFE2DCFA68EB619C9A3DA483984D57B
{
  $BE169DC8F8363823C03D43BF1A6C7211 ___u0;
  struct _ETHREAD *Thread;
  char *AuxiliaryBuffer;
  _LIST_ENTRY ListEntry;
  $077B09EA2C034D69E32C376C01CAB81C ___u4;
  _FILE_OBJECT *OriginalFileObject;
};

/* 132 */
struct __declspec(align(2)) _KAPC
{
  char Type;
  char SpareByte0;
  char Size;
  char SpareByte1;
  unsigned int SpareLong0;
  struct _KTHREAD *Thread;
  _LIST_ENTRY ApcListEntry;
  void (__stdcall *KernelRoutine)(_KAPC *, void (__stdcall **)(void *, void *, void *), void **, void **, void **);
  void (__stdcall *RundownRoutine)(_KAPC *);
  void (__stdcall *NormalRoutine)(void *, void *, void *);
  void *NormalContext;
  void *SystemArgument1;
  void *SystemArgument2;
  char ApcStateIndex;
  char ApcMode;
  char Inserted;
};

/* 133 */
union $5E5928E3BC251157DD8DA3E074F86738
{
  $3DFE2DCFA68EB619C9A3DA483984D57B Overlay;
  _KAPC Apc;
  void *CompletionKey;
};

/* 43 */
struct _IRP
{
  __int16 Type;
  unsigned __int16 Size;
  _MDL *MdlAddress;
  unsigned int Flags;
  $60AA61550E05FF3BD8B5BD4D4EEC5275 AssociatedIrp;
  _LIST_ENTRY ThreadListEntry;
  _IO_STATUS_BLOCK IoStatus;
  char RequestorMode;
  char PendingReturned;
  char StackCount;
  char CurrentLocation;
  char Cancel;
  char CancelIrql;
  char ApcEnvironment;
  char AllocationFlags;
  _IO_STATUS_BLOCK *UserIosb;
  _KEVENT *UserEvent;
  $117A29CD9699E166D243A88999B25B34 Overlay;
  void (__stdcall *CancelRoutine)(_DEVICE_OBJECT *, _IRP *);
  void *UserBuffer;
  $5E5928E3BC251157DD8DA3E074F86738 Tail;
};

/* 231 */
typedef unsigned __int16 wchar_t;

/* 70 */
struct _VPB
{
  __int16 Type;
  __int16 Size;
  unsigned __int16 Flags;
  unsigned __int16 VolumeLabelLength;
  _DEVICE_OBJECT *DeviceObject;
  _DEVICE_OBJECT *RealDevice;
  unsigned int SerialNumber;
  unsigned int ReferenceCount;
  wchar_t VolumeLabel[32];
};

/* 139 */
struct _DEVOBJ_EXTENSION
{
  __int16 Type;
  unsigned __int16 Size;
  _DEVICE_OBJECT *DeviceObject;
};

/* 21 */
struct _DRIVER_EXTENSION
{
  _DRIVER_OBJECT *DriverObject;
  int (__stdcall *AddDevice)(_DRIVER_OBJECT *, _DEVICE_OBJECT *);
  unsigned int Count;
  _UNICODE_STRING ServiceKeyName;
};

/* 134 */
struct _FAST_IO_DISPATCH
{
  unsigned int SizeOfFastIoDispatch;
  char (__stdcall *FastIoCheckIfPossible)(_FILE_OBJECT *, _LARGE_INTEGER *, unsigned int, char, unsigned int, char, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoRead)(_FILE_OBJECT *, _LARGE_INTEGER *, unsigned int, char, unsigned int, void *, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoWrite)(_FILE_OBJECT *, _LARGE_INTEGER *, unsigned int, char, unsigned int, void *, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoQueryBasicInfo)(_FILE_OBJECT *, char, _FILE_BASIC_INFORMATION *, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoQueryStandardInfo)(_FILE_OBJECT *, char, _FILE_STANDARD_INFORMATION *, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoLock)(_FILE_OBJECT *, _LARGE_INTEGER *, _LARGE_INTEGER *, struct _EPROCESS *, unsigned int, char, char, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoUnlockSingle)(_FILE_OBJECT *, _LARGE_INTEGER *, _LARGE_INTEGER *, struct _EPROCESS *, unsigned int, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoUnlockAll)(_FILE_OBJECT *, struct _EPROCESS *, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoUnlockAllByKey)(_FILE_OBJECT *, void *, unsigned int, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoDeviceControl)(_FILE_OBJECT *, char, void *, unsigned int, void *, unsigned int, unsigned int, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  void (__stdcall *AcquireFileForNtCreateSection)(_FILE_OBJECT *);
  void (__stdcall *ReleaseFileForNtCreateSection)(_FILE_OBJECT *);
  void (__stdcall *FastIoDetachDevice)(_DEVICE_OBJECT *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoQueryNetworkOpenInfo)(_FILE_OBJECT *, char, _FILE_NETWORK_OPEN_INFORMATION *, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  int (__stdcall *AcquireForModWrite)(_FILE_OBJECT *, _LARGE_INTEGER *, _ERESOURCE **, _DEVICE_OBJECT *);
  char (__stdcall *MdlRead)(_FILE_OBJECT *, _LARGE_INTEGER *, unsigned int, unsigned int, _MDL **, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *MdlReadComplete)(_FILE_OBJECT *, _MDL *, _DEVICE_OBJECT *);
  char (__stdcall *PrepareMdlWrite)(_FILE_OBJECT *, _LARGE_INTEGER *, unsigned int, unsigned int, _MDL **, _IO_STATUS_BLOCK *, _DEVICE_OBJECT *);
  char (__stdcall *MdlWriteComplete)(_FILE_OBJECT *, _LARGE_INTEGER *, _MDL *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoReadCompressed)(_FILE_OBJECT *, _LARGE_INTEGER *, unsigned int, unsigned int, void *, _MDL **, _IO_STATUS_BLOCK *, struct _COMPRESSED_DATA_INFO *, unsigned int, _DEVICE_OBJECT *);
  char (__stdcall *FastIoWriteCompressed)(_FILE_OBJECT *, _LARGE_INTEGER *, unsigned int, unsigned int, void *, _MDL **, _IO_STATUS_BLOCK *, struct _COMPRESSED_DATA_INFO *, unsigned int, _DEVICE_OBJECT *);
  char (__stdcall *MdlReadCompleteCompressed)(_FILE_OBJECT *, _MDL *, _DEVICE_OBJECT *);
  char (__stdcall *MdlWriteCompleteCompressed)(_FILE_OBJECT *, _LARGE_INTEGER *, _MDL *, _DEVICE_OBJECT *);
  char (__stdcall *FastIoQueryOpen)(_IRP *, _FILE_NETWORK_OPEN_INFORMATION *, _DEVICE_OBJECT *);
  int (__stdcall *ReleaseForModWrite)(_FILE_OBJECT *, _ERESOURCE *, _DEVICE_OBJECT *);
  int (__stdcall *AcquireForCcFlush)(_FILE_OBJECT *, _DEVICE_OBJECT *);
  int (__stdcall *ReleaseForCcFlush)(_FILE_OBJECT *, _DEVICE_OBJECT *);
};

/* 42 */
struct _MDL
{
  _MDL *Next;
  __int16 Size;
  __int16 MdlFlags;
  struct _EPROCESS *Process;
  void *MappedSystemVa;
  void *StartVa;
  unsigned int ByteCount;
  unsigned int ByteOffset;
};

/* 54 */
struct $D51CA8E7B00750779DAB8636AD88E53C
{
  _IO_SECURITY_CONTEXT *SecurityContext;
  unsigned int Options;
  unsigned __int16 FileAttributes;
  unsigned __int16 ShareAccess;
  unsigned int EaLength;
};

/* 55 */
struct $42C711BA4804161B59144EAB6C04486B
{
  unsigned int Length;
  unsigned int Key;
  _LARGE_INTEGER ByteOffset;
};

/* 56 */
struct $A272A463116019DFB3AB34CAB62097C1
{
  unsigned int Length;
  _UNICODE_STRING *FileName;
  _FILE_INFORMATION_CLASS FileInformationClass;
  unsigned int FileIndex;
};

/* 57 */
struct $50A7D1BFBD4B9BBEBCBBE3D92FEB6A61
{
  unsigned int Length;
  unsigned int CompletionFilter;
};

/* 58 */
struct $0CDA96B9A05BF0785010D885D394ECF0
{
  unsigned int Length;
  _FILE_INFORMATION_CLASS FileInformationClass;
};

/* 59 */
struct $A08C4E4D68F10DE40516853589D2B735
{
  char ReplaceIfExists;
  char AdvanceOnly;
};

/* 60 */
union $8655E15FCC5F6742D896D8FF5510A3F4
{
  $A08C4E4D68F10DE40516853589D2B735 __s0;
  unsigned int ClusterCount;
  void *DeleteHandle;
};

/* 61 */
struct $DBA3DA0A50EA113FDF313ED2A58A56C6
{
  unsigned int Length;
  _FILE_INFORMATION_CLASS FileInformationClass;
  _FILE_OBJECT *FileObject;
  $8655E15FCC5F6742D896D8FF5510A3F4 ___u3;
};

/* 62 */
struct $43049A1C9CD1076EE2F76BA56B9556D6
{
  unsigned int Length;
  void *EaList;
  unsigned int EaListLength;
  unsigned int EaIndex;
};

/* 63 */
struct $44CAF4394294FD1AA9144BF9A47D2B76
{
  unsigned int Length;
};

/* 64 */
struct $F3A176D381088042928DF442E2A7225C
{
  unsigned int Length;
  _FSINFOCLASS FsInformationClass;
};

/* 65 */
struct $1452ECD7C6E5AB3C058EED8909EEC64B
{
  unsigned int OutputBufferLength;
  unsigned int InputBufferLength;
  unsigned int FsControlCode;
  void *Type3InputBuffer;
};

/* 66 */
struct $36AAA58A4A528A0301164E548FB9AD7D
{
  _LARGE_INTEGER *Length;
  unsigned int Key;
  _LARGE_INTEGER ByteOffset;
};

/* 67 */
struct $343716E60DEC8CEA3C236115305CA9A5
{
  unsigned int OutputBufferLength;
  unsigned int InputBufferLength;
  unsigned int IoControlCode;
  void *Type3InputBuffer;
};

/* 68 */
struct $79FAFD50642EF9FCAC6F48CCDD5826D7
{
  unsigned int SecurityInformation;
  unsigned int Length;
};

/* 69 */
struct $29E784017BF8D630C3CED492840B3F1E
{
  unsigned int SecurityInformation;
  void *SecurityDescriptor;
};

/* 71 */
struct $DFE38C04BA7A5DAB8175250DB5646414
{
  _VPB *Vpb;
  _DEVICE_OBJECT *DeviceObject;
};

/* 72 */
struct $B2B4984C7002DD41520623255E2F9497
{
  struct _SCSI_REQUEST_BLOCK *Srb;
};

/* 73 */
struct $F26D5252B9CB0364A89F29DE5B8870AE
{
  unsigned int Length;
  void *StartSid;
  struct _FILE_GET_QUOTA_INFORMATION *SidList;
  unsigned int SidListLength;
};

/* 74 */
struct $0F193EB57E38EF5279F2D2A8D7BF0B2D
{
  _DEVICE_RELATION_TYPE Type;
};

/* 77 */
struct $3AE2FCCEC4595293400B8920E81188AF
{
  _GUID *InterfaceType;
  unsigned __int16 Size;
  unsigned __int16 Version;
  _INTERFACE *Interface;
  void *InterfaceSpecificData;
};

/* 79 */
struct $4FBB41D6C741CC23EB110EF7569D9581
{
  _DEVICE_CAPABILITIES *Capabilities;
};

/* 93 */
struct $4FF3393C95C5C0CF2969BEC9F46DCF4E
{
  _IO_RESOURCE_REQUIREMENTS_LIST *IoResourceRequirementList;
};

/* 94 */
struct $5E4425892CB91929A7D567B5DA0A3F92
{
  unsigned int WhichSpace;
  void *Buffer;
  unsigned int Offset;
  unsigned int Length;
};

/* 95 */
struct $F39C847BB869FD7EF9D8E5470FAAB584
{
  char Lock;
};

/* 6 */
typedef $46A0A762E46BF16A5C029C85901AE439 BUS_QUERY_ID_TYPE;

/* 96 */
struct $BB994F513F1DAE005712567504284A49
{
  BUS_QUERY_ID_TYPE IdType;
};

/* 5 */
typedef $CD1AEEBAB641DEC86F01C12702A854EA DEVICE_TEXT_TYPE;

/* 97 */
struct $09AB70BA1B0864D602AF9EACD9DF7623
{
  DEVICE_TEXT_TYPE DeviceTextType;
  unsigned int LocaleId;
};

/* 98 */
struct $2CD64113D2B6A9560ADE60F35252C03D
{
  char InPath;
  char Reserved[3];
  _DEVICE_USAGE_NOTIFICATION_TYPE Type;
};

/* 99 */
struct $11F4275C5C519326409AF4E80485B892
{
  _SYSTEM_POWER_STATE PowerState;
};

/* 101 */
struct $EDA18630D413874AB49BC358E876B91E
{
  _POWER_SEQUENCE *PowerSequence;
};

/* 102 */
struct $76514DB155979F88E47E6F460A9859AB
{
  unsigned __int32 Reserved1 : 8;
  unsigned __int32 TargetSystemState : 4;
  unsigned __int32 EffectiveSystemState : 4;
  unsigned __int32 CurrentSystemState : 4;
  unsigned __int32 IgnoreHibernationPath : 1;
  unsigned __int32 PseudoTransition : 1;
  unsigned __int32 Reserved2 : 10;
};

/* 103 */
union $3A463DCE9B57A6CADFB6BDD69F959185
{
  $76514DB155979F88E47E6F460A9859AB __s0;
  unsigned int ContextAsUlong;
};

/* 104 */
struct _SYSTEM_POWER_STATE_CONTEXT
{
  $3A463DCE9B57A6CADFB6BDD69F959185 ___u0;
};

/* 106 */
union $E0A75C9F1BCDB4D5CE392382A49EED15
{
  unsigned int SystemContext;
  _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext;
};

/* 105 */
union _POWER_STATE
{
  _SYSTEM_POWER_STATE SystemState;
  _DEVICE_POWER_STATE DeviceState;
};

/* 9 */
typedef $0FC989869F227A36D749990E523E5F04 POWER_ACTION;

/* 107 */
struct $CFD7209AF6DE6AD2CDF9D8304F75EA2A
{
  $E0A75C9F1BCDB4D5CE392382A49EED15 ___u0;
  _POWER_STATE_TYPE Type;
  _POWER_STATE State;
  POWER_ACTION ShutdownType;
};

/* 124 */
struct $F9D76DBCDBD7FE7A23E2F8C8B2983928
{
  _CM_RESOURCE_LIST *AllocatedResources;
  _CM_RESOURCE_LIST *AllocatedResourcesTranslated;
};

/* 125 */
struct $27D1A893733DBE62F2FCC36974CB79FA
{
  unsigned int ProviderId;
  void *DataPath;
  unsigned int BufferSize;
  void *Buffer;
};

/* 126 */
struct $228F32E73A128818A25FF1959272C294
{
  void *Argument1;
  void *Argument2;
  void *Argument3;
  void *Argument4;
};

/* 127 */
union $ACC6661611C15974E54784CDEDB7E066
{
  $D51CA8E7B00750779DAB8636AD88E53C Create;
  $42C711BA4804161B59144EAB6C04486B Read;
  $42C711BA4804161B59144EAB6C04486B Write;
  $A272A463116019DFB3AB34CAB62097C1 QueryDirectory;
  $50A7D1BFBD4B9BBEBCBBE3D92FEB6A61 NotifyDirectory;
  $0CDA96B9A05BF0785010D885D394ECF0 QueryFile;
  $DBA3DA0A50EA113FDF313ED2A58A56C6 SetFile;
  $43049A1C9CD1076EE2F76BA56B9556D6 QueryEa;
  $44CAF4394294FD1AA9144BF9A47D2B76 SetEa;
  $F3A176D381088042928DF442E2A7225C QueryVolume;
  $F3A176D381088042928DF442E2A7225C SetVolume;
  $1452ECD7C6E5AB3C058EED8909EEC64B FileSystemControl;
  $36AAA58A4A528A0301164E548FB9AD7D LockControl;
  $343716E60DEC8CEA3C236115305CA9A5 DeviceIoControl;
  $79FAFD50642EF9FCAC6F48CCDD5826D7 QuerySecurity;
  $29E784017BF8D630C3CED492840B3F1E SetSecurity;
  $DFE38C04BA7A5DAB8175250DB5646414 MountVolume;
  $DFE38C04BA7A5DAB8175250DB5646414 VerifyVolume;
  $B2B4984C7002DD41520623255E2F9497 Scsi;
  $F26D5252B9CB0364A89F29DE5B8870AE QueryQuota;
  $44CAF4394294FD1AA9144BF9A47D2B76 SetQuota;
  $0F193EB57E38EF5279F2D2A8D7BF0B2D QueryDeviceRelations;
  $3AE2FCCEC4595293400B8920E81188AF QueryInterface;
  $4FBB41D6C741CC23EB110EF7569D9581 DeviceCapabilities;
  $4FF3393C95C5C0CF2969BEC9F46DCF4E FilterResourceRequirements;
  $5E4425892CB91929A7D567B5DA0A3F92 ReadWriteConfig;
  $F39C847BB869FD7EF9D8E5470FAAB584 SetLock;
  $BB994F513F1DAE005712567504284A49 QueryId;
  $09AB70BA1B0864D602AF9EACD9DF7623 QueryDeviceText;
  $2CD64113D2B6A9560ADE60F35252C03D UsageNotification;
  $11F4275C5C519326409AF4E80485B892 WaitWake;
  $EDA18630D413874AB49BC358E876B91E PowerSequence;
  $CFD7209AF6DE6AD2CDF9D8304F75EA2A Power;
  $F9D76DBCDBD7FE7A23E2F8C8B2983928 StartDevice;
  $27D1A893733DBE62F2FCC36974CB79FA WMI;
  $228F32E73A128818A25FF1959272C294 Others;
};

/* 128 */
struct __unaligned __declspec(align(4)) _IO_STACK_LOCATION
{
  char MajorFunction;
  char MinorFunction;
  char Flags;
  char Control;
  $ACC6661611C15974E54784CDEDB7E066 Parameters;
  _DEVICE_OBJECT *DeviceObject;
  _FILE_OBJECT *FileObject;
  int (__stdcall *CompletionRoutine)(_DEVICE_OBJECT *, _IRP *, void *);
  void *Context;
};

/* 22 */
struct _FILE_OBJECT
{
  __int16 Type;
  __int16 Size;
  _DEVICE_OBJECT *DeviceObject;
  _VPB *Vpb;
  void *FsContext;
  void *FsContext2;
  _SECTION_OBJECT_POINTERS *SectionObjectPointer;
  void *PrivateCacheMap;
  int FinalStatus;
  _FILE_OBJECT *RelatedFileObject;
  char LockOperation;
  char DeletePending;
  char ReadAccess;
  char WriteAccess;
  char DeleteAccess;
  char SharedRead;
  char SharedWrite;
  char SharedDelete;
  unsigned int Flags;
  _UNICODE_STRING FileName;
  _LARGE_INTEGER CurrentByteOffset;
  unsigned int Waiters;
  unsigned int Busy;
  void *LastLock;
  _KEVENT Lock;
  _KEVENT Event;
  _IO_COMPLETION_CONTEXT *CompletionContext;
  unsigned int IrpListLock;
  _LIST_ENTRY IrpList;
  void *FileObjectExtension;
};

/* 27 */
struct __declspec(align(8)) _FILE_BASIC_INFORMATION
{
  _LARGE_INTEGER CreationTime;
  _LARGE_INTEGER LastAccessTime;
  _LARGE_INTEGER LastWriteTime;
  _LARGE_INTEGER ChangeTime;
  unsigned int FileAttributes;
};

/* 28 */
struct __declspec(align(4)) _FILE_STANDARD_INFORMATION
{
  _LARGE_INTEGER AllocationSize;
  _LARGE_INTEGER EndOfFile;
  unsigned int NumberOfLinks;
  char DeletePending;
  char Directory;
};

/* 29 */
struct __declspec(align(8)) _FILE_NETWORK_OPEN_INFORMATION
{
  _LARGE_INTEGER CreationTime;
  _LARGE_INTEGER LastAccessTime;
  _LARGE_INTEGER LastWriteTime;
  _LARGE_INTEGER ChangeTime;
  _LARGE_INTEGER AllocationSize;
  _LARGE_INTEGER EndOfFile;
  unsigned int FileAttributes;
};

/* 15 */
struct $658AD709826129357C3064DC5428D5B8
{
  unsigned __int32 IoPriorityBoosted : 1;
  unsigned __int32 OwnerReferenced : 1;
  unsigned __int32 OwnerCount : 30;
};

/* 16 */
union $E117CC170B9FE17FE892775F5BA9D51D
{
  $658AD709826129357C3064DC5428D5B8 __s0;
  unsigned int TableSize;
};

/* 17 */
struct _OWNER_ENTRY
{
  unsigned int OwnerThread;
  $E117CC170B9FE17FE892775F5BA9D51D ___u1;
};

/* 40 */
union $B8D4EB9E6E3D1A926634FE9A5064A2BB
{
  void *Address;
  unsigned int CreatorBackTraceIndex;
};

/* 41 */
struct _ERESOURCE
{
  _LIST_ENTRY SystemResourcesList;
  _OWNER_ENTRY *OwnerTable;
  __int16 ActiveCount;
  unsigned __int16 Flag;
  _KSEMAPHORE *SharedWaiters;
  _KEVENT *ExclusiveWaiters;
  _OWNER_ENTRY OwnerEntry;
  unsigned int ActiveEntries;
  unsigned int ContentionCount;
  unsigned int NumberOfSharedWaiters;
  unsigned int NumberOfExclusiveWaiters;
  $B8D4EB9E6E3D1A926634FE9A5064A2BB ___u11;
  unsigned int SpinLock;
};

/* 53 */
struct _IO_SECURITY_CONTEXT
{
  _SECURITY_QUALITY_OF_SERVICE *SecurityQos;
  _ACCESS_STATE *AccessState;
  unsigned int DesiredAccess;
  unsigned int FullCreateOptions;
};

/* 75 */
const struct _GUID
{
  unsigned int Data1;
  unsigned __int16 Data2;
  unsigned __int16 Data3;
  char Data4[8];
};

/* 76 */
struct _INTERFACE
{
  unsigned __int16 Size;
  unsigned __int16 Version;
  void *Context;
  void (__stdcall *InterfaceReference)(void *);
  void (__stdcall *InterfaceDereference)(void *);
};

/* 78 */
struct _DEVICE_CAPABILITIES
{
  unsigned __int16 Size;
  unsigned __int16 Version;
  unsigned __int32 DeviceD1 : 1;
  unsigned __int32 DeviceD2 : 1;
  unsigned __int32 LockSupported : 1;
  unsigned __int32 EjectSupported : 1;
  unsigned __int32 Removable : 1;
  unsigned __int32 DockDevice : 1;
  unsigned __int32 UniqueID : 1;
  unsigned __int32 SilentInstall : 1;
  unsigned __int32 RawDeviceOK : 1;
  unsigned __int32 SurpriseRemovalOK : 1;
  unsigned __int32 WakeFromD0 : 1;
  unsigned __int32 WakeFromD1 : 1;
  unsigned __int32 WakeFromD2 : 1;
  unsigned __int32 WakeFromD3 : 1;
  unsigned __int32 HardwareDisabled : 1;
  unsigned __int32 NonDynamic : 1;
  unsigned __int32 WarmEjectSupported : 1;
  unsigned __int32 NoDisplayInUI : 1;
  unsigned __int32 Reserved1 : 1;
  unsigned __int32 Reserved : 13;
  unsigned int Address;
  unsigned int UINumber;
  _DEVICE_POWER_STATE DeviceState[7];
  _SYSTEM_POWER_STATE SystemWake;
  _DEVICE_POWER_STATE DeviceWake;
  unsigned int D1Latency;
  unsigned int D2Latency;
  unsigned int D3Latency;
};

/* 80 */
struct $3BC98226F873281DD00E19D6370E048E
{
  unsigned int Length;
  unsigned int Alignment;
  _LARGE_INTEGER MinimumAddress;
  _LARGE_INTEGER MaximumAddress;
};

/* 2 */
enum _IRQ_DEVICE_POLICY
{
  IrqPolicyMachineDefault = 0x0,
  IrqPolicyAllCloseProcessors = 0x1,
  IrqPolicyOneCloseProcessor = 0x2,
  IrqPolicyAllProcessorsInMachine = 0x3,
  IrqPolicySpecifiedProcessors = 0x4,
  IrqPolicySpreadMessagesAcrossAllProcessors = 0x5,
};

/* 1 */
enum _IRQ_PRIORITY
{
  IrqPriorityUndefined = 0x0,
  IrqPriorityLow = 0x1,
  IrqPriorityNormal = 0x2,
  IrqPriorityHigh = 0x3,
};

/* 81 */
struct $6AEF64E71B31FC079E317959CE84427C
{
  unsigned int MinimumVector;
  unsigned int MaximumVector;
  _IRQ_DEVICE_POLICY AffinityPolicy;
  _IRQ_PRIORITY PriorityPolicy;
  unsigned int TargetedProcessors;
};

/* 82 */
struct $290D34FD7868E94AFEC0383C08CB9B28
{
  unsigned int MinimumChannel;
  unsigned int MaximumChannel;
};

/* 83 */
struct $B14DB811EDFC1214B110A98B000FF49B
{
  unsigned int Data[3];
};

/* 84 */
struct $CF7D779FCF8501AF42168A39ACA3AE76
{
  unsigned int Length;
  unsigned int MinBusNumber;
  unsigned int MaxBusNumber;
  unsigned int Reserved;
};

/* 85 */
struct $5D61DD2957AFDEE7ED67BD2EDF2BEA99
{
  unsigned int Priority;
  unsigned int Reserved1;
  unsigned int Reserved2;
};

/* 86 */
struct $30D9CFF82D63AA2BBC6B829C77079F2F
{
  unsigned int Length40;
  unsigned int Alignment40;
  _LARGE_INTEGER MinimumAddress;
  _LARGE_INTEGER MaximumAddress;
};

/* 87 */
struct $88EAD37160FF9909A7789D8A2D65CD72
{
  unsigned int Length48;
  unsigned int Alignment48;
  _LARGE_INTEGER MinimumAddress;
  _LARGE_INTEGER MaximumAddress;
};

/* 88 */
struct $A0D6EAB0DCA03F380C0363B72DD26354
{
  unsigned int Length64;
  unsigned int Alignment64;
  _LARGE_INTEGER MinimumAddress;
  _LARGE_INTEGER MaximumAddress;
};

/* 89 */
union $A5F8365A2EDF26457CA40CDED5A37496
{
  $3BC98226F873281DD00E19D6370E048E Port;
  $3BC98226F873281DD00E19D6370E048E Memory;
  $6AEF64E71B31FC079E317959CE84427C Interrupt;
  $290D34FD7868E94AFEC0383C08CB9B28 Dma;
  $3BC98226F873281DD00E19D6370E048E Generic;
  $B14DB811EDFC1214B110A98B000FF49B DevicePrivate;
  $CF7D779FCF8501AF42168A39ACA3AE76 BusNumber;
  $5D61DD2957AFDEE7ED67BD2EDF2BEA99 ConfigData;
  $30D9CFF82D63AA2BBC6B829C77079F2F Memory40;
  $88EAD37160FF9909A7789D8A2D65CD72 Memory48;
  $A0D6EAB0DCA03F380C0363B72DD26354 Memory64;
};

/* 90 */
struct _IO_RESOURCE_DESCRIPTOR
{
  char Option;
  char Type;
  char ShareDisposition;
  char Spare1;
  unsigned __int16 Flags;
  unsigned __int16 Spare2;
  $A5F8365A2EDF26457CA40CDED5A37496 u;
};

/* 91 */
struct _IO_RESOURCE_LIST
{
  unsigned __int16 Version;
  unsigned __int16 Revision;
  unsigned int Count;
  _IO_RESOURCE_DESCRIPTOR Descriptors[1];
};

/* 92 */
struct _IO_RESOURCE_REQUIREMENTS_LIST
{
  unsigned int ListSize;
  _INTERFACE_TYPE InterfaceType;
  unsigned int BusNumber;
  unsigned int SlotNumber;
  unsigned int Reserved[3];
  unsigned int AlternativeLists;
  _IO_RESOURCE_LIST List[1];
};

/* 100 */
struct _POWER_SEQUENCE
{
  unsigned int SequenceD1;
  unsigned int SequenceD2;
  unsigned int SequenceD3;
};

/* 108 */
struct __unaligned __declspec(align(4)) $3367A856A83C9BA20547425383269877
{
  _LARGE_INTEGER Start;
  unsigned int Length;
};

/* 109 */
struct $B56176FCA237C2B0A687F85299143576
{
  unsigned int Level;
  unsigned int Vector;
  unsigned int Affinity;
};

/* 110 */
struct $7AC00411D044B43A85AFD80B1CBC99F4
{
  unsigned __int16 Reserved;
  unsigned __int16 MessageCount;
  unsigned int Vector;
  unsigned int Affinity;
};

/* 111 */
union $DF14D728F8F715C877351F1F94A9C80C
{
  $7AC00411D044B43A85AFD80B1CBC99F4 Raw;
  $B56176FCA237C2B0A687F85299143576 Translated;
};

/* 112 */
struct $F5F7B7DDBE2452BE8121622F0290A27C
{
  $DF14D728F8F715C877351F1F94A9C80C ___u0;
};

/* 113 */
struct $72748C417E05990EBECC6BB8D043D8B0
{
  unsigned int Channel;
  unsigned int Port;
  unsigned int Reserved1;
};

/* 114 */
struct $6C467299E1DD150E8FDAFB428553E9E9
{
  unsigned int Start;
  unsigned int Length;
  unsigned int Reserved;
};

/* 115 */
struct $D735038633D506DCA1748B01FF7747C2
{
  unsigned int DataSize;
  unsigned int Reserved1;
  unsigned int Reserved2;
};

/* 116 */
struct __unaligned __declspec(align(4)) $C26FCAD04DC14768CAF274E8F59A49A3
{
  _LARGE_INTEGER Start;
  unsigned int Length40;
};

/* 117 */
struct __unaligned __declspec(align(4)) $AEC29D8EE4AA5D31203451F2CBFB2601
{
  _LARGE_INTEGER Start;
  unsigned int Length48;
};

/* 118 */
struct __unaligned __declspec(align(4)) $3ADC59C46151DA02D547FA84E45A033E
{
  _LARGE_INTEGER Start;
  unsigned int Length64;
};

/* 119 */
union $B1D6503D7244ADCD9593D9B93D6DF91B
{
  $3367A856A83C9BA20547425383269877 Generic;
  $3367A856A83C9BA20547425383269877 Port;
  $B56176FCA237C2B0A687F85299143576 Interrupt;
  $F5F7B7DDBE2452BE8121622F0290A27C MessageInterrupt;
  $3367A856A83C9BA20547425383269877 Memory;
  $72748C417E05990EBECC6BB8D043D8B0 Dma;
  $B14DB811EDFC1214B110A98B000FF49B DevicePrivate;
  $6C467299E1DD150E8FDAFB428553E9E9 BusNumber;
  $D735038633D506DCA1748B01FF7747C2 DeviceSpecificData;
  $C26FCAD04DC14768CAF274E8F59A49A3 Memory40;
  $AEC29D8EE4AA5D31203451F2CBFB2601 Memory48;
  $3ADC59C46151DA02D547FA84E45A033E Memory64;
};

/* 120 */
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR
{
  char Type;
  char ShareDisposition;
  unsigned __int16 Flags;
  $B1D6503D7244ADCD9593D9B93D6DF91B u;
};

/* 121 */
struct _CM_PARTIAL_RESOURCE_LIST
{
  unsigned __int16 Version;
  unsigned __int16 Revision;
  unsigned int Count;
  _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
};

/* 122 */
struct _CM_FULL_RESOURCE_DESCRIPTOR
{
  _INTERFACE_TYPE InterfaceType;
  unsigned int BusNumber;
  _CM_PARTIAL_RESOURCE_LIST PartialResourceList;
};

/* 123 */
struct _CM_RESOURCE_LIST
{
  unsigned int Count;
  _CM_FULL_RESOURCE_DESCRIPTOR List[1];
};

/* 140 */
struct _SECTION_OBJECT_POINTERS
{
  void *DataSectionObject;
  void *SharedCacheMap;
  void *ImageSectionObject;
};

/* 141 */
struct _IO_COMPLETION_CONTEXT
{
  void *Port;
  void *Key;
};

/* 38 */
struct _KSEMAPHORE
{
  _DISPATCHER_HEADER Header;
  int Limit;
};

/* 49 */
struct __declspec(align(4)) _SECURITY_QUALITY_OF_SERVICE
{
  unsigned int Length;
  _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
  char ContextTrackingMode;
  char EffectiveOnly;
};

/* 11 */
struct _LUID
{
  unsigned int LowPart;
  int HighPart;
};

/* 50 */
struct _SECURITY_SUBJECT_CONTEXT
{
  void *ClientToken;
  _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
  void *PrimaryToken;
  void *ProcessAuditId;
};

/* 12 */
struct _LUID_AND_ATTRIBUTES
{
  _LUID Luid;
  unsigned int Attributes;
};

/* 13 */
struct _INITIAL_PRIVILEGE_SET
{
  unsigned int PrivilegeCount;
  unsigned int Control;
  _LUID_AND_ATTRIBUTES Privilege[3];
};

/* 14 */
struct _PRIVILEGE_SET
{
  unsigned int PrivilegeCount;
  unsigned int Control;
  _LUID_AND_ATTRIBUTES Privilege[1];
};

/* 51 */
union $96EA7F8F5F6EAE339336A8F13C202C17
{
  _INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
  _PRIVILEGE_SET PrivilegeSet;
};

/* 52 */
struct _ACCESS_STATE
{
  _LUID OperationID;
  char SecurityEvaluated;
  char GenerateAudit;
  char GenerateOnClose;
  char PrivilegesAllocated;
  unsigned int Flags;
  unsigned int RemainingDesiredAccess;
  unsigned int PreviouslyGrantedAccess;
  unsigned int OriginalDesiredAccess;
  _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
  void *SecurityDescriptor;
  void *AuxData;
  $96EA7F8F5F6EAE339336A8F13C202C17 Privileges;
  char AuditPrivileges;
  _UNICODE_STRING ObjectName;
  _UNICODE_STRING ObjectTypeName;
};

