struct _FAST_IO_DISPATCH { unsigned long SizeOfFastIoDispatch;/* 0x0 4 */ unsigned char (*FastIoCheckIfPossible)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned char, unsigned long, unsigned char, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x4 4 */ unsigned char (*FastIoRead)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned char, unsigned long, void*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x8 4 */ unsigned char (*FastIoWrite)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned char, unsigned long, void*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0xc 4 */ unsigned char (*FastIoQueryBasicInfo)(struct _FILE_OBJECT*, unsigned char, struct _FILE_BASIC_INFORMATION*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x10 4 */ unsigned char (*FastIoQueryStandardInfo)(struct _FILE_OBJECT*, unsigned char, struct _FILE_STANDARD_INFORMATION*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x14 4 */ 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*);/* 0x18 4 */ unsigned char (*FastIoUnlockSingle)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, union _LARGE_INTEGER*, struct _EPROCESS*, unsigned long, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x1c 4 */ unsigned char (*FastIoUnlockAll)(struct _FILE_OBJECT*, struct _EPROCESS*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x20 4 */ unsigned char (*FastIoUnlockAllByKey)(struct _FILE_OBJECT*, void*, unsigned long, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x24 4 */ unsigned char (*FastIoDeviceControl)(struct _FILE_OBJECT*, unsigned char, void*, unsigned long, void*, unsigned long, unsigned long, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x28 4 */ void (*AcquireFileForNtCreateSection)(struct _FILE_OBJECT*);/* 0x2c 4 */ void (*ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*);/* 0x30 4 */ void (*FastIoDetachDevice)(struct _DEVICE_OBJECT*, struct _DEVICE_OBJECT*);/* 0x34 4 */ unsigned char (*FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*, unsigned char, struct _FILE_NETWORK_OPEN_INFORMATION*, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x38 4 */ long (*AcquireForModWrite)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, struct _ERESOURCE**, struct _DEVICE_OBJECT*);/* 0x3c 4 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned char (*MdlRead)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned long, struct _MDL**, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x40 4 */ unsigned char (*MdlReadComplete)(struct _FILE_OBJECT*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0x44 4 */ unsigned char (*PrepareMdlWrite)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, unsigned long, unsigned long, struct _MDL**, struct _IO_STATUS_BLOCK*, struct _DEVICE_OBJECT*);/* 0x48 4 */ unsigned char (*MdlWriteComplete)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0x4c 4 */ 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*);/* 0x50 4 */ 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*);/* 0x54 4 */ unsigned char (*MdlReadCompleteCompressed)(struct _FILE_OBJECT*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0x58 4 */ unsigned char (*MdlWriteCompleteCompressed)(struct _FILE_OBJECT*, union _LARGE_INTEGER*, struct _MDL*, struct _DEVICE_OBJECT*);/* 0x5c 4 */ unsigned char (*FastIoQueryOpen)(struct _IRP*, struct _FILE_NETWORK_OPEN_INFORMATION*, struct _DEVICE_OBJECT*);/* 0x60 4 */ long (*ReleaseForModWrite)(struct _FILE_OBJECT*, struct _ERESOURCE*, struct _DEVICE_OBJECT*);/* 0x64 4 */ long (*AcquireForCcFlush)(struct _FILE_OBJECT*, struct _DEVICE_OBJECT*);/* 0x68 4 */ long (*ReleaseForCcFlush)(struct _FILE_OBJECT*, struct _DEVICE_OBJECT*);/* 0x6c 4 */};size 112 (0x70)28 members0 holespadding 02 cachelines
Used in (1)