x64 / ntdllntoskrnl /

_FAST_IO_DISPATCH

← 10.0.28000.3231 22 builds latest →
struct _FAST_IO_DISPATCH {
unsigned long SizeOfFastIoDispatch;/* 0x0 4 */
/* 4 bytes padding */
unsigned char (*FastIoCheckIfPossible)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned char, unsigned long, unsigned char, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x8 8 */
unsigned char (*FastIoRead)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned char, unsigned long, void*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x10 8 */
unsigned char (*FastIoWrite)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned char, unsigned long, void*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x18 8 */
unsigned char (*FastIoQueryBasicInfo)(struct _FILE_OBJECT*, unsigned char, struct _FILE_BASIC_INFORMATION*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x20 8 */
unsigned char (*FastIoQueryStandardInfo)(struct _FILE_OBJECT*, unsigned char, struct _FILE_STANDARD_INFORMATION*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x28 8 */
unsigned char (*FastIoLock)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, union _LARGE_INTEGER*, struct _EPROCESS*, unsigned long, unsigned char, unsigned char, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x30 8 */
unsigned char (*FastIoUnlockSingle)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, union _LARGE_INTEGER*, struct _EPROCESS*, unsigned long, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x38 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
unsigned char (*FastIoUnlockAll)(struct _FILE_OBJECT*, struct _EPROCESS*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x40 8 */
unsigned char (*FastIoUnlockAllByKey)(struct _FILE_OBJECT*, void*, unsigned long, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x48 8 */
unsigned char (*FastIoDeviceControl)(struct _FILE_OBJECT*, unsigned char, void*, unsigned long, void*, unsigned long, unsigned long, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x50 8 */
void (*AcquireFileForNtCreateSection)(struct _FILE_OBJECT*);/* 0x58 8 */
void (*ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*);/* 0x60 8 */
void (*FastIoDetachDevice)(struct _DEVICE_OBJECT*, struct _DEVICE_OBJECT*);/* 0x68 8 */
unsigned char (*FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*, unsigned char, struct _FILE_NETWORK_OPEN_INFORMATION*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x70 8 */
long (*AcquireForModWrite)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, struct _ERESOURCE**, struct _DEVICE_OBJECT*);/* 0x78 8 */
/* ── cacheline 2 boundary (128 bytes) ── */
unsigned char (*MdlRead)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned long, struct _MDL**, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x80 8 */
unsigned char (*MdlReadComplete)(struct _FILE_OBJECT*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0x88 8 */
unsigned char (*PrepareMdlWrite)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned long, struct _MDL**, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x90 8 */
unsigned char (*MdlWriteComplete)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0x98 8 */
unsigned char (*FastIoReadCompressed)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned long, void*, struct _MDL**, struct _IO_STATUS_BLOCK*, struct _COMPRESSED_DATA_INFO*, unsigned long, struct _DEVICE_OBJECT*);/* 0xa0 8 */
unsigned char (*FastIoWriteCompressed)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned long, void*, struct _MDL**, struct _IO_STATUS_BLOCK*, struct _COMPRESSED_DATA_INFO*, unsigned long, struct _DEVICE_OBJECT*);/* 0xa8 8 */
unsigned char (*MdlReadCompleteCompressed)(struct _FILE_OBJECT*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0xb0 8 */
unsigned char (*MdlWriteCompleteCompressed)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0xb8 8 */
/* ── cacheline 3 boundary (192 bytes) ── */
unsigned char (*FastIoQueryOpen)(struct _IRP*, struct _FILE_NETWORK_OPEN_INFORMATION*, struct _DEVICE_OBJECT*);/* 0xc0 8 */
long (*ReleaseForModWrite)(struct _FILE_OBJECT*, struct _ERESOURCE*, struct _DEVICE_OBJECT*);/* 0xc8 8 */
long (*AcquireForCcFlush)(struct _FILE_OBJECT*, struct _DEVICE_OBJECT*);/* 0xd0 8 */
long (*ReleaseForCcFlush)(struct _FILE_OBJECT*, struct _DEVICE_OBJECT*);/* 0xd8 8 */
};
size 224 (0xe0)28 members1 hole (4 bytes)padding 04 cachelines
Used in (1)