ReactOS  0.4.14-dev-1256-g2125fec
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)
 
INIT_FUNCTION 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 363 of file fastio.c.

365 {
366  DPRINT("VfatAcquireFileForNtCreateSection\n");
368 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593

◆ VfatAcquireForCcFlush()

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

Definition at line 683 of file fastio.c.

686 {
687  PVFATFCB Fcb = (PVFATFCB)FileObject->FsContext;
688 
689  DPRINT("VfatAcquireForCcFlush\n");
690 
692 
693  /* Make sure it is not a volume lock */
695 
696  /* Acquire the resource */
698 
699  return STATUS_SUCCESS;
700 }
#define TRUE
Definition: types.h:120
Definition: vfat.h:441
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
ULONG Flags
Definition: ntfs.h:532
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define FCB_IS_VOLUME
Definition: vfat.h:431
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB Fcb
Definition: cdprocs.h:151
return STATUS_SUCCESS
Definition: btrfs.c:2938

◆ VfatAcquireForLazyWrite()

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

Definition at line 728 of file fastio.c.

731 {
733  ASSERT(Fcb);
734  DPRINT("VfatAcquireForLazyWrite(): Fcb %p\n", Fcb);
735 
737  {
738  DPRINT("VfatAcquireForLazyWrite(): ExReleaseResourceLite failed.\n");
739  return FALSE;
740  }
741  return TRUE;
742 }
#define TRUE
Definition: types.h:120
Definition: vfat.h:441
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
void DPRINT(...)
Definition: polytest.cpp:61
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
_In_ PFCB Fcb
Definition: cdprocs.h:151
IN BOOLEAN Wait
Definition: fatprocs.h:1529

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 424 of file fastio.c.

429 {
430  DPRINT("VfatAcquireForModWrite\n");
431 
436 
438 }
_In_ PLARGE_INTEGER EndingOffset
Definition: iotypes.h:1554
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1555
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560

◆ 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 24 of file fastio.c.

33 {
34  /* Prevent all Fast I/O requests */
35  DPRINT("VfatFastIoCheckIfPossible(): returning FALSE.\n");
36 
45 
46  return FALSE;
47 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
Definition: fatprocs.h:2650
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2650
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
IN BOOLEAN Wait
Definition: fatprocs.h:1529

◆ VfatFastIoDetachDevice()

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

Definition at line 387 of file fastio.c.

390 {
391  DPRINT("VfatFastIoDetachDevice\n");
394 }
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
Definition: iofuncs.h:688
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT SourceDevice
Definition: iofuncs.h:688
void DPRINT(...)
Definition: polytest.cpp:61

◆ 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 332 of file fastio.c.

342 {
343  DPRINT("VfatFastIoDeviceControl\n");
344 
354 
355  return FALSE;
356 }
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG IoControlCode
Definition: fltkernel.h:1383
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _In_ ULONG OutputBufferLength
Definition: fltkernel.h:1374
CHAR InputBuffer[80]
Definition: conmgr.c:33
void DPRINT(...)
Definition: polytest.cpp:61
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _In_opt_ PVOID _In_ ULONG _Out_opt_ PVOID OutputBuffer
Definition: iofuncs.h:713
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG InputBufferLength
Definition: fltkernel.h:1372
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
IN BOOLEAN Wait
Definition: fatprocs.h:1529

◆ 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 230 of file fastio.c.

240 {
241  DPRINT("VfatFastIoLock\n");
242 
252 
253  return FALSE;
254 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2697
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
Definition: fatprocs.h:2697
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
Definition: fatprocs.h:2697

◆ 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 112 of file fastio.c.

118 {
120  PVFATFCB FCB = NULL;
123 
124  DPRINT("VfatFastIoQueryBasicInfo()\n");
125 
126  FCB = (PVFATFCB)FileObject->FsContext;
127  if (FCB == NULL)
128  {
129  return FALSE;
130  }
131 
133 
135  {
137  {
139  return FALSE;
140  }
141  }
142 
144  FCB,
146  Buffer,
147  &BufferLength);
148 
150  {
152  }
153 
154  if (NT_SUCCESS(Status))
155  {
156  IoStatus->Status = STATUS_SUCCESS;
157  IoStatus->Information = sizeof(FILE_BASIC_INFORMATION) - BufferLength;
158  Success = TRUE;
159  }
160 
162 
163  return Success;
164 }
#define TRUE
Definition: types.h:120
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
Definition: vfat.h:441
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
Definition: cdstruc.h:908
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
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
_In_ ULONG BufferLength
Definition: usbdlib.h:225
PVOID DeviceExtension
Definition: env_spec_w32.h:418
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
if(!(yy_init))
Definition: macro.lex.yy.c:714
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define FCB_IS_PAGE_FILE
Definition: vfat.h:430
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
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:885
unsigned int ULONG
Definition: retypes.h:1
return STATUS_SUCCESS
Definition: btrfs.c:2938
IN BOOLEAN Wait
Definition: fatprocs.h:1529
#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 401 of file fastio.c.

407 {
408  DPRINT("VfatFastIoQueryNetworkOpenInfo\n");
409 
415 
416  return FALSE;
417 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
IN BOOLEAN Wait
Definition: fatprocs.h:1529

◆ VfatFastIoQueryOpen()

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

Definition at line 645 of file fastio.c.

649 {
650  DPRINT("VfatFastIoQueryOpen\n");
651 
655 
656  return FALSE;
657 }
_Out_ PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
Definition: iotypes.h:1660
_In_ PIRP Irp
Definition: csq.h:116
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560

◆ 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 171 of file fastio.c.

177 {
179  PVFATFCB FCB = NULL;
182 
183  DPRINT("VfatFastIoQueryStandardInfo()\n");
184 
186 
187  FCB = (PVFATFCB)FileObject->FsContext;
188  if (FCB == NULL)
189  {
190  return FALSE;
191  }
192 
194 
196  {
198  {
200  return FALSE;
201  }
202  }
203 
205  Buffer,
206  &BufferLength);
207 
209  {
211  }
212 
213  if (NT_SUCCESS(Status))
214  {
215  IoStatus->Status = STATUS_SUCCESS;
216  IoStatus->Information = sizeof(FILE_STANDARD_INFORMATION) - BufferLength;
217  Success = TRUE;
218  }
219 
221 
222  return Success;
223 }
#define TRUE
Definition: types.h:120
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
Definition: vfat.h:441
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
Definition: cdstruc.h:908
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS VfatGetStandardInformation(PVFATFCB FCB, PFILE_STANDARD_INFORMATION StandardInfo, PULONG BufferLength)
Definition: finfo.c:75
_In_ ULONG BufferLength
Definition: usbdlib.h:225
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
if(!(yy_init))
Definition: macro.lex.yy.c:714
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define FCB_IS_PAGE_FILE
Definition: vfat.h:430
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
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:885
unsigned int ULONG
Definition: retypes.h:1
return STATUS_SUCCESS
Definition: btrfs.c:2938
IN BOOLEAN Wait
Definition: fatprocs.h:1529

◆ 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 54 of file fastio.c.

63 {
64  DPRINT("VfatFastIoRead()\n");
65 
74 
75  return FALSE;
76 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2650
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
IN BOOLEAN Wait
Definition: fatprocs.h:1529

◆ 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 539 of file fastio.c.

550 {
551  DPRINT("VfatFastIoReadCompressed\n");
552 
563 
564  return FALSE;
565 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
_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:1615
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2650
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO * CompressedDataInfo
Definition: iotypes.h:1615

◆ VfatFastIoUnlockAll()

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

Definition at line 288 of file fastio.c.

293 {
294  DPRINT("VfatFastIoUnlockAll\n");
295 
300 
301  return FALSE;
302 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2697
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560

◆ 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 309 of file fastio.c.

315 {
316  DPRINT("VfatFastIoUnlockAllByKey\n");
317 
323 
324  return FALSE;
325 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2697
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560

◆ 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 261 of file fastio.c.

269 {
270  DPRINT("VfatFastIoUnlockSingle\n");
271 
279 
280  return FALSE;
281 }
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2697
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151

◆ 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 83 of file fastio.c.

92 {
93  DPRINT("VfatFastIoWrite()\n");
94 
103 
104  return FALSE;
105 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2650
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
IN BOOLEAN Wait
Definition: fatprocs.h:1529

◆ 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 572 of file fastio.c.

583 {
584  DPRINT("VfatFastIoWriteCompressed\n");
585 
596 
597  return FALSE;
598 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
_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:1615
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2650
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO * CompressedDataInfo
Definition: iotypes.h:1615

◆ VfatInitFastIoRoutines()

INIT_FUNCTION VOID VfatInitFastIoRoutines ( PFAST_IO_DISPATCH  FastIoDispatch)

Definition at line 758 of file fastio.c.

760 {
789 }
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
Definition: iotypes.h:1697
static FAST_IO_ACQUIRE_FOR_MOD_WRITE VfatAcquireForModWrite
Definition: fastio.c:419
static FAST_IO_RELEASE_FOR_MOD_WRITE VfatReleaseForModWrite
Definition: fastio.c:659
static FAST_IO_QUERY_STANDARD_INFO VfatFastIoQueryStandardInfo
Definition: fastio.c:166
PFAST_IO_MDL_READ MdlRead
Definition: iotypes.h:1706
static FAST_IO_LOCK VfatFastIoLock
Definition: fastio.c:225
static FAST_IO_CHECK_IF_POSSIBLE VfatFastIoCheckIfPossible
Definition: fastio.c:19
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
Definition: iotypes.h:1708
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
Definition: iotypes.h:1698
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection
Definition: iotypes.h:1702
static FAST_IO_UNLOCK_ALL_BY_KEY VfatFastIoUnlockAllByKey
Definition: fastio.c:304
PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo
Definition: iotypes.h:1704
PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite
Definition: iotypes.h:1715
PFAST_IO_READ_COMPRESSED FastIoReadCompressed
Definition: iotypes.h:1710
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
Definition: iotypes.h:1707
PFAST_IO_MDL_READ_COMPLETE_COMPRESSED MdlReadCompleteCompressed
Definition: iotypes.h:1712
PFAST_IO_DETACH_DEVICE FastIoDetachDevice
Definition: iotypes.h:1703
PFAST_IO_QUERY_OPEN FastIoQueryOpen
Definition: iotypes.h:1714
PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo
Definition: iotypes.h:1694
static FAST_IO_ACQUIRE_FOR_CCFLUSH VfatAcquireForCcFlush
Definition: fastio.c:678
struct _FAST_IO_DISPATCH FAST_IO_DISPATCH
static FAST_IO_DETACH_DEVICE VfatFastIoDetachDevice
Definition: fastio.c:382
static FAST_IO_UNLOCK_SINGLE VfatFastIoUnlockSingle
Definition: fastio.c:256
static FAST_IO_WRITE VfatFastIoWrite
Definition: fastio.c:78
static FAST_IO_QUERY_OPEN VfatFastIoQueryOpen
Definition: fastio.c:640
static FAST_IO_WRITE_COMPRESSED VfatFastIoWriteCompressed
Definition: fastio.c:567
static FAST_IO_PREPARE_MDL_WRITE VfatPrepareMdlWrite
Definition: fastio.c:486
static FAST_IO_MDL_READ_COMPLETE_COMPRESSED VfatMdlReadCompleteCompressed
Definition: fastio.c:600
static FAST_IO_ACQUIRE_FILE VfatAcquireFileForNtCreateSection
Definition: fastio.c:358
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
Definition: iotypes.h:1699
static FAST_IO_READ_COMPRESSED VfatFastIoReadCompressed
Definition: fastio.c:534
PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush
Definition: iotypes.h:1716
PFAST_IO_LOCK FastIoLock
Definition: iotypes.h:1696
PFAST_IO_DEVICE_CONTROL FastIoDeviceControl
Definition: iotypes.h:1700
static FAST_IO_QUERY_BASIC_INFO VfatFastIoQueryBasicInfo
Definition: fastio.c:107
PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite
Definition: iotypes.h:1705
FAST_IO_DISPATCH FastIoDispatch
Definition: fastio.c:20
PFAST_IO_READ FastIoRead
Definition: iotypes.h:1692
static FAST_IO_RELEASE_FILE VfatReleaseFileForNtCreateSection
Definition: fastio.c:370
PFAST_IO_WRITE FastIoWrite
Definition: iotypes.h:1693
PFAST_IO_WRITE_COMPRESSED FastIoWriteCompressed
Definition: iotypes.h:1711
static FAST_IO_READ VfatFastIoRead
Definition: fastio.c:49
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
Definition: iotypes.h:1695
static FAST_IO_MDL_WRITE_COMPLETE VfatMdlWriteComplete
Definition: fastio.c:513
static FAST_IO_UNLOCK_ALL VfatFastIoUnlockAll
Definition: fastio.c:283
static FAST_IO_QUERY_NETWORK_OPEN_INFO VfatFastIoQueryNetworkOpenInfo
Definition: fastio.c:396
static FAST_IO_MDL_READ_COMPLETE VfatMdlReadComplete
Definition: fastio.c:467
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
Definition: iotypes.h:1709
static FAST_IO_RELEASE_FOR_CCFLUSH VfatReleaseForCcFlush
Definition: fastio.c:702
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
Definition: iotypes.h:1691
static FAST_IO_MDL_READ VfatMdlRead
Definition: fastio.c:440
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection
Definition: iotypes.h:1701
static FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED VfatMdlWriteCompleteCompressed
Definition: fastio.c:619
PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush
Definition: iotypes.h:1717
static FAST_IO_DEVICE_CONTROL VfatFastIoDeviceControl
Definition: fastio.c:327
PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED MdlWriteCompleteCompressed
Definition: iotypes.h:1713
ULONG SizeOfFastIoDispatch
Definition: iotypes.h:1690

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 445 of file fastio.c.

453 {
454  DPRINT("VfatMdlRead\n");
455 
463 
464  return FALSE;
465 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2650
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151

◆ VfatMdlReadComplete()

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

Definition at line 472 of file fastio.c.

476 {
477  DPRINT("VfatMdlReadComplete\n");
478 
482 
483  return FALSE;
484 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560

◆ VfatMdlReadCompleteCompressed()

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

Definition at line 605 of file fastio.c.

609 {
610  DPRINT("VfatMdlReadCompleteCompressed\n");
611 
615 
616  return FALSE;
617 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560

◆ VfatMdlWriteComplete()

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

Definition at line 518 of file fastio.c.

523 {
524  DPRINT("VfatMdlWriteComplete\n");
525 
530 
531  return FALSE;
532 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151

◆ VfatMdlWriteCompleteCompressed()

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

Definition at line 624 of file fastio.c.

629 {
630  DPRINT("VfatMdlWriteCompleteCompressed\n");
631 
636 
637  return FALSE;
638 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151

◆ 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 491 of file fastio.c.

499 {
500  DPRINT("VfatPrepareMdlWrite\n");
501 
509 
510  return FALSE;
511 }
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2650
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151

◆ VfatReleaseFileForNtCreateSection()

static VOID NTAPI VfatReleaseFileForNtCreateSection ( IN PFILE_OBJECT  FileObject)
static

Definition at line 375 of file fastio.c.

377 {
378  DPRINT("VfatReleaseFileForNtCreateSection\n");
380 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593

◆ VfatReleaseForCcFlush()

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

Definition at line 707 of file fastio.c.

710 {
711  PVFATFCB Fcb = (PVFATFCB)FileObject->FsContext;
712 
713  DPRINT("VfatReleaseForCcFlush\n");
714 
716 
717  /* Make sure it is not a volume lock */
719 
720  /* Release the resource */
722 
723  return STATUS_SUCCESS;
724 }
Definition: vfat.h:441
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
ULONG Flags
Definition: ntfs.h:532
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
#define FCB_IS_VOLUME
Definition: vfat.h:431
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
_In_ PFCB Fcb
Definition: cdprocs.h:151
return STATUS_SUCCESS
Definition: btrfs.c:2938

◆ VfatReleaseForModWrite()

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

Definition at line 664 of file fastio.c.

668 {
669  DPRINT("VfatReleaseForModWrite\n");
670 
674 
676 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1555
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
void DPRINT(...)
Definition: polytest.cpp:61
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560

◆ VfatReleaseFromLazyWrite()

VOID NTAPI VfatReleaseFromLazyWrite ( IN PVOID  Context)

Definition at line 746 of file fastio.c.

748 {
750  ASSERT(Fcb);
751  DPRINT("VfatReleaseFromLazyWrite(): Fcb %p\n", Fcb);
752 
754 }
Definition: vfat.h:441
void DPRINT(...)
Definition: polytest.cpp:61
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
ERESOURCE MainResource
Definition: ntfs.h:524
struct _VFATFCB * PVFATFCB
_In_ PFCB Fcb
Definition: cdprocs.h:151

Referenced by DriverEntry().

Variable Documentation

◆ VfatAcquireFileForNtCreateSection

FAST_IO_ACQUIRE_FILE VfatAcquireFileForNtCreateSection
static

Definition at line 358 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatAcquireForCcFlush

FAST_IO_ACQUIRE_FOR_CCFLUSH VfatAcquireForCcFlush
static

Definition at line 678 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatAcquireForModWrite

FAST_IO_ACQUIRE_FOR_MOD_WRITE VfatAcquireForModWrite
static

Definition at line 419 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoCheckIfPossible

FAST_IO_CHECK_IF_POSSIBLE VfatFastIoCheckIfPossible
static

Definition at line 19 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoDetachDevice

FAST_IO_DETACH_DEVICE VfatFastIoDetachDevice
static

Definition at line 382 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoDeviceControl

FAST_IO_DEVICE_CONTROL VfatFastIoDeviceControl
static

Definition at line 327 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoLock

FAST_IO_LOCK VfatFastIoLock
static

Definition at line 225 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryBasicInfo

FAST_IO_QUERY_BASIC_INFO VfatFastIoQueryBasicInfo
static

Definition at line 107 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryNetworkOpenInfo

FAST_IO_QUERY_NETWORK_OPEN_INFO VfatFastIoQueryNetworkOpenInfo
static

Definition at line 396 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryOpen

FAST_IO_QUERY_OPEN VfatFastIoQueryOpen
static

Definition at line 640 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoQueryStandardInfo

FAST_IO_QUERY_STANDARD_INFO VfatFastIoQueryStandardInfo
static

Definition at line 166 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoRead

FAST_IO_READ VfatFastIoRead
static

Definition at line 49 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoReadCompressed

FAST_IO_READ_COMPRESSED VfatFastIoReadCompressed
static

Definition at line 534 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoUnlockAll

FAST_IO_UNLOCK_ALL VfatFastIoUnlockAll
static

Definition at line 283 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoUnlockAllByKey

FAST_IO_UNLOCK_ALL_BY_KEY VfatFastIoUnlockAllByKey
static

Definition at line 304 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoUnlockSingle

FAST_IO_UNLOCK_SINGLE VfatFastIoUnlockSingle
static

Definition at line 256 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoWrite

FAST_IO_WRITE VfatFastIoWrite
static

Definition at line 78 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatFastIoWriteCompressed

FAST_IO_WRITE_COMPRESSED VfatFastIoWriteCompressed
static

Definition at line 567 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlRead

FAST_IO_MDL_READ VfatMdlRead
static

Definition at line 440 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlReadComplete

FAST_IO_MDL_READ_COMPLETE VfatMdlReadComplete
static

Definition at line 467 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlReadCompleteCompressed

FAST_IO_MDL_READ_COMPLETE_COMPRESSED VfatMdlReadCompleteCompressed
static

Definition at line 600 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlWriteComplete

FAST_IO_MDL_WRITE_COMPLETE VfatMdlWriteComplete
static

Definition at line 513 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatMdlWriteCompleteCompressed

FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED VfatMdlWriteCompleteCompressed
static

Definition at line 619 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatPrepareMdlWrite

FAST_IO_PREPARE_MDL_WRITE VfatPrepareMdlWrite
static

Definition at line 486 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatReleaseFileForNtCreateSection

FAST_IO_RELEASE_FILE VfatReleaseFileForNtCreateSection
static

Definition at line 370 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatReleaseForCcFlush

FAST_IO_RELEASE_FOR_CCFLUSH VfatReleaseForCcFlush
static

Definition at line 702 of file fastio.c.

Referenced by VfatInitFastIoRoutines().

◆ VfatReleaseForModWrite

FAST_IO_RELEASE_FOR_MOD_WRITE VfatReleaseForModWrite
static

Definition at line 659 of file fastio.c.

Referenced by VfatInitFastIoRoutines().