alpha / ntoskrnl /

_FAST_IO_DISPATCH

← 4.0.1381.1 2 builds latest →
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 */
};
/* source: Windows 2000 RC2 DDK Alpha libcntpr.lib CodeView type records; build 2128 per the DDK's ntverp.h */
size 112 (0x70)28 members0 holespadding 02 cachelines
Used in (1)