ia64 / ntdllntoskrnl /

_IO_STACK_LOCATION

← 5.2.3790.3959 3 builds latest →
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 {
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 {
unsigned long Options;/* 0x10 4 */
/* 4 bytes padding */
unsigned short Reserved;/* 0x18 2 */
unsigned short ShareAccess;/* 0x1a 2 */
/* 4 bytes padding */
} CreatePipe;/* 0x8 32 */
struct {
unsigned long Options;/* 0x10 4 */
/* 4 bytes padding */
unsigned short Reserved;/* 0x18 2 */
unsigned short ShareAccess;/* 0x1a 2 */
/* 4 bytes padding */
} CreateMailslot;/* 0x8 32 */
struct {
unsigned long Length;/* 0x8 4 */
/* 4 bytes padding */
unsigned long Key;/* 0x10 4 */
/* 4 bytes padding */
} Read;/* 0x8 24 */
struct {
unsigned long Length;/* 0x8 4 */
/* 4 bytes padding */
unsigned long Key;/* 0x10 4 */
/* 4 bytes padding */
} Write;/* 0x8 24 */
struct {
unsigned long Length;/* 0x8 4 */
/* 4 bytes padding */
/* 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 */
} QueryFile;/* 0x8 16 */
struct {
unsigned long Length;/* 0x8 4 */
/* 4 bytes padding */
/* 4 bytes padding */
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 */
} QueryVolume;/* 0x8 16 */
struct {
unsigned long Length;/* 0x8 4 */
/* 4 bytes padding */
} 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 {
unsigned long Key;/* 0x10 4 */
/* 4 bytes padding */
} 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 {
} MountVolume;/* 0x8 16 */
struct {
} VerifyVolume;/* 0x8 16 */
struct {
} Scsi;/* 0x8 8 */
struct {
unsigned long Length;/* 0x8 4 */
/* 4 bytes padding */
void* StartSid;/* 0x10 8 */
unsigned long SidListLength;/* 0x20 4 */
} QueryQuota;/* 0x8 32 */
struct {
unsigned long Length;/* 0x8 4 */
} SetQuota;/* 0x8 4 */
struct {
} QueryDeviceRelations;/* 0x8 4 */
struct {
unsigned short Size;/* 0x10 2 */
unsigned short Version;/* 0x12 2 */
/* 4 bytes padding */
void* InterfaceSpecificData;/* 0x20 8 */
} QueryInterface;/* 0x8 32 */
struct {
} DeviceCapabilities;/* 0x8 8 */
struct {
} 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 {
} QueryId;/* 0x8 4 */
struct {
/* 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 */
} UsageNotification;/* 0x8 16 */
struct {
} WaitWake;/* 0x8 4 */
struct {
} PowerSequence;/* 0x8 8 */
struct {
union {
unsigned long SystemContext;/* 0x8 4 */
};/* 0x8 4 */
/* 4 bytes padding */
/* 4 bytes padding */
/* 4 bytes padding */
} Power;/* 0x8 32 */
struct {
} 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 */
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)