ReactOS 0.4.17-dev-1190-g4c812f4
fastio.c File Reference
#include <ntddk.h>
#include <debug.h>
#include "ntfs.h"
Include dependency graph for fastio.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

BOOLEAN NTAPI NtfsAcqLazyWrite (_In_ PVOID Context, _In_ BOOLEAN Wait)
 
VOID NTAPI NtfsRelLazyWrite (_In_ PVOID Context)
 
BOOLEAN NTAPI NtfsAcqReadAhead (_In_ PVOID Context, _In_ BOOLEAN Wait)
 
VOID NTAPI NtfsRelReadAhead (_In_ PVOID Context)
 
BOOLEAN NTAPI NtfsFastIoCheckIfPossible (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length, _In_ BOOLEAN Wait, _In_ ULONG LockKey, _In_ BOOLEAN CheckForReadOperation, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject)
 
BOOLEAN NTAPI NtfsFastIoRead (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length, _In_ BOOLEAN Wait, _In_ ULONG LockKey, _Out_ PVOID Buffer, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject)
 
BOOLEAN NTAPI NtfsFastIoWrite (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length, _In_ BOOLEAN Wait, _In_ ULONG LockKey, _In_ PVOID Buffer, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 30 of file fastio.c.

Function Documentation

◆ NtfsAcqLazyWrite()

BOOLEAN NTAPI NtfsAcqLazyWrite ( _In_ PVOID  Context,
_In_ BOOLEAN  Wait 
)

Definition at line 39 of file fastio.c.

42{
44
46
47 /* The paging writes below take it shared as well, size changes exclude us */
49 return FALSE;
50
51 /* Let Cc know it doesn't have to acquire the file again for the flush */
52 if (IoGetTopLevelIrp() == NULL)
54
55 return TRUE;
56}
_In_ PFCB Fcb
Definition: cdprocs.h:159
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
struct _FCB * PNTFS_FCB
#define NTFS_TYPE_FCB
Definition: ntfs.h:89
#define ExAcquireResourceSharedLite(res, wait)
Definition: env_spec_w32.h:621
#define FSRTL_CACHE_TOP_LEVEL_IRP
Definition: fsrtltypes.h:60
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81
#define ASSERT(a)
Definition: mode.c:44
PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1875
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
Definition: irp.c:2032
ULONG Type
Definition: ntfs.h:96
Definition: cdstruc.h:902
ERESOURCE PagingIoResource
Definition: ntfs.h:606
NTFSIDENTIFIER Identifier
Definition: ntfs.h:595
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170

Referenced by DriverEntry().

◆ NtfsAcqReadAhead()

BOOLEAN NTAPI NtfsAcqReadAhead ( _In_ PVOID  Context,
_In_ BOOLEAN  Wait 
)

Definition at line 77 of file fastio.c.

80{
82
84
85 /* Keep size changes out while we read ahead */
87 return FALSE;
88
89 if (IoGetTopLevelIrp() == NULL)
91
92 return TRUE;
93}
ERESOURCE MainResource
Definition: ntfs.h:607

Referenced by DriverEntry().

◆ NtfsFastIoCheckIfPossible()

BOOLEAN NTAPI NtfsFastIoCheckIfPossible ( _In_ PFILE_OBJECT  FileObject,
_In_ PLARGE_INTEGER  FileOffset,
_In_ ULONG  Length,
_In_ BOOLEAN  Wait,
_In_ ULONG  LockKey,
_In_ BOOLEAN  CheckForReadOperation,
_Out_ PIO_STATUS_BLOCK  IoStatus,
_In_ PDEVICE_OBJECT  DeviceObject 
)

Definition at line 113 of file fastio.c.

122{
123 PNTFS_FCB Fcb = (PNTFS_FCB)FileObject->FsContext;
124 LARGE_INTEGER LargeLength;
125
128
129 LargeLength.QuadPart = Length;
131
133 return FALSE;
134
136 (Fcb->Vcb->Flags & VCB_VOLUME_DISMOUNTED))
137 {
138 return FALSE;
139 }
140
142 {
145 }
146
150 {
151 return FALSE;
152 }
153
154 /* Growing the file updates its record, leave that to the IRP path */
155 return (FileOffset->QuadPart + Length <= Fcb->RFCB.FileSize.QuadPart);
156}
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:160
PNTFS_GLOBAL_DATA NtfsGlobalData
Definition: ntfs.c:36
#define VCB_VOLUME_DISMOUNTED
Definition: ntfs.h:148
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2666
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
Definition: fatprocs.h:2667
BOOLEAN NTAPI FsRtlFastCheckLockForWrite(IN PFILE_LOCK FileLock, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID Process)
Definition: filelock.c:784
BOOLEAN NTAPI FsRtlFastCheckLockForRead(IN PFILE_LOCK FileLock, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID Process)
Definition: filelock.c:750
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:159
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
BOOLEAN NtfsFCBIsEncrypted(PNTFS_FCB Fcb)
Definition: fcb.c:179
BOOLEAN NTAPI NtfsIsRegularFileObject(_In_ PFILE_OBJECT FileObject)
Definition: fcb.c:153
BOOLEAN NtfsFCBIsCompressed(PNTFS_FCB Fcb)
Definition: fcb.c:173
BOOLEAN EnableWriteSupport
Definition: ntfs.h:182
PVCB Vcb
Definition: cdstruc.h:933
FILE_LOCK FileLock
Definition: fatstruc.h:1071
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
#define PsGetCurrentProcess
Definition: psfuncs.h:17

◆ NtfsFastIoRead()

BOOLEAN NTAPI NtfsFastIoRead ( _In_ PFILE_OBJECT  FileObject,
_In_ PLARGE_INTEGER  FileOffset,
_In_ ULONG  Length,
_In_ BOOLEAN  Wait,
_In_ ULONG  LockKey,
_Out_ PVOID  Buffer,
_Out_ PIO_STATUS_BLOCK  IoStatus,
_In_ PDEVICE_OBJECT  DeviceObject 
)

Definition at line 160 of file fastio.c.

169{
171 return FALSE;
172
174}
Definition: bufpool.h:45
BOOLEAN NTAPI FsRtlCopyRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:64

◆ NtfsFastIoWrite()

BOOLEAN NTAPI NtfsFastIoWrite ( _In_ PFILE_OBJECT  FileObject,
_In_ PLARGE_INTEGER  FileOffset,
_In_ ULONG  Length,
_In_ BOOLEAN  Wait,
_In_ ULONG  LockKey,
_In_ PVOID  Buffer,
_Out_ PIO_STATUS_BLOCK  IoStatus,
_In_ PDEVICE_OBJECT  DeviceObject 
)

Definition at line 178 of file fastio.c.

187{
189 return FALSE;
190
192}
BOOLEAN NTAPI FsRtlCopyWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:264

◆ NtfsRelLazyWrite()

VOID NTAPI NtfsRelLazyWrite ( _In_ PVOID  Context)

Definition at line 61 of file fastio.c.

63{
65
67
70
72}
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1822

Referenced by DriverEntry().

◆ NtfsRelReadAhead()

VOID NTAPI NtfsRelReadAhead ( _In_ PVOID  Context)

Definition at line 98 of file fastio.c.

Referenced by DriverEntry().