BOOLEAN FastIoCheckIfPossible(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ PLARGE_INTEGER FileOffset,
_In_ ULONG Length,
_In_ BOOLEAN Wait,
_In_ ULONG LockKey,
_In_ BOOLEAN CheckForReadOperation,
_Pre_notnull_
_When_(
return
!
=
FALSE, _Post_equal_to_(_Old_(IoStatus)))
_When_(
return
=
=
FALSE, _Post_valid_)
PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
/
/
效率可能会慢百分之十,加载可能会变慢
}
BOOLEAN FastIoRead(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ PLARGE_INTEGER FileOffset,
_In_ ULONG Length,
_In_ BOOLEAN Wait,
_In_ ULONG LockKey,
_Out_ PVOID
Buffer
,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoWrite(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ PLARGE_INTEGER FileOffset,
_In_ ULONG Length,
_In_ BOOLEAN Wait,
_In_ ULONG LockKey,
_In_ PVOID
Buffer
,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoQueryBasicInfo(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ BOOLEAN Wait,
_Out_ PFILE_BASIC_INFORMATION
Buffer
,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoQueryStandardInfo(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ BOOLEAN Wait,
_Out_ PFILE_STANDARD_INFORMATION
Buffer
,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoLock(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ PLARGE_INTEGER FileOffset,
_In_ PLARGE_INTEGER Length,
_In_ PEPROCESS ProcessId,
_In_ ULONG Key,
_In_ BOOLEAN FailImmediately,
_In_ BOOLEAN ExclusiveLock,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoUnlockSingle(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ PLARGE_INTEGER FileOffset,
_In_ PLARGE_INTEGER Length,
_In_ PEPROCESS ProcessId,
_In_ ULONG Key,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoUnlockAll(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ PEPROCESS ProcessId,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoUnlockAllByKey(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ PVOID ProcessId,
_In_ ULONG Key,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
BOOLEAN FastIoDeviceControl(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ BOOLEAN Wait,
_In_opt_ PVOID InputBuffer,
_In_ ULONG InputBufferLength,
_Out_opt_ PVOID OutputBuffer,
_In_ ULONG OutputBufferLength,
_In_ ULONG IoControlCode,
_Out_ PIO_STATUS_BLOCK IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
VOID AcquireFileForNtCreateSection(
_In_ struct _FILE_OBJECT
*
FileObject
)
{
return
FALSE;
}
VOID ReleaseFileForNtCreateSection(
_In_ struct _FILE_OBJECT
*
FileObject
)
{
return
FALSE;
}
VOID FastIoDetachDevice(
_In_ struct _DEVICE_OBJECT
*
SourceDevice,
_In_ struct _DEVICE_OBJECT
*
TargetDevice
)
{
return
FALSE;
}
BOOLEAN FastIoQueryNetworkOpenInfo(
_In_ struct _FILE_OBJECT
*
FileObject,
_In_ BOOLEAN Wait,
_Out_ struct _FILE_NETWORK_OPEN_INFORMATION
*
Buffer
,
_Out_ struct _IO_STATUS_BLOCK
*
IoStatus,
_In_ struct _DEVICE_OBJECT
*
DeviceObject
)
{
return
FALSE;
}
/
/
后面还有很多,一共有
20
多个fastio函数,全部返回FALSE即可