ReactOS 0.4.16-dev-522-gb68104a
|
#include <ntifs.h>
#include <ntdddisk.h>
#include <dos.h>
#include <pseh/pseh2.h>
#include <section_attribs.h>
#include <pshpack1.h>
#include <poppack.h>
Go to the source code of this file.
Classes | |
struct | _BootSector |
struct | _BootSector32 |
struct | _BootSectorFatX |
struct | _FsInfoSector |
struct | _FATDirEntry |
struct | _EAFileHeader |
struct | _EASetHeader |
struct | _EAHeader |
struct | _FATXDirEntry |
struct | _slot |
union | _DIR_ENTRY |
struct | FATINFO |
struct | _HASHENTRY |
struct | _VFAT_DISPATCH |
struct | _STATISTICS |
struct | DEVICE_EXTENSION |
struct | VFAT_GLOBAL_DATA |
struct | _VFATFCB |
struct | _VFATCCB |
struct | __DOSTIME |
struct | __DOSDATE |
struct | VFAT_IRP_CONTEXT |
struct | _VFAT_DIRENTRY_CONTEXT |
struct | _VFAT_MOVE_CONTEXT |
struct | _VFAT_CLOSE_CONTEXT |
Variables | |
PVFAT_GLOBAL_DATA | VfatGlobalData |
DRIVER_DISPATCH | VfatBuildRequest |
DRIVER_DISPATCH | VfatShutdown |
#define ENTRY_DELETED | ( | IsFatX, | |
DirEntry | |||
) | (IsFatX ? FATX_ENTRY_DELETED(&((DirEntry)->FatX)) : FAT_ENTRY_DELETED(&((DirEntry)->Fat))) |
#define ENTRY_END | ( | IsFatX, | |
DirEntry | |||
) | (IsFatX ? FATX_ENTRY_END(&((DirEntry)->FatX)) : FAT_ENTRY_END(&((DirEntry)->Fat))) |
#define ENTRY_VOLUME | ( | IsFatX, | |
DirEntry | |||
) | (IsFatX ? FATX_ENTRY_VOLUME(&((DirEntry)->FatX)) : FAT_ENTRY_VOLUME(&((DirEntry)->Fat))) |
#define FAT_ENTRIES_PER_PAGE (PAGE_SIZE / sizeof (FAT_DIR_ENTRY)) |
#define FATX_ENTRIES_PER_PAGE (PAGE_SIZE / sizeof (FATX_DIR_ENTRY)) |
#define STATISTICS_SIZE_NO_PAD (sizeof(FILESYSTEM_STATISTICS) + sizeof(FAT_STATISTICS)) |
typedef struct _BootSector BootSector |
typedef struct DEVICE_EXTENSION DEVICE_EXTENSION |
typedef union _DIR_ENTRY DIR_ENTRY |
typedef struct _FATDirEntry FAT_DIR_ENTRY |
typedef struct _EAFileHeader FAT_EA_FILE_HEADER |
typedef struct _EAHeader FAT_EA_HEADER |
typedef struct _EASetHeader FAT_EA_SET_HEADER |
typedef struct _FATXDirEntry FATX_DIR_ENTRY |
typedef struct _HASHENTRY HASHENTRY |
typedef NTSTATUS(* PADD_ENTRY) (PDEVICE_EXTENSION, PUNICODE_STRING, struct _VFATFCB **, struct _VFATFCB *, ULONG, UCHAR, struct _VFAT_MOVE_CONTEXT *) |
typedef NTSTATUS(* PDEL_ENTRY) (PDEVICE_EXTENSION, struct _VFATFCB *, struct _VFAT_MOVE_CONTEXT *) |
typedef struct DEVICE_EXTENSION* PDEVICE_EXTENSION |
typedef union _DIR_ENTRY * PDIR_ENTRY |
typedef struct _FATDirEntry * PFAT_DIR_ENTRY |
typedef struct _EAFileHeader * PFAT_EA_FILE_HEADER |
typedef struct _EAHeader * PFAT_EA_HEADER |
typedef struct _EASetHeader * PFAT_EA_SET_HEADER |
typedef struct _FATXDirEntry * PFATX_DIR_ENTRY |
typedef NTSTATUS(* PFIND_AND_MARK_AVAILABLE_CLUSTER) (PDEVICE_EXTENSION, PULONG) |
typedef NTSTATUS(* PGET_DIRTY_STATUS) (PDEVICE_EXTENSION, PBOOLEAN) |
typedef NTSTATUS(* PGET_NEXT_CLUSTER) (PDEVICE_EXTENSION, ULONG, PULONG) |
typedef BOOLEAN(* PIS_DIRECTORY_EMPTY) (PDEVICE_EXTENSION, struct _VFATFCB *) |
typedef NTSTATUS(* PSET_DIRTY_STATUS) (PDEVICE_EXTENSION, BOOLEAN) |
typedef struct _STATISTICS * PSTATISTICS |
typedef struct DEVICE_EXTENSION * PVCB |
typedef struct _VFAT_CLOSE_CONTEXT * PVFAT_CLOSE_CONTEXT |
typedef struct _VFAT_DISPATCH * PVFAT_DISPATCH |
typedef struct VFAT_GLOBAL_DATA * PVFAT_GLOBAL_DATA |
typedef struct VFAT_IRP_CONTEXT * PVFAT_IRP_CONTEXT |
typedef struct _VFAT_MOVE_CONTEXT * PVFAT_MOVE_CONTEXT |
typedef NTSTATUS(* PWRITE_CLUSTER) (PDEVICE_EXTENSION, ULONG, ULONG, PULONG) |
typedef struct _STATISTICS STATISTICS |
typedef struct DEVICE_EXTENSION VCB |
typedef struct _VFAT_DISPATCH VFAT_DISPATCH |
ULONGLONG ClusterToSector | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | Cluster | ||
) |
Definition at line 731 of file fat.c.
Referenced by VfatReadFileData(), and VfatWriteFileData().
NTSTATUS CountAvailableClusters | ( | PDEVICE_EXTENSION | DeviceExt, |
PLARGE_INTEGER | Clusters | ||
) |
Definition at line 541 of file fat.c.
Referenced by FsdGetFsFullSizeInformation(), FsdGetFsSizeInformation(), and VfatMount().
NTSTATUS NTAPI DriverEntry | ( | PDRIVER_OBJECT | DriverObject, |
PUNICODE_STRING | RegistryPath | ||
) |
NTSTATUS FAT12FindAndMarkAvailableCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
PULONG | Cluster | ||
) |
Definition at line 244 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT12GetNextCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | CurrentCluster, | ||
PULONG | NextCluster | ||
) |
Definition at line 123 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT12WriteCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | ClusterToWrite, | ||
ULONG | NewValue, | ||
PULONG | OldValue | ||
) |
Definition at line 570 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT16FindAndMarkAvailableCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
PULONG | Cluster | ||
) |
Definition at line 173 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT16GetDirtyStatus | ( | PDEVICE_EXTENSION | DeviceExt, |
PBOOLEAN | DirtyStatus | ||
) |
Definition at line 858 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT16GetNextCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | CurrentCluster, | ||
PULONG | NextCluster | ||
) |
Definition at line 77 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT16SetDirtyStatus | ( | PDEVICE_EXTENSION | DeviceExt, |
BOOLEAN | DirtyStatus | ||
) |
Definition at line 1044 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT16WriteCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | ClusterToWrite, | ||
ULONG | NewValue, | ||
PULONG | OldValue | ||
) |
NTSTATUS FAT32FindAndMarkAvailableCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
PULONG | Cluster | ||
) |
Definition at line 312 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT32GetDirtyStatus | ( | PDEVICE_EXTENSION | DeviceExt, |
PBOOLEAN | DirtyStatus | ||
) |
Definition at line 936 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT32GetNextCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | CurrentCluster, | ||
PULONG | NextCluster | ||
) |
Definition at line 28 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT32SetDirtyStatus | ( | PDEVICE_EXTENSION | DeviceExt, |
BOOLEAN | DirtyStatus | ||
) |
Definition at line 1129 of file fat.c.
Referenced by VfatMount().
NTSTATUS FAT32UpdateFreeClustersCount | ( | PDEVICE_EXTENSION | DeviceExt | ) |
Definition at line 1215 of file fat.c.
Referenced by FATAddEntry(), FATDelEntry(), and VfatSetAllocationSizeInformation().
NTSTATUS FAT32WriteCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | ClusterToWrite, | ||
ULONG | NewValue, | ||
PULONG | OldValue | ||
) |
Definition at line 661 of file fat.c.
Referenced by VfatMount().
NTSTATUS FindFile | ( | PDEVICE_EXTENSION | DeviceExt, |
PVFATFCB | Parent, | ||
PUNICODE_STRING | FileToFindU, | ||
PVFAT_DIRENTRY_CONTEXT | DirContext, | ||
BOOLEAN | First | ||
) |
Definition at line 83 of file create.c.
BOOLEAN FsdDosDateTimeToSystemTime | ( | PDEVICE_EXTENSION | DeviceExt, |
USHORT | DosDate, | ||
USHORT | DosTime, | ||
PLARGE_INTEGER | SystemTime | ||
) |
Definition at line 21 of file dir.c.
Referenced by FsdGetFsVolumeInformation(), VfatGetBasicInformation(), VfatGetFileBothInformation(), VfatGetFileDirectoryInformation(), VfatGetFileFullDirectoryInformation(), and VfatGetNetworkOpenInformation().
BOOLEAN FsdSystemTimeToDosDateTime | ( | PDEVICE_EXTENSION | DeviceExt, |
PLARGE_INTEGER | SystemTime, | ||
USHORT * | pDosDate, | ||
USHORT * | pDosTime | ||
) |
NTSTATUS GetDirtyStatus | ( | PDEVICE_EXTENSION | DeviceExt, |
PBOOLEAN | DirtyStatus | ||
) |
Definition at line 831 of file fat.c.
Referenced by VfatMount().
NTSTATUS GetNextCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | CurrentCluster, | ||
PULONG | NextCluster | ||
) |
Definition at line 744 of file fat.c.
Referenced by FATDelEntry(), FATXDelEntry(), NextCluster(), and OffsetToCluster().
NTSTATUS GetNextClusterExtend | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | CurrentCluster, | ||
PULONG | NextCluster | ||
) |
Definition at line 773 of file fat.c.
Referenced by NextCluster(), and OffsetToCluster().
BOOLEAN IsDotOrDotDot | ( | PCUNICODE_STRING | Name | ) |
Definition at line 28 of file string.c.
Referenced by VfatCreateFile(), VfatOpenFile(), VfatSetDispositionInformation(), and VfatSetRenameInformation().
NTSTATUS NextCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | FirstCluster, | ||
PULONG | CurrentCluster, | ||
BOOLEAN | Extend | ||
) |
Definition at line 38 of file rw.c.
Referenced by FAT12GetNextCluster(), FAT16GetNextCluster(), FAT32GetNextCluster(), FATAddEntry(), FATDelEntry(), FATXDelEntry(), GetNextCluster(), GetNextClusterExtend(), VfatGetRetrievalPointers(), vfatInitFCBFromDirEntry(), vfatMakeRootFCB(), VfatReadFileData(), VfatSetAllocationSizeInformation(), and VfatWriteFileData().
NTSTATUS OffsetToCluster | ( | PDEVICE_EXTENSION | DeviceExt, |
ULONG | FirstCluster, | ||
ULONG | FileOffset, | ||
PULONG | Cluster, | ||
BOOLEAN | Extend | ||
) |
Definition at line 59 of file rw.c.
Referenced by VfatGetRetrievalPointers(), VfatReadFileData(), VfatSetAllocationSizeInformation(), and VfatWriteFileData().
NTSTATUS SetDirtyStatus | ( | PDEVICE_EXTENSION | DeviceExt, |
BOOLEAN | DirtyStatus | ||
) |
Definition at line 1017 of file fat.c.
Referenced by VfatDismountVolume(), VfatLockOrUnlockVolume(), VfatMarkVolumeDirty(), VfatMount(), and VfatShutdown().
VOID vfat8Dot3ToString | ( | PFAT_DIR_ENTRY | pEntry, |
PUNICODE_STRING | NameU | ||
) |
Definition at line 19 of file create.c.
Referenced by FATGetNextDirEntry(), and ReadVolumeLabel().
Definition at line 723 of file fastio.c.
Referenced by DriverEntry().
FORCEINLINE NTSTATUS VfatAddEntry | ( | PDEVICE_EXTENSION | DeviceExt, |
PUNICODE_STRING | NameU, | ||
struct _VFATFCB ** | Fcb, | ||
struct _VFATFCB * | ParentFcb, | ||
ULONG | RequestedOptions, | ||
UCHAR | ReqAttr, | ||
struct _VFAT_MOVE_CONTEXT * | MoveContext | ||
) |
Definition at line 375 of file vfat.h.
Referenced by VfatCreateFile(), and VfatMoveEntry().
NTSTATUS vfatAttachFCBToFileObject | ( | PDEVICE_EXTENSION | vcb, |
PVFATFCB | fcb, | ||
PFILE_OBJECT | fileObject | ||
) |
Definition at line 754 of file fcb.c.
Referenced by VfatCreateFile(), VfatMount(), and VfatOpenFile().
NTSTATUS VfatBlockDeviceIoControl | ( | IN PDEVICE_OBJECT | DeviceObject, |
IN ULONG | CtlCode, | ||
IN PVOID | InputBuffer, | ||
IN ULONG | InputBufferSize, | ||
IN OUT PVOID | OutputBuffer, | ||
IN OUT PULONG | pOutputBufferSize, | ||
IN BOOLEAN | Override | ||
) |
Definition at line 430 of file blockdev.c.
Referenced by VfatHasFileSystem(), VfatOpenFile(), and VfatVerify().
NTSTATUS NTAPI VfatBuildRequest | ( | PDEVICE_OBJECT | DeviceObject, |
PIRP | Irp | ||
) |
BOOLEAN VfatCheckForDismount | ( | IN PDEVICE_EXTENSION | DeviceExt, |
IN BOOLEAN | Create | ||
) |
Definition at line 495 of file misc.c.
Referenced by VfatCleanupFile(), VfatCloseFile(), and VfatShutdown().
NTSTATUS VfatCleanup | ( | PVFAT_IRP_CONTEXT | IrpContext | ) |
Definition at line 176 of file cleanup.c.
Referenced by VfatDispatchRequest().
NTSTATUS VfatClose | ( | PVFAT_IRP_CONTEXT | IrpContext | ) |
Definition at line 212 of file close.c.
Referenced by VfatDispatchRequest().
NTSTATUS VfatCloseFile | ( | PDEVICE_EXTENSION | DeviceExt, |
PFILE_OBJECT | FileObject | ||
) |
Definition at line 159 of file close.c.
Referenced by VfatClose(), VfatCreateFile(), and vfatPrepareTargetForRename().
NTSTATUS VfatCreate | ( | PVFAT_IRP_CONTEXT | IrpContext | ) |
Definition at line 1070 of file create.c.
Referenced by VfatDispatchRequest().
FORCEINLINE NTSTATUS VfatDelEntry | ( | PDEVICE_EXTENSION | DeviceExt, |
struct _VFATFCB * | Fcb, | ||
struct _VFAT_MOVE_CONTEXT * | MoveContext | ||
) |
Definition at line 388 of file vfat.h.
Referenced by VfatCleanupFile(), VfatMoveEntry(), and vfatPrepareTargetForRename().
Definition at line 257 of file fcb.c.
Referenced by VfatCloseFile(), and VfatMount().
Definition at line 268 of file fcb.c.
Referenced by VfatCheckForDismount(), VfatDismountVolume(), VfatMount(), and vfatReleaseFCB().
NTSTATUS VfatDirectoryControl | ( | PVFAT_IRP_CONTEXT | IrpContext | ) |
Definition at line 727 of file dir.c.
Referenced by VfatDispatchRequest().
ULONG vfatDirEntryGetFirstCluster | ( | PDEVICE_EXTENSION | pDeviceExt, |
PDIR_ENTRY | pDirEntry | ||
) |
Definition at line 18 of file direntry.c.
Referenced by FATDelEntry(), FATXDelEntry(), VfatGetInternalInformation(), VfatGetRetrievalPointers(), vfatInitFCBFromDirEntry(), VfatReadFileData(), VfatSetAllocationSizeInformation(), VfatWrite(), and VfatWriteFileData().
NTSTATUS vfatDirFindFile | ( | PDEVICE_EXTENSION | pVCB, |
PVFATFCB | parentFCB, | ||
PUNICODE_STRING | FileToFindU, | ||
PVFATFCB * | fileFCB | ||
) |
Definition at line 790 of file fcb.c.
Referenced by vfatGetFCBForFile().
Definition at line 22 of file dirwr.c.
Referenced by FATAddEntry(), FATDelEntry(), FATGetNextDirEntry(), FATIsDirectoryEmpty(), FATXDelEntry(), FATXGetNextDirEntry(), FATXIsDirectoryEmpty(), FsdSetFsLabelInformation(), vfatFindDirSpace(), vfatMakeRootFCB(), vfatRenameEntry(), and VfatUpdateEntry().
Definition at line 637 of file vfat.h.
Referenced by IsThereAChildOpened(), UpdateFileSize(), VfatCleanupFile(), VfatCreateFile(), vfatFCBInitializeCacheFromVolume(), VfatFlushVolume(), vfatGetFCBForFile(), VfatGetNetworkOpenInformation(), VfatGetStandardInformation(), vfatInitFCBFromDirEntry(), VfatLockControl(), VfatLockOrUnlockVolume(), VfatMoveEntry(), VfatOpenFile(), vfatPrepareTargetForRename(), VfatRead(), VfatRenameChildFCB(), VfatSetBasicInformation(), VfatSetDispositionInformation(), VfatSetRenameInformation(), vfatUpdateFCB(), and VfatWrite().
FORCEINLINE BOOLEAN vfatFCBIsReadOnly | ( | PVFATFCB | FCB | ) |
Definition at line 644 of file vfat.h.
Referenced by VfatOpenFile(), vfatPrepareTargetForRename(), and VfatSetDispositionInformation().
Definition at line 293 of file fcb.c.
Referenced by FATAddEntry(), FATIsDirectoryEmpty(), FATXAddEntry(), FATXGetNextDirEntry(), FindFile(), vfatDestroyFCB(), vfatFindDirSpace(), vfatInitFCBFromDirEntry(), vfatMakeFullName(), VfatOpenFile(), VfatSetDispositionInformation(), VfatSetRenameInformation(), and VfatUpdateEntry().
NTSTATUS VfatFileSystemControl | ( | PVFAT_IRP_CONTEXT | IrpContext | ) |
Definition at line 1378 of file fsctl.c.
Referenced by VfatDispatchRequest().
BOOLEAN vfatFindDirSpace | ( | PDEVICE_EXTENSION | DeviceExt, |
PVFATFCB | pDirFcb, | ||
ULONG | nbSlots, | ||
PULONG | start | ||
) |
NTSTATUS VfatFlush | ( | PVFAT_IRP_CONTEXT | IrpContext | ) |
Definition at line 149 of file flush.c.
Referenced by VfatDispatchRequest().
NTSTATUS VfatFlushVolume | ( | PDEVICE_EXTENSION | DeviceExt, |
PVFATFCB | VolumeFcb | ||
) |
Definition at line 51 of file flush.c.
Referenced by VfatDismountVolume(), VfatFlush(), VfatLockOrUnlockVolume(), and VfatShutdown().
NTSTATUS VfatGetBasicInformation | ( | PFILE_OBJECT | FileObject, |
PVFATFCB | FCB, | ||
PDEVICE_EXTENSION | DeviceExt, | ||
PFILE_BASIC_INFORMATION | BasicInfo, | ||
PULONG | BufferLength | ||
) |
Definition at line 280 of file finfo.c.
Referenced by VfatFastIoQueryBasicInfo(), VfatGetAllInformation(), and VfatQueryInformation().
NTSTATUS vfatGetFCBForFile | ( | PDEVICE_EXTENSION | pVCB, |
PVFATFCB * | pParentFCB, | ||
PVFATFCB * | pFCB, | ||
PUNICODE_STRING | pFileNameU | ||
) |
Definition at line 883 of file fcb.c.
Referenced by VfatCreateFile(), VfatOpenFile(), and vfatPrepareTargetForRename().
FORCEINLINE NTSTATUS VfatGetNextDirEntry | ( | PDEVICE_EXTENSION | DeviceExt, |
PVOID * | pContext, | ||
PVOID * | pPage, | ||
struct _VFATFCB * | pDirFcb, | ||
struct _VFAT_DIRENTRY_CONTEXT * | DirContext, | ||
BOOLEAN | First | ||
) |
NTSTATUS VfatGetStandardInformation | ( | PVFATFCB | FCB, |
PFILE_STANDARD_INFORMATION | StandardInfo, | ||
PULONG | BufferLength | ||
) |
Definition at line 73 of file finfo.c.
Referenced by VfatFastIoQueryStandardInfo(), VfatGetAllInformation(), and VfatQueryInformation().
Definition at line 443 of file misc.c.
Referenced by DoQuery(), VfatCommonRead(), and VfatWrite().
VOID vfatGrabFCB | ( | PDEVICE_EXTENSION | pVCB, |
PVFATFCB | pFCB | ||
) |
Definition at line 301 of file fcb.c.
Referenced by vfatAddFCBToTable(), VfatCreateFile(), vfatFCBInitializeCacheFromVolume(), vfatGetFCBForFile(), vfatGrabFCBFromTable(), VfatOpenFile(), and VfatSetRenameInformation().
PVFATFCB vfatGrabFCBFromTable | ( | PDEVICE_EXTENSION | pDeviceExt, |
PUNICODE_STRING | pFileNameU | ||
) |
Definition at line 594 of file fcb.c.
Referenced by FindFile(), vfatGetFCBForFile(), and vfatOpenRootFCB().
Definition at line 220 of file misc.c.
Referenced by VfatWrite().
VOID VfatInitFastIoRoutines | ( | PFAST_IO_DISPATCH | FastIoDispatch | ) |