struct _IO_STACK_LOCATION { unsigned char MajorFunction;/* 0x0 1 */ unsigned char MinorFunction;/* 0x1 1 */ unsigned char Flags;/* 0x2 1 */ unsigned char Control;/* 0x3 1 */ /* 4 bytes padding */ union { struct { struct _IO_SECURITY_CONTEXT* SecurityContext;/* 0x8 8 */ unsigned long Options;/* 0x10 4 */ /* 4 bytes padding */ unsigned short FileAttributes;/* 0x18 2 */ unsigned short ShareAccess;/* 0x1a 2 */ /* 4 bytes padding */ unsigned long EaLength;/* 0x20 4 */ } Create;/* 0x8 32 */ struct { struct _IO_SECURITY_CONTEXT* SecurityContext;/* 0x8 8 */ unsigned long Options;/* 0x10 4 */ /* 4 bytes padding */ unsigned short Reserved;/* 0x18 2 */ unsigned short ShareAccess;/* 0x1a 2 */ /* 4 bytes padding */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters;/* 0x20 8 */ } CreatePipe;/* 0x8 32 */ struct { struct _IO_SECURITY_CONTEXT* SecurityContext;/* 0x8 8 */ unsigned long Options;/* 0x10 4 */ /* 4 bytes padding */ unsigned short Reserved;/* 0x18 2 */ unsigned short ShareAccess;/* 0x1a 2 */ /* 4 bytes padding */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters;/* 0x20 8 */ } CreateMailslot;/* 0x8 32 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ unsigned long Key;/* 0x10 4 */ /* 4 bytes padding */ union _LARGE_INTEGER ByteOffset;/* 0x18 8 */ } Read;/* 0x8 24 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ unsigned long Key;/* 0x10 4 */ /* 4 bytes padding */ union _LARGE_INTEGER ByteOffset;/* 0x18 8 */ } Write;/* 0x8 24 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ struct _UNICODE_STRING* FileName;/* 0x10 8 */ enum _FILE_INFORMATION_CLASS FileInformationClass;/* 0x18 4 */ /* 4 bytes padding */ unsigned long FileIndex;/* 0x20 4 */ } QueryDirectory;/* 0x8 32 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ unsigned long CompletionFilter;/* 0x10 4 */ } NotifyDirectory;/* 0x8 16 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ enum _FILE_INFORMATION_CLASS FileInformationClass;/* 0x10 4 */ } QueryFile;/* 0x8 16 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ enum _FILE_INFORMATION_CLASS FileInformationClass;/* 0x10 4 */ /* 4 bytes padding */ struct _FILE_OBJECT* FileObject;/* 0x18 8 */ union { struct { unsigned char ReplaceIfExists;/* 0x20 1 */ unsigned char AdvanceOnly;/* 0x21 1 */ };/* 0x20 2 */ unsigned long ClusterCount;/* 0x20 4 */ void* DeleteHandle;/* 0x20 8 */ };/* 0x20 8 */ } SetFile;/* 0x8 32 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ void* EaList;/* 0x10 8 */ unsigned long EaListLength;/* 0x18 4 */ /* 4 bytes padding */ unsigned long EaIndex;/* 0x20 4 */ } QueryEa;/* 0x8 32 */ struct { unsigned long Length;/* 0x8 4 */ } SetEa;/* 0x8 4 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ enum _FSINFOCLASS FsInformationClass;/* 0x10 4 */ } QueryVolume;/* 0x8 16 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ enum _FSINFOCLASS FsInformationClass;/* 0x10 4 */ } SetVolume;/* 0x8 16 */ struct { unsigned long OutputBufferLength;/* 0x8 4 */ /* 4 bytes padding */ unsigned long InputBufferLength;/* 0x10 4 */ /* 4 bytes padding */ unsigned long FsControlCode;/* 0x18 4 */ /* 4 bytes padding */ void* Type3InputBuffer;/* 0x20 8 */ } FileSystemControl;/* 0x8 32 */ struct { union _LARGE_INTEGER* Length;/* 0x8 8 */ unsigned long Key;/* 0x10 4 */ /* 4 bytes padding */ union _LARGE_INTEGER ByteOffset;/* 0x18 8 */ } LockControl;/* 0x8 24 */ struct { unsigned long OutputBufferLength;/* 0x8 4 */ /* 4 bytes padding */ unsigned long InputBufferLength;/* 0x10 4 */ /* 4 bytes padding */ unsigned long IoControlCode;/* 0x18 4 */ /* 4 bytes padding */ void* Type3InputBuffer;/* 0x20 8 */ } DeviceIoControl;/* 0x8 32 */ struct { unsigned long SecurityInformation;/* 0x8 4 */ /* 4 bytes padding */ unsigned long Length;/* 0x10 4 */ } QuerySecurity;/* 0x8 16 */ struct { unsigned long SecurityInformation;/* 0x8 4 */ /* 4 bytes padding */ void* SecurityDescriptor;/* 0x10 8 */ } SetSecurity;/* 0x8 16 */ struct { struct _VPB* Vpb;/* 0x8 8 */ struct _DEVICE_OBJECT* DeviceObject;/* 0x10 8 */ } MountVolume;/* 0x8 16 */ struct { struct _VPB* Vpb;/* 0x8 8 */ struct _DEVICE_OBJECT* DeviceObject;/* 0x10 8 */ } VerifyVolume;/* 0x8 16 */ struct { struct _SCSI_REQUEST_BLOCK* Srb;/* 0x8 8 */ } Scsi;/* 0x8 8 */ struct { unsigned long Length;/* 0x8 4 */ /* 4 bytes padding */ void* StartSid;/* 0x10 8 */ struct _FILE_GET_QUOTA_INFORMATION* SidList;/* 0x18 8 */ unsigned long SidListLength;/* 0x20 4 */ } QueryQuota;/* 0x8 32 */ struct { unsigned long Length;/* 0x8 4 */ } SetQuota;/* 0x8 4 */ struct { enum _DEVICE_RELATION_TYPE Type;/* 0x8 4 */ } QueryDeviceRelations;/* 0x8 4 */ struct { const struct _GUID* InterfaceType;/* 0x8 8 */ unsigned short Size;/* 0x10 2 */ unsigned short Version;/* 0x12 2 */ /* 4 bytes padding */ struct _INTERFACE* Interface;/* 0x18 8 */ void* InterfaceSpecificData;/* 0x20 8 */ } QueryInterface;/* 0x8 32 */ struct { struct _DEVICE_CAPABILITIES* Capabilities;/* 0x8 8 */ } DeviceCapabilities;/* 0x8 8 */ struct { struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList;/* 0x8 8 */ } FilterResourceRequirements;/* 0x8 8 */ struct { unsigned long WhichSpace;/* 0x8 4 */ /* 4 bytes padding */ void* Buffer;/* 0x10 8 */ unsigned long Offset;/* 0x18 4 */ /* 4 bytes padding */ unsigned long Length;/* 0x20 4 */ } ReadWriteConfig;/* 0x8 32 */ struct { unsigned char Lock;/* 0x8 1 */ } SetLock;/* 0x8 1 */ struct { enum BUS_QUERY_ID_TYPE IdType;/* 0x8 4 */ } QueryId;/* 0x8 4 */ struct { enum DEVICE_TEXT_TYPE DeviceTextType;/* 0x8 4 */ /* 4 bytes padding */ unsigned long LocaleId;/* 0x10 4 */ } QueryDeviceText;/* 0x8 16 */ struct { unsigned char InPath;/* 0x8 1 */ unsigned char Reserved[3];/* 0x9 3 */ /* 4 bytes padding */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type;/* 0x10 4 */ } UsageNotification;/* 0x8 16 */ struct { enum _SYSTEM_POWER_STATE PowerState;/* 0x8 4 */ } WaitWake;/* 0x8 4 */ struct { struct _POWER_SEQUENCE* PowerSequence;/* 0x8 8 */ } PowerSequence;/* 0x8 8 */ struct { union { unsigned long SystemContext;/* 0x8 4 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext;/* 0x8 4 */ };/* 0x8 4 */ /* 4 bytes padding */ enum _POWER_STATE_TYPE Type;/* 0x10 4 */ /* 4 bytes padding */ union _POWER_STATE State;/* 0x18 4 */ /* 4 bytes padding */ enum POWER_ACTION ShutdownType;/* 0x20 4 */ } Power;/* 0x8 32 */ struct { struct _CM_RESOURCE_LIST* AllocatedResources;/* 0x8 8 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated;/* 0x10 8 */ } StartDevice;/* 0x8 16 */ struct { unsigned __int64 ProviderId;/* 0x8 8 */ void* DataPath;/* 0x10 8 */ unsigned long BufferSize;/* 0x18 4 */ /* 4 bytes padding */ void* Buffer;/* 0x20 8 */ } WMI;/* 0x8 32 */ struct { void* Argument1;/* 0x8 8 */ void* Argument2;/* 0x10 8 */ void* Argument3;/* 0x18 8 */ void* Argument4;/* 0x20 8 */ } Others;/* 0x8 32 */ } Parameters;/* 0x8 32 */ struct _DEVICE_OBJECT* DeviceObject;/* 0x28 8 */ struct _FILE_OBJECT* FileObject;/* 0x30 8 */ long (*CompletionRoutine)(struct _DEVICE_OBJECT*, struct _IRP*, void*);/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ void* Context;/* 0x40 8 */};size 72 (0x48)9 members40 holes (160 bytes)padding 02 cachelines
Used in (1)