2009-01-11 11:12:55 +00:00
|
|
|
#include <ntifs.h>
|
|
|
|
#include <ntdddisk.h>
|
|
|
|
#include <reactos/helper.h>
|
|
|
|
#include <debug.h>
|
2009-01-20 18:05:53 +00:00
|
|
|
#include <fat.h>
|
2009-01-23 09:49:45 +00:00
|
|
|
#include <fatstruc.h>
|
2009-01-11 11:12:55 +00:00
|
|
|
|
2009-01-23 09:49:45 +00:00
|
|
|
#define Add2Ptr(P,I,T) ((T)((PUCHAR)(P) + (I)))
|
|
|
|
#define PtrOffset(B,O) ((ULONG)((ULONG_PTR)(O) - (ULONG_PTR)(B)))
|
2009-01-14 10:42:56 +00:00
|
|
|
|
2009-01-11 11:12:55 +00:00
|
|
|
#ifndef TAG
|
|
|
|
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define TAG_CCB TAG('V', 'C', 'C', 'B')
|
|
|
|
#define TAG_FCB TAG('V', 'F', 'C', 'B')
|
|
|
|
#define TAG_IRP TAG('V', 'I', 'R', 'P')
|
|
|
|
#define TAG_VFAT TAG('V', 'F', 'A', 'T')
|
|
|
|
/* ------------------------------------------------------ shutdown.c */
|
|
|
|
|
2009-01-12 16:31:22 +00:00
|
|
|
DRIVER_DISPATCH FatShutdown;
|
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatShutdown(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* -------------------------------------------------------- volume.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatQueryVolumeInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatSetVolumeInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* ------------------------------------------------------ blockdev.c */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------- dir.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatDirectoryControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* -------------------------------------------------------- create.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* --------------------------------------------------------- close.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* ------------------------------------------------------- cleanup.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatCleanup(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* --------------------------------------------------------- fastio.c */
|
|
|
|
|
|
|
|
VOID
|
2009-01-11 15:58:57 +00:00
|
|
|
FatInitFastIoRoutines(PFAST_IO_DISPATCH FastIoDispatch);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
BOOLEAN NTAPI
|
2009-01-11 15:58:57 +00:00
|
|
|
FatAcquireForLazyWrite(IN PVOID Context,
|
2009-01-11 11:12:55 +00:00
|
|
|
IN BOOLEAN Wait);
|
|
|
|
|
|
|
|
VOID NTAPI
|
2009-01-11 15:58:57 +00:00
|
|
|
FatReleaseFromLazyWrite(IN PVOID Context);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
BOOLEAN NTAPI
|
2009-01-11 15:58:57 +00:00
|
|
|
FatAcquireForReadAhead(IN PVOID Context,
|
2009-01-11 11:12:55 +00:00
|
|
|
IN BOOLEAN Wait);
|
|
|
|
|
|
|
|
VOID NTAPI
|
2009-01-11 15:58:57 +00:00
|
|
|
FatReleaseFromReadAhead(IN PVOID Context);
|
|
|
|
|
|
|
|
BOOLEAN NTAPI
|
|
|
|
FatNoopAcquire(IN PVOID Context,
|
|
|
|
IN BOOLEAN Wait);
|
|
|
|
|
|
|
|
VOID NTAPI
|
|
|
|
FatNoopRelease(IN PVOID Context);
|
|
|
|
|
2009-01-14 10:42:56 +00:00
|
|
|
/* --------------------------------------------------------- fastfat.c */
|
|
|
|
|
|
|
|
PFAT_IRP_CONTEXT NTAPI
|
|
|
|
FatBuildIrpContext(PIRP Irp, BOOLEAN CanWait);
|
|
|
|
|
|
|
|
VOID NTAPI
|
|
|
|
FatDestroyIrpContext(PFAT_IRP_CONTEXT IrpContext);
|
|
|
|
|
|
|
|
VOID NTAPI
|
|
|
|
FatCompleteRequest(PFAT_IRP_CONTEXT IrpContext OPTIONAL,
|
|
|
|
PIRP Irp OPTIONAL,
|
|
|
|
NTSTATUS Status);
|
|
|
|
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
/* --------------------------------------------------------- lock.c */
|
|
|
|
|
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatLockControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* --------------------------------------------------------- fsctl.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* --------------------------------------------------------- finfo.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI FatQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
NTSTATUS NTAPI FatSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* --------------------------------------------------------- iface.c */
|
|
|
|
|
2009-01-12 16:31:22 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* ----------------------------------------------------------- fat.c */
|
|
|
|
|
2009-01-23 09:49:45 +00:00
|
|
|
NTSTATUS
|
|
|
|
FatInitializeVcb(
|
|
|
|
IN PVCB Vcb,
|
|
|
|
IN PDEVICE_OBJECT TargetDeviceObject,
|
|
|
|
IN PVPB Vpb);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
FatUninitializeVcb(
|
|
|
|
IN PVCB Vcb);
|
|
|
|
|
|
|
|
ULONG
|
|
|
|
FatScanFat(
|
|
|
|
IN PFCB Fcb,
|
|
|
|
IN LONGLONG Vbo, OUT PLONGLONG Lbo,
|
|
|
|
IN OUT PLONGLONG Length,
|
|
|
|
OUT PULONG Index,
|
|
|
|
IN BOOLEAN CanWait);
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
/* ------------------------------------------------------ device.c */
|
|
|
|
|
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
|
2009-01-22 17:25:28 +00:00
|
|
|
NTSTATUS
|
|
|
|
FatPerformDevIoCtrl(PDEVICE_OBJECT DeviceObject,
|
2009-01-23 09:28:03 +00:00
|
|
|
ULONG ControlCode,
|
|
|
|
PVOID InputBuffer,
|
|
|
|
ULONG InputBufferSize,
|
|
|
|
PVOID OutputBuffer,
|
|
|
|
ULONG OutputBufferSize,
|
|
|
|
BOOLEAN Override);
|
2009-01-22 17:25:28 +00:00
|
|
|
|
2009-01-11 11:12:55 +00:00
|
|
|
/* ------------------------------------------------------ direntry.c */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------- fcb.c */
|
|
|
|
|
|
|
|
/* ------------------------------------------------------------ rw.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
/* ------------------------------------------------------------- flush.c */
|
|
|
|
|
2009-01-12 17:04:13 +00:00
|
|
|
NTSTATUS NTAPI
|
|
|
|
FatFlushBuffers(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
2009-01-11 11:12:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
/* EOF */
|