struct _FAST_IO_DISPATCH
{
ULONG SizeOfFastIoDispatch;
UCHAR (*FastIoCheckIfPossible)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
ULONG arg3,
UCHAR arg4,
ULONG arg5,
UCHAR arg6,
struct _IO_STATUS_BLOCK* arg7,
struct _DEVICE_OBJECT* arg8);
UCHAR (*FastIoRead)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
ULONG arg3,
UCHAR arg4,
ULONG arg5,
VOID* arg6,
struct _IO_STATUS_BLOCK* arg7,
struct _DEVICE_OBJECT* arg8);
UCHAR (*FastIoWrite)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
ULONG arg3,
UCHAR arg4,
ULONG arg5,
VOID* arg6,
struct _IO_STATUS_BLOCK* arg7,
struct _DEVICE_OBJECT* arg8);
UCHAR (*FastIoQueryBasicInfo)(
struct _FILE_OBJECT* arg1,
UCHAR arg2,
struct _FILE_BASIC_INFORMATION* arg3,
struct _IO_STATUS_BLOCK* arg4,
struct _DEVICE_OBJECT* arg5);
UCHAR (*FastIoQueryStandardInfo)(
struct _FILE_OBJECT* arg1,
UCHAR arg2,
struct _FILE_STANDARD_INFORMATION* arg3,
struct _IO_STATUS_BLOCK* arg4,
struct _DEVICE_OBJECT* arg5);
UCHAR (*FastIoLock)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
union _LARGE_INTEGER* arg3,
struct _KPROCESS* arg4,
ULONG arg5,
UCHAR arg6,
UCHAR arg7,
struct _IO_STATUS_BLOCK* arg8,
struct _DEVICE_OBJECT* arg9);
UCHAR (*FastIoUnlockSingle)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
union _LARGE_INTEGER* arg3,
struct _KPROCESS* arg4,
ULONG arg5,
struct _IO_STATUS_BLOCK* arg6,
struct _DEVICE_OBJECT* arg7);
UCHAR (*FastIoUnlockAll)(
struct _FILE_OBJECT* arg1,
struct _KPROCESS* arg2,
struct _IO_STATUS_BLOCK* arg3,
struct _DEVICE_OBJECT* arg4);
UCHAR (*FastIoUnlockAllByKey)(
struct _FILE_OBJECT* arg1,
VOID* arg2,
ULONG arg3,
struct _IO_STATUS_BLOCK* arg4,
struct _DEVICE_OBJECT* arg5);
UCHAR (*FastIoDeviceControl)(
struct _FILE_OBJECT* arg1,
UCHAR arg2,
VOID* arg3,
ULONG arg4,
VOID* arg5,
ULONG arg6,
ULONG arg7,
struct _IO_STATUS_BLOCK* arg8,
struct _DEVICE_OBJECT* arg9);
VOID (*AcquireFileForNtCreateSection)(
struct _FILE_OBJECT* arg1);
VOID (*ReleaseFileForNtCreateSection)(
struct _FILE_OBJECT* arg1);
VOID (*FastIoDetachDevice)(
struct _DEVICE_OBJECT* arg1,
struct _DEVICE_OBJECT* arg2);
UCHAR (*FastIoQueryNetworkOpenInfo)(
struct _FILE_OBJECT* arg1,
UCHAR arg2,
struct _FILE_NETWORK_OPEN_INFORMATION* arg3,
struct _IO_STATUS_BLOCK* arg4,
struct _DEVICE_OBJECT* arg5);
LONG (*AcquireForModWrite)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
struct _ERESOURCE** arg3,
struct _DEVICE_OBJECT* arg4);
UCHAR (*MdlRead)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
ULONG arg3,
ULONG arg4,
struct _MDL** arg5,
struct _IO_STATUS_BLOCK* arg6,
struct _DEVICE_OBJECT* arg7);
UCHAR (*MdlReadComplete)(
struct _FILE_OBJECT* arg1,
struct _MDL* arg2,
struct _DEVICE_OBJECT* arg3);
UCHAR (*PrepareMdlWrite)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
ULONG arg3,
ULONG arg4,
struct _MDL** arg5,
struct _IO_STATUS_BLOCK* arg6,
struct _DEVICE_OBJECT* arg7);
UCHAR (*MdlWriteComplete)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
struct _MDL* arg3,
struct _DEVICE_OBJECT* arg4);
UCHAR (*FastIoReadCompressed)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
ULONG arg3,
ULONG arg4,
VOID* arg5,
struct _MDL** arg6,
struct _IO_STATUS_BLOCK* arg7,
struct _COMPRESSED_DATA_INFO* arg8,
ULONG arg9,
struct _DEVICE_OBJECT* arg10);
UCHAR (*FastIoWriteCompressed)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
ULONG arg3,
ULONG arg4,
VOID* arg5,
struct _MDL** arg6,
struct _IO_STATUS_BLOCK* arg7,
struct _COMPRESSED_DATA_INFO* arg8,
ULONG arg9,
struct _DEVICE_OBJECT* arg10);
UCHAR (*MdlReadCompleteCompressed)(
struct _FILE_OBJECT* arg1,
struct _MDL* arg2,
struct _DEVICE_OBJECT* arg3);
UCHAR (*MdlWriteCompleteCompressed)(
struct _FILE_OBJECT* arg1,
union _LARGE_INTEGER* arg2,
struct _MDL* arg3,
struct _DEVICE_OBJECT* arg4);
UCHAR (*FastIoQueryOpen)(
struct _IRP* arg1,
struct _FILE_NETWORK_OPEN_INFORMATION* arg2,
struct _DEVICE_OBJECT* arg3);
LONG (*ReleaseForModWrite)(
struct _FILE_OBJECT* arg1,
struct _ERESOURCE* arg2,
struct _DEVICE_OBJECT* arg3);
LONG (*AcquireForCcFlush)(
struct _FILE_OBJECT* arg1,
struct _DEVICE_OBJECT* arg2);
LONG (*ReleaseForCcFlush)(
struct _FILE_OBJECT* arg1,
struct _DEVICE_OBJECT* arg2);
};