//0x24 bytes (sizeof)
struct _IO_STACK_LOCATION
{
UCHAR MajorFunction; //0x0
UCHAR MinorFunction; //0x1
UCHAR Flags; //0x2
UCHAR Control; //0x3
union
{
struct
{
struct _IO_SECURITY_CONTEXT* SecurityContext; //0x4
ULONG Options; //0x8
USHORT FileAttributes; //0xc
USHORT ShareAccess; //0xe
ULONG EaLength; //0x10
} Create; //0x4
struct
{
struct _IO_SECURITY_CONTEXT* SecurityContext; //0x4
ULONG Options; //0x8
USHORT Reserved; //0xc
USHORT ShareAccess; //0xe
struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; //0x10
} CreatePipe; //0x4
struct
{
struct _IO_SECURITY_CONTEXT* SecurityContext; //0x4
ULONG Options; //0x8
USHORT Reserved; //0xc
USHORT ShareAccess; //0xe
struct _MAILSLOT_CREATE_PARAMETERS* Parameters; //0x10
} CreateMailslot; //0x4
struct
{
ULONG Length; //0x4
ULONG Key; //0x8
union _LARGE_INTEGER ByteOffset; //0xc
} Read; //0x4
struct
{
ULONG Length; //0x4
ULONG Key; //0x8
union _LARGE_INTEGER ByteOffset; //0xc
} Write; //0x4
struct
{
ULONG Length; //0x4
struct _STRING* FileName; //0x8
enum _FILE_INFORMATION_CLASS FileInformationClass; //0xc
ULONG FileIndex; //0x10
} QueryDirectory; //0x4
struct
{
ULONG Length; //0x4
ULONG CompletionFilter; //0x8
} NotifyDirectory; //0x4
struct
{
ULONG Length; //0x4
enum _FILE_INFORMATION_CLASS FileInformationClass; //0x8
} QueryFile; //0x4
struct
{
ULONG Length; //0x4
enum _FILE_INFORMATION_CLASS FileInformationClass; //0x8
struct _FILE_OBJECT* FileObject; //0xc
union
{
struct
{
UCHAR ReplaceIfExists; //0x10
UCHAR AdvanceOnly; //0x11
};
ULONG ClusterCount; //0x10
VOID* DeleteHandle; //0x10
};
} SetFile; //0x4
struct
{
ULONG Length; //0x4
VOID* EaList; //0x8
ULONG EaListLength; //0xc
ULONG EaIndex; //0x10
} QueryEa; //0x4
struct
{
ULONG Length; //0x4
} SetEa; //0x4
struct
{
ULONG Length; //0x4
enum _FSINFOCLASS FsInformationClass; //0x8
} QueryVolume; //0x4
struct
{
ULONG Length; //0x4
enum _FSINFOCLASS FsInformationClass; //0x8
} SetVolume; //0x4
struct
{
ULONG OutputBufferLength; //0x4
ULONG InputBufferLength; //0x8
ULONG FsControlCode; //0xc
VOID* Type3InputBuffer; //0x10
} FileSystemControl; //0x4
struct
{
union _LARGE_INTEGER* Length; //0x4
ULONG Key; //0x8
union _LARGE_INTEGER ByteOffset; //0xc
} LockControl; //0x4
struct
{
ULONG OutputBufferLength; //0x4
ULONG InputBufferLength; //0x8
ULONG IoControlCode; //0xc
VOID* Type3InputBuffer; //0x10
} DeviceIoControl; //0x4
struct
{
ULONG SecurityInformation; //0x4
ULONG Length; //0x8
} QuerySecurity; //0x4
struct
{
ULONG SecurityInformation; //0x4
VOID* SecurityDescriptor; //0x8
} SetSecurity; //0x4
struct
{
struct _VPB* Vpb; //0x4
struct _DEVICE_OBJECT* DeviceObject; //0x8
} MountVolume; //0x4
struct
{
struct _VPB* Vpb; //0x4
struct _DEVICE_OBJECT* DeviceObject; //0x8
} VerifyVolume; //0x4
struct
{
struct _SCSI_REQUEST_BLOCK* Srb; //0x4
} Scsi; //0x4
struct
{
ULONG Length; //0x4
VOID* StartSid; //0x8
struct _FILE_GET_QUOTA_INFORMATION* SidList; //0xc
ULONG SidListLength; //0x10
} QueryQuota; //0x4
struct
{
ULONG Length; //0x4
} SetQuota; //0x4
struct
{
enum _DEVICE_RELATION_TYPE Type; //0x4
} QueryDeviceRelations; //0x4
struct
{
struct _GUID* InterfaceType; //0x4
USHORT Size; //0x8
USHORT Version; //0xa
struct _INTERFACE* Interface; //0xc
VOID* InterfaceSpecificData; //0x10
} QueryInterface; //0x4
struct
{
struct _DEVICE_CAPABILITIES* Capabilities; //0x4
} DeviceCapabilities; //0x4
struct
{
struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; //0x4
} FilterResourceRequirements; //0x4
struct
{
ULONG WhichSpace; //0x4
VOID* Buffer; //0x8
ULONG Offset; //0xc
ULONG Length; //0x10
} ReadWriteConfig; //0x4
struct
{
UCHAR Lock; //0x4
} SetLock; //0x4
struct
{
enum BUS_QUERY_ID_TYPE IdType; //0x4
} QueryId; //0x4
struct
{
enum DEVICE_TEXT_TYPE DeviceTextType; //0x4
ULONG LocaleId; //0x8
} QueryDeviceText; //0x4
struct
{
UCHAR InPath; //0x4
UCHAR Reserved[3]; //0x5
enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; //0x8
} UsageNotification; //0x4
struct
{
enum _SYSTEM_POWER_STATE PowerState; //0x4
} WaitWake; //0x4
struct
{
struct _POWER_SEQUENCE* PowerSequence; //0x4
} PowerSequence; //0x4
struct
{
ULONG SystemContext; //0x4
enum _POWER_STATE_TYPE Type; //0x8
union _POWER_STATE State; //0xc
enum POWER_ACTION ShutdownType; //0x10
} Power; //0x4
struct
{
struct _CM_RESOURCE_LIST* AllocatedResources; //0x4
struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; //0x8
} StartDevice; //0x4
struct
{
ULONG ProviderId; //0x4
VOID* DataPath; //0x8
ULONG BufferSize; //0xc
VOID* Buffer; //0x10
} WMI; //0x4
struct
{
VOID* Argument1; //0x4
VOID* Argument2; //0x8
VOID* Argument3; //0xc
VOID* Argument4; //0x10
} Others; //0x4
} Parameters; //0x4
struct _DEVICE_OBJECT* DeviceObject; //0x14
struct _FILE_OBJECT* FileObject; //0x18
LONG (*CompletionRoutine)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, VOID* arg3); //0x1c
VOID* Context; //0x20
};