ReactOS  0.4.15-dev-2771-g6d441f7
fastio.c File Reference
#include "vfat.h"
#include <debug.h>
Include dependency graph for fastio.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

static BOOLEAN NTAPI VfatFastIoCheckIfPossible (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)
 
static BOOLEAN NTAPI VfatFastIoRead (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)
 
static BOOLEAN NTAPI VfatFastIoWrite (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)
 
static BOOLEAN NTAPI VfatFastIoQueryBasicInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoQueryStandardInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoLock (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, BOOLEAN FailImmediately, BOOLEAN ExclusiveLock, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoUnlockSingle (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoUnlockAll (IN PFILE_OBJECT FileObject, PEPROCESS ProcessId, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoUnlockAllByKey (IN PFILE_OBJECT FileObject, PVOID ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoDeviceControl (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN ULONG IoControlCode, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static VOID NTAPI VfatAcquireFileForNtCreateSection (IN PFILE_OBJECT FileObject)
 
static VOID NTAPI VfatReleaseFileForNtCreateSection (IN PFILE_OBJECT FileObject)
 
static VOID NTAPI VfatFastIoDetachDevice (IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
 
static BOOLEAN NTAPI VfatFastIoQueryNetworkOpenInfo (IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_NETWORK_OPEN_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static NTSTATUS NTAPI VfatAcquireForModWrite (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER EndingOffset, OUT PERESOURCE *ResourceToRelease, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatMdlRead (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatMdlReadComplete (IN PFILE_OBJECT FileObject, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatPrepareMdlWrite (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatMdlWriteComplete (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoReadCompressed (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PVOID Buffer, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, OUT PCOMPRESSED_DATA_INFO CompressedDataInfo, IN ULONG CompressedDataInfoLength, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoWriteCompressed (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, IN PVOID Buffer, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PCOMPRESSED_DATA_INFO CompressedDataInfo, IN ULONG CompressedDataInfoLength, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatMdlReadCompleteCompressed (IN PFILE_OBJECT FileObject, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatMdlWriteCompleteCompressed (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
 
static BOOLEAN NTAPI VfatFastIoQueryOpen (IN PIRP Irp, OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation, IN PDEVICE_OBJECT DeviceObject)
 
static NTSTATUS NTAPI VfatReleaseForModWrite (IN PFILE_OBJECT FileObject, IN PERESOURCE ResourceToRelease, IN PDEVICE_OBJECT DeviceObject)
 
static NTSTATUS NTAPI VfatAcquireForCcFlush (IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
 
static NTSTATUS NTAPI VfatReleaseForCcFlush (IN PFILE_OBJECT FileObject, IN PDEVICE_OBJECT DeviceObject)
 
BOOLEAN NTAPI VfatAcquireForLazyWrite (IN PVOID Context, IN BOOLEAN Wait)
 
VOID NTAPI VfatReleaseFromLazyWrite (IN PVOID Context)
 
VOID VfatInitFastIoRoutines (PFAST_IO_DISPATCH FastIoDispatch)
 

Variables

static FAST_IO_CHECK_IF_POSSIBLE VfatFastIoCheckIfPossible
 
static FAST_IO_READ VfatFastIoRead
 
static FAST_IO_WRITE VfatFastIoWrite
 
static FAST_IO_QUERY_BASIC_INFO VfatFastIoQueryBasicInfo
 
static FAST_IO_QUERY_STANDARD_INFO VfatFastIoQueryStandardInfo
 
static FAST_IO_LOCK VfatFastIoLock
 
static FAST_IO_UNLOCK_SINGLE VfatFastIoUnlockSingle
 
static FAST_IO_UNLOCK_ALL VfatFastIoUnlockAll
 
static FAST_IO_UNLOCK_ALL_BY_KEY VfatFastIoUnlockAllByKey
 
static FAST_IO_DEVICE_CONTROL VfatFastIoDeviceControl
 
static FAST_IO_ACQUIRE_FILE VfatAcquireFileForNtCreateSection
 
static FAST_IO_RELEASE_FILE VfatReleaseFileForNtCreateSection
 
static FAST_IO_DETACH_DEVICE VfatFastIoDetachDevice
 
static FAST_IO_QUERY_NETWORK_OPEN_INFO VfatFastIoQueryNetworkOpenInfo
 
static FAST_IO_ACQUIRE_FOR_MOD_WRITE VfatAcquireForModWrite
 
static FAST_IO_MDL_READ VfatMdlRead
 
static FAST_IO_MDL_READ_COMPLETE VfatMdlReadComplete
 
static FAST_IO_PREPARE_MDL_WRITE VfatPrepareMdlWrite
 
static FAST_IO_MDL_WRITE_COMPLETE VfatMdlWriteComplete
 
static FAST_IO_READ_COMPRESSED VfatFastIoReadCompressed
 
static FAST_IO_WRITE_COMPRESSED VfatFastIoWriteCompressed
 
static FAST_IO_MDL_READ_COMPLETE_COMPRESSED VfatMdlReadCompleteCompressed
 
static FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED VfatMdlWriteCompleteCompressed
 
static FAST_IO_QUERY_OPEN VfatFastIoQueryOpen
 
static FAST_IO_RELEASE_FOR_MOD_WRITE VfatReleaseForModWrite
 
static FAST_IO_ACQUIRE_FOR_CCFLUSH VfatAcquireForCcFlush
 
static FAST_IO_RELEASE_FOR_CCFLUSH VfatReleaseForCcFlush
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 12 of file fastio.c.

Function Documentation

◆ VfatAcquireFileForNtCreateSection()

static VOID NTAPI VfatAcquireFileForNtCreateSection ( IN PFILE_OBJECT  FileObject)
static

Definition at line 359 of file fastio.c.

361 {
362  DPRINT("VfatAcquireFileForNtCreateSection\n");
364 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define DPRINT
Definition: sndvol32.h:71

◆ VfatAcquireForCcFlush()

static NTSTATUS NTAPI VfatAcquireForCcFlush ( IN PFILE_OBJECT  FileObject,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 679 of file fastio.c.

682 {
683  PVFATFCB Fcb = (PVFATFCB)FileObject->FsContext;
684 
685  DPRINT("VfatAcquireForCcFlush\n");
686 
688 
689  /* Make sure it is not a volume lock */
691 
692  /* Acquire the resource */
694 
695  return STATUS_SUCCESS;
696 }
Definition: vfat.h:447
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define ASSERT(a)
Definition: mode.c:44
ULONG Flags
Definition: ntfs.h:532
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define FCB_IS_VOLUME
Definition: vfat.h:437
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71
_In_ PFCB Fcb
Definition: cdprocs.h:159

◆ VfatAcquireForLazyWrite()

BOOLEAN NTAPI VfatAcquireForLazyWrite ( IN PVOID  Context,
IN BOOLEAN  Wait 
)

Definition at line 724 of file fastio.c.

727 {
729  ASSERT(Fcb);
730  DPRINT("VfatAcquireForLazyWrite(): Fcb %p\n", Fcb);
731 
733  {
734  DPRINT("VfatAcquireForLazyWrite(): ExReleaseResourceLite failed.\n");
735  return FALSE;
736  }
737  return TRUE;
738 }
Definition: vfat.h:447
#define TRUE
Definition: types.h:120
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
#define FALSE
Definition: types.h:117
#define ASSERT(a)
Definition: mode.c:44
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define DPRINT
Definition: sndvol32.h:71
_In_ PFCB Fcb
Definition: cdprocs.h:159

Referenced by DriverEntry().

◆ VfatAcquireForModWrite()

static NTSTATUS NTAPI VfatAcquireForModWrite ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  EndingOffset,
OUT PERESOURCE ResourceToRelease,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 420 of file fastio.c.

425 {
426  DPRINT("VfatAcquireForModWrite\n");
427 
432 
434 }
_In_ PLARGE_INTEGER EndingOffset
Definition: iotypes.h:1597
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1598
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoCheckIfPossible()

static BOOLEAN NTAPI VfatFastIoCheckIfPossible ( 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 
)
static

Definition at line 20 of file fastio.c.

29 {
30  /* Prevent all Fast I/O requests */
31  DPRINT("VfatFastIoCheckIfPossible(): returning FALSE.\n");
32 
41 
42  return FALSE;
43 }
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
Definition: fatprocs.h:2662
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2662
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoDetachDevice()

static VOID NTAPI VfatFastIoDetachDevice ( IN PDEVICE_OBJECT  SourceDevice,
IN PDEVICE_OBJECT  TargetDevice 
)
static

Definition at line 383 of file fastio.c.

386 {
387  DPRINT("VfatFastIoDetachDevice\n");
390 }
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
Definition: iofuncs.h:690
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT SourceDevice
Definition: iofuncs.h:690
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoDeviceControl()

static BOOLEAN NTAPI VfatFastIoDeviceControl ( IN PFILE_OBJECT  FileObject,
IN BOOLEAN  Wait,
IN PVOID InputBuffer  OPTIONAL,
IN ULONG  InputBufferLength,
OUT PVOID OutputBuffer  OPTIONAL,
IN ULONG  OutputBufferLength,
IN ULONG  IoControlCode,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 328 of file fastio.c.

338 {
339  DPRINT("VfatFastIoDeviceControl\n");
340 
350 
351  return FALSE;
352 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:318
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:318
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:859
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:949
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:318
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoLock()

static BOOLEAN NTAPI VfatFastIoLock ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN PLARGE_INTEGER  Length,
PEPROCESS  ProcessId,
ULONG  Key,
BOOLEAN  FailImmediately,
BOOLEAN  ExclusiveLock,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 226 of file fastio.c.

236 {
237  DPRINT("VfatFastIoLock\n");
238 
248 
249  return FALSE;
250 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2709
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
Definition: fatprocs.h:2709
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
Definition: fatprocs.h:2709
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoQueryBasicInfo()

static BOOLEAN NTAPI VfatFastIoQueryBasicInfo ( IN PFILE_OBJECT  FileObject,
IN BOOLEAN  Wait,
OUT PFILE_BASIC_INFORMATION  Buffer,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 108 of file fastio.c.

114 {
116  PVFATFCB FCB = NULL;
119 
120  DPRINT("VfatFastIoQueryBasicInfo()\n");
121 
122  FCB = (PVFATFCB)FileObject->FsContext;
123  if (FCB == NULL)
124  {
125  return FALSE;
126  }
127 
129 
131  {
133  {
135  return FALSE;
136  }
137  }
138 
140  FCB,
141  DeviceObject->DeviceExtension,
142  Buffer,
143  &BufferLength);
144 
146  {
148  }
149 
150  if (NT_SUCCESS(Status))
151  {
152  IoStatus->Status = STATUS_SUCCESS;
153  IoStatus->Information = sizeof(FILE_BASIC_INFORMATION) - BufferLength;
154  Success = TRUE;
155  }
156 
158 
159  return Success;
160 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3767
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
Definition: vfat.h:447
#define TRUE
Definition: types.h:120
Definition: cdstruc.h:902
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS VfatGetBasicInformation(PFILE_OBJECT FileObject, PVFATFCB FCB, PDEVICE_EXTENSION DeviceExt, PFILE_BASIC_INFORMATION BasicInfo, PULONG BufferLength)
Definition: finfo.c:282
if(dx==0 &&dy==0)
Definition: linetemp.h:174
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
unsigned char BOOLEAN
Definition: bufpool.h:45
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
Status
Definition: gdiplustypes.h:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define FCB_IS_PAGE_FILE
Definition: vfat.h:436
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
ULONG Flags
Definition: ntfs.h:532
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define NULL
Definition: types.h:112
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:885
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
unsigned int ULONG
Definition: retypes.h:1
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71
#define FILE_BASIC_INFORMATION
Definition: disk.h:53

◆ VfatFastIoQueryNetworkOpenInfo()

static BOOLEAN NTAPI VfatFastIoQueryNetworkOpenInfo ( IN PFILE_OBJECT  FileObject,
IN BOOLEAN  Wait,
OUT PFILE_NETWORK_OPEN_INFORMATION  Buffer,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 397 of file fastio.c.

403 {
404  DPRINT("VfatFastIoQueryNetworkOpenInfo\n");
405 
411 
412  return FALSE;
413 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
Definition: bufpool.h:45
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoQueryOpen()

static BOOLEAN NTAPI VfatFastIoQueryOpen ( IN PIRP  Irp,
OUT PFILE_NETWORK_OPEN_INFORMATION  NetworkInformation,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 641 of file fastio.c.

645 {
646  DPRINT("VfatFastIoQueryOpen\n");
647 
651 
652  return FALSE;
653 }
_Out_ PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
Definition: iotypes.h:1703
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ PIRP Irp
Definition: csq.h:116
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoQueryStandardInfo()

static BOOLEAN NTAPI VfatFastIoQueryStandardInfo ( IN PFILE_OBJECT  FileObject,
IN BOOLEAN  Wait,
OUT PFILE_STANDARD_INFORMATION  Buffer,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 167 of file fastio.c.

173 {
175  PVFATFCB FCB = NULL;
178 
179  DPRINT("VfatFastIoQueryStandardInfo()\n");
180 
182 
183  FCB = (PVFATFCB)FileObject->FsContext;
184  if (FCB == NULL)
185  {
186  return FALSE;
187  }
188 
190 
192  {
194  {
196  return FALSE;
197  }
198  }
199 
201  Buffer,
202  &BufferLength);
203 
205  {
207  }
208 
209  if (NT_SUCCESS(Status))
210  {
211  IoStatus->Status = STATUS_SUCCESS;
212  IoStatus->Information = sizeof(FILE_STANDARD_INFORMATION) - BufferLength;
213  Success = TRUE;
214  }
215 
217 
218  return Success;
219 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3767
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
Definition: vfat.h:447
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
Definition: cdstruc.h:902
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
LONG NTSTATUS
Definition: precomp.h:26
if(dx==0 &&dy==0)
Definition: linetemp.h:174
NTSTATUS VfatGetStandardInformation(PVFATFCB FCB, PFILE_STANDARD_INFORMATION StandardInfo, PULONG BufferLength)
Definition: finfo.c:75
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
unsigned char BOOLEAN
Definition: bufpool.h:45
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
Status
Definition: gdiplustypes.h:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define FCB_IS_PAGE_FILE
Definition: vfat.h:436
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
ULONG Flags
Definition: ntfs.h:532
#define FILE_STANDARD_INFORMATION
Definition: disk.h:54
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define NULL
Definition: types.h:112
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:885
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
unsigned int ULONG
Definition: retypes.h:1
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoRead()

static BOOLEAN NTAPI VfatFastIoRead ( 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 
)
static

Definition at line 50 of file fastio.c.

59 {
60  DPRINT("VfatFastIoRead()\n");
61 
70 
71  return FALSE;
72 }
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
Definition: bufpool.h:45
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2662
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoReadCompressed()

static BOOLEAN NTAPI VfatFastIoReadCompressed ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN ULONG  Length,
IN ULONG  LockKey,
OUT PVOID  Buffer,
OUT PMDL MdlChain,
OUT PIO_STATUS_BLOCK  IoStatus,
OUT PCOMPRESSED_DATA_INFO  CompressedDataInfo,
IN ULONG  CompressedDataInfoLength,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 535 of file fastio.c.

546 {
547  DPRINT("VfatFastIoReadCompressed\n");
548 
559 
560  return FALSE;
561 }
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
Definition: bufpool.h:45
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO _In_ ULONG CompressedDataInfoLength
Definition: iotypes.h:1658
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2662
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO * CompressedDataInfo
Definition: iotypes.h:1658
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoUnlockAll()

static BOOLEAN NTAPI VfatFastIoUnlockAll ( IN PFILE_OBJECT  FileObject,
PEPROCESS  ProcessId,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 284 of file fastio.c.

289 {
290  DPRINT("VfatFastIoUnlockAll\n");
291 
296 
297  return FALSE;
298 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2709
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoUnlockAllByKey()

static BOOLEAN NTAPI VfatFastIoUnlockAllByKey ( IN PFILE_OBJECT  FileObject,
PVOID  ProcessId,
ULONG  Key,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 305 of file fastio.c.

311 {
312  DPRINT("VfatFastIoUnlockAllByKey\n");
313 
319 
320  return FALSE;
321 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2709
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoUnlockSingle()

static BOOLEAN NTAPI VfatFastIoUnlockSingle ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN PLARGE_INTEGER  Length,
PEPROCESS  ProcessId,
ULONG  Key,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 257 of file fastio.c.

265 {
266  DPRINT("VfatFastIoUnlockSingle\n");
267 
275 
276  return FALSE;
277 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2709
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoWrite()

static BOOLEAN NTAPI VfatFastIoWrite ( 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 
)
static

Definition at line 79 of file fastio.c.

88 {
89  DPRINT("VfatFastIoWrite()\n");
90 
99 
100  return FALSE;
101 }
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
Definition: bufpool.h:45
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2662
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatFastIoWriteCompressed()

static BOOLEAN NTAPI VfatFastIoWriteCompressed ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN ULONG  Length,
IN ULONG  LockKey,
IN PVOID  Buffer,
OUT PMDL MdlChain,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PCOMPRESSED_DATA_INFO  CompressedDataInfo,
IN ULONG  CompressedDataInfoLength,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 568 of file fastio.c.

579 {
580  DPRINT("VfatFastIoWriteCompressed\n");
581 
592 
593  return FALSE;
594 }
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
Definition: bufpool.h:45
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO _In_ ULONG CompressedDataInfoLength
Definition: iotypes.h:1658
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2662
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO * CompressedDataInfo
Definition: iotypes.h:1658
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatInitFastIoRoutines()

VOID VfatInitFastIoRoutines ( PFAST_IO_DISPATCH  FastIoDispatch)

Definition at line 754 of file fastio.c.

756 {
785 }
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
Definition: iotypes.h:1740
static FAST_IO_ACQUIRE_FOR_MOD_WRITE VfatAcquireForModWrite
Definition: fastio.c:415
static FAST_IO_RELEASE_FOR_MOD_WRITE VfatReleaseForModWrite
Definition: fastio.c:655
static FAST_IO_QUERY_STANDARD_INFO VfatFastIoQueryStandardInfo
Definition: fastio.c:162
PFAST_IO_MDL_READ MdlRead
Definition: iotypes.h:1749
static FAST_IO_LOCK VfatFastIoLock
Definition: fastio.c:221
static FAST_IO_CHECK_IF_POSSIBLE VfatFastIoCheckIfPossible
Definition: fastio.c:15
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
Definition: iotypes.h:1751
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
Definition: iotypes.h:1741
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection
Definition: iotypes.h:1745
static FAST_IO_UNLOCK_ALL_BY_KEY VfatFastIoUnlockAllByKey
Definition: fastio.c:300
PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo
Definition: iotypes.h:1747
PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite
Definition: iotypes.h:1758
PFAST_IO_READ_COMPRESSED FastIoReadCompressed
Definition: iotypes.h:1753
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
Definition: iotypes.h:1750
PFAST_IO_MDL_READ_COMPLETE_COMPRESSED MdlReadCompleteCompressed
Definition: iotypes.h:1755
PFAST_IO_DETACH_DEVICE FastIoDetachDevice
Definition: iotypes.h:1746
PFAST_IO_QUERY_OPEN FastIoQueryOpen
Definition: iotypes.h:1757
PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo
Definition: iotypes.h:1737
static FAST_IO_ACQUIRE_FOR_CCFLUSH VfatAcquireForCcFlush
Definition: fastio.c:674
struct _FAST_IO_DISPATCH FAST_IO_DISPATCH
static FAST_IO_DETACH_DEVICE VfatFastIoDetachDevice
Definition: fastio.c:378
static FAST_IO_UNLOCK_SINGLE VfatFastIoUnlockSingle
Definition: fastio.c:252
static FAST_IO_WRITE VfatFastIoWrite
Definition: fastio.c:74
static FAST_IO_QUERY_OPEN VfatFastIoQueryOpen
Definition: fastio.c:636
static FAST_IO_WRITE_COMPRESSED VfatFastIoWriteCompressed
Definition: fastio.c:563
static FAST_IO_PREPARE_MDL_WRITE VfatPrepareMdlWrite
Definition: fastio.c:482
static FAST_IO_MDL_READ_COMPLETE_COMPRESSED VfatMdlReadCompleteCompressed
Definition: fastio.c:596
static FAST_IO_ACQUIRE_FILE VfatAcquireFileForNtCreateSection
Definition: fastio.c:354
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
Definition: iotypes.h:1742
static FAST_IO_READ_COMPRESSED VfatFastIoReadCompressed
Definition: fastio.c:530
PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush
Definition: iotypes.h:1759
PFAST_IO_LOCK FastIoLock
Definition: iotypes.h:1739
PFAST_IO_DEVICE_CONTROL FastIoDeviceControl
Definition: iotypes.h:1743
static FAST_IO_QUERY_BASIC_INFO VfatFastIoQueryBasicInfo
Definition: fastio.c:103
PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite
Definition: iotypes.h:1748
FAST_IO_DISPATCH FastIoDispatch
Definition: fastio.c:20
PFAST_IO_READ FastIoRead
Definition: iotypes.h:1735
static FAST_IO_RELEASE_FILE VfatReleaseFileForNtCreateSection
Definition: fastio.c:366
PFAST_IO_WRITE FastIoWrite
Definition: iotypes.h:1736
PFAST_IO_WRITE_COMPRESSED FastIoWriteCompressed
Definition: iotypes.h:1754
static FAST_IO_READ VfatFastIoRead
Definition: fastio.c:45
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
Definition: iotypes.h:1738
static FAST_IO_MDL_WRITE_COMPLETE VfatMdlWriteComplete
Definition: fastio.c:509
static FAST_IO_UNLOCK_ALL VfatFastIoUnlockAll
Definition: fastio.c:279
static FAST_IO_QUERY_NETWORK_OPEN_INFO VfatFastIoQueryNetworkOpenInfo
Definition: fastio.c:392
static FAST_IO_MDL_READ_COMPLETE VfatMdlReadComplete
Definition: fastio.c:463
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
Definition: iotypes.h:1752
static FAST_IO_RELEASE_FOR_CCFLUSH VfatReleaseForCcFlush
Definition: fastio.c:698
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
Definition: iotypes.h:1734
static FAST_IO_MDL_READ VfatMdlRead
Definition: fastio.c:436
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection
Definition: iotypes.h:1744
static FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED VfatMdlWriteCompleteCompressed
Definition: fastio.c:615
PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush
Definition: iotypes.h:1760
static FAST_IO_DEVICE_CONTROL VfatFastIoDeviceControl
Definition: fastio.c:323
PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED MdlWriteCompleteCompressed
Definition: iotypes.h:1756
ULONG SizeOfFastIoDispatch
Definition: iotypes.h:1733

Referenced by DriverEntry().

◆ VfatMdlRead()

static BOOLEAN NTAPI VfatMdlRead ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN ULONG  Length,
IN ULONG  LockKey,
OUT PMDL MdlChain,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 441 of file fastio.c.

449 {
450  DPRINT("VfatMdlRead\n");
451 
459 
460  return FALSE;
461 }
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2662
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatMdlReadComplete()

static BOOLEAN NTAPI VfatMdlReadComplete ( IN PFILE_OBJECT  FileObject,
IN PMDL  MdlChain,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 468 of file fastio.c.

472 {
473  DPRINT("VfatMdlReadComplete\n");
474 
478 
479  return FALSE;
480 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define DPRINT
Definition: sndvol32.h:71

◆ VfatMdlReadCompleteCompressed()

static BOOLEAN NTAPI VfatMdlReadCompleteCompressed ( IN PFILE_OBJECT  FileObject,
IN PMDL  MdlChain,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 601 of file fastio.c.

605 {
606  DPRINT("VfatMdlReadCompleteCompressed\n");
607 
611 
612  return FALSE;
613 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define DPRINT
Definition: sndvol32.h:71

◆ VfatMdlWriteComplete()

static BOOLEAN NTAPI VfatMdlWriteComplete ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN PMDL  MdlChain,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 514 of file fastio.c.

519 {
520  DPRINT("VfatMdlWriteComplete\n");
521 
526 
527  return FALSE;
528 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
#define DPRINT
Definition: sndvol32.h:71

◆ VfatMdlWriteCompleteCompressed()

static BOOLEAN NTAPI VfatMdlWriteCompleteCompressed ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN PMDL  MdlChain,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 620 of file fastio.c.

625 {
626  DPRINT("VfatMdlWriteCompleteCompressed\n");
627 
632 
633  return FALSE;
634 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
#define DPRINT
Definition: sndvol32.h:71

◆ VfatPrepareMdlWrite()

static BOOLEAN NTAPI VfatPrepareMdlWrite ( IN PFILE_OBJECT  FileObject,
IN PLARGE_INTEGER  FileOffset,
IN ULONG  Length,
IN ULONG  LockKey,
OUT PMDL MdlChain,
OUT PIO_STATUS_BLOCK  IoStatus,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 487 of file fastio.c.

495 {
496  DPRINT("VfatPrepareMdlWrite\n");
497 
505 
506  return FALSE;
507 }
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2662
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155
#define DPRINT
Definition: sndvol32.h:71

◆ VfatReleaseFileForNtCreateSection()

static VOID NTAPI VfatReleaseFileForNtCreateSection ( IN PFILE_OBJECT  FileObject)
static

Definition at line 371 of file fastio.c.

373 {
374  DPRINT("VfatReleaseFileForNtCreateSection\n");
376 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define DPRINT
Definition: sndvol32.h:71

◆ VfatReleaseForCcFlush()

static NTSTATUS NTAPI VfatReleaseForCcFlush ( IN PFILE_OBJECT  FileObject,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 703 of file fastio.c.

706 {
707  PVFATFCB Fcb = (PVFATFCB)FileObject->FsContext;
708 
709  DPRINT("VfatReleaseForCcFlush\n");
710 
712 
713  /* Make sure it is not a volume lock */
715 
716  /* Release the resource */
718 
719  return STATUS_SUCCESS;
720 }
Definition: vfat.h:447
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define ASSERT(a)
Definition: mode.c:44
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
ULONG Flags
Definition: ntfs.h:532
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define FCB_IS_VOLUME
Definition: vfat.h:437
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71
_In_ PFCB Fcb
Definition: cdprocs.h:159

◆ VfatReleaseForModWrite()

static NTSTATUS NTAPI VfatReleaseForModWrite ( IN PFILE_OBJECT  FileObject,
IN PERESOURCE  ResourceToRelease,
IN PDEVICE_OBJECT  DeviceObject 
)
static

Definition at line 660 of file fastio.c.

664 {
665  DPRINT("VfatReleaseForModWrite\n");
666 
670 
672 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1598
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
#define DPRINT
Definition: sndvol32.h:71

◆ VfatReleaseFromLazyWrite()

VOID NTAPI VfatReleaseFromLazyWrite ( IN PVOID  Context)

Definition at line 742 of file fastio.c.

744 {
746  ASSERT(Fcb);
747  DPRINT("VfatReleaseFromLazyWrite(): Fcb %p\n", Fcb);
748 
750 }
Definition: vfat.h:447
#define ASSERT(a)
Definition: mode.c:44
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define DPRINT
Definition: sndvol32.h:71
_In_ PFCB Fcb
Definition: cdprocs.h:159

Referenced by DriverEntry().

Variable Documentation

◆ VfatAcquireFileForNtCreateSection

FAST_IO_ACQUIRE_FILE VfatAcquireFileForNtCreateSection
static

Definition at line 354 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatAcquireForCcFlush

FAST_IO_ACQUIRE_FOR_CCFLUSH VfatAcquireForCcFlush
static

Definition at line 674 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatAcquireForModWrite

FAST_IO_ACQUIRE_FOR_MOD_WRITE VfatAcquireForModWrite
static

Definition at line 415 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoCheckIfPossible

FAST_IO_CHECK_IF_POSSIBLE VfatFastIoCheckIfPossible
static

Definition at line 15 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoDetachDevice

FAST_IO_DETACH_DEVICE VfatFastIoDetachDevice
static

Definition at line 378 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoDeviceControl

FAST_IO_DEVICE_CONTROL VfatFastIoDeviceControl
static

Definition at line 323 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoLock

FAST_IO_LOCK VfatFastIoLock
static

Definition at line 221 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryBasicInfo

FAST_IO_QUERY_BASIC_INFO VfatFastIoQueryBasicInfo
static

Definition at line 103 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryNetworkOpenInfo

FAST_IO_QUERY_NETWORK_OPEN_INFO VfatFastIoQueryNetworkOpenInfo
static

Definition at line 392 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryOpen

FAST_IO_QUERY_OPEN VfatFastIoQueryOpen
static

Definition at line 636 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryStandardInfo

FAST_IO_QUERY_STANDARD_INFO VfatFastIoQueryStandardInfo
static

Definition at line 162 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoRead

FAST_IO_READ VfatFastIoRead
static

Definition at line 45 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoReadCompressed

FAST_IO_READ_COMPRESSED VfatFastIoReadCompressed
static

Definition at line 530 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoUnlockAll

FAST_IO_UNLOCK_ALL VfatFastIoUnlockAll
static

Definition at line 279 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoUnlockAllByKey

FAST_IO_UNLOCK_ALL_BY_KEY VfatFastIoUnlockAllByKey
static

Definition at line 300 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoUnlockSingle

FAST_IO_UNLOCK_SINGLE VfatFastIoUnlockSingle
static

Definition at line 252 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoWrite

FAST_IO_WRITE VfatFastIoWrite
static

Definition at line 74 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoWriteCompressed

FAST_IO_WRITE_COMPRESSED VfatFastIoWriteCompressed
static

Definition at line 563 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlRead

FAST_IO_MDL_READ VfatMdlRead
static

Definition at line 436 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlReadComplete

FAST_IO_MDL_READ_COMPLETE VfatMdlReadComplete
static

Definition at line 463 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlReadCompleteCompressed

FAST_IO_MDL_READ_COMPLETE_COMPRESSED VfatMdlReadCompleteCompressed
static

Definition at line 596 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlWriteComplete

FAST_IO_MDL_WRITE_COMPLETE VfatMdlWriteComplete
static

Definition at line 509 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlWriteCompleteCompressed

FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED VfatMdlWriteCompleteCompressed
static

Definition at line 615 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatPrepareMdlWrite

FAST_IO_PREPARE_MDL_WRITE VfatPrepareMdlWrite
static

Definition at line 482 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatReleaseFileForNtCreateSection

FAST_IO_RELEASE_FILE VfatReleaseFileForNtCreateSection
static

Definition at line 366 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatReleaseForCcFlush

FAST_IO_RELEASE_FOR_CCFLUSH VfatReleaseForCcFlush
static

Definition at line 698 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatReleaseForModWrite

FAST_IO_RELEASE_FOR_MOD_WRITE VfatReleaseForModWrite
static

Definition at line 655 of file fastio.c.

Referenced by VfatInitFastIoRoutines().