#include "ntifs.h"
#include "ntdddisk.h"
#include "ntddcdrm.h"
Go to the source code of this file.
Classes | |
struct | _DEVICE_EXTENSION |
Defines | |
#define | FSREC_DEBUG_LEVEL_FSREC 0x00000001 |
#define | FSREC_DEBUG_LEVEL_NTFS 0x00000002 |
#define | FSREC_DEBUG_LEVEL_CDFS 0x00000004 |
#define | FSREC_DEBUG_LEVEL_UDFS 0x00000008 |
#define | FSREC_DEBUG_LEVEL_FAT 0x00000010 |
#define | FSREC_POOL_TAG 'crsF' |
#define | SetFlag(Flags, SingleFlag) |
#define | ClearFlag(Flags, SingleFlag) |
#define | DebugTrace(M) TRUE |
Typedefs | |
typedef enum _FILE_SYSTEM_TYPE | FILE_SYSTEM_TYPE |
typedef enum _FILE_SYSTEM_TYPE * | PFILE_SYSTEM_TYPE |
typedef enum _RECOGNIZER_STATE | RECOGNIZER_STATE |
typedef enum _RECOGNIZER_STATE * | PRECOGNIZER_STATE |
typedef _DEVICE_EXTENSION | DEVICE_EXTENSION |
typedef _DEVICE_EXTENSION * | PDEVICE_EXTENSION |
Enumerations | |
enum | _FILE_SYSTEM_TYPE { CdfsFileSystem = 1, FatFileSystem, HpfsFileSystem, NtfsFileSystem, UdfsFileSystem } |
enum | _RECOGNIZER_STATE { Active, Transparent, FastUnload } |
Functions | |
NTSTATUS | DriverEntry (IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) |
NTSTATUS | FsRecCleanupClose (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
NTSTATUS | FsRecCreate (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
NTSTATUS | FsRecCreateAndRegisterDO (IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT HeadRecognizer OPTIONAL, OUT PDEVICE_OBJECT *NewRecognizer OPTIONAL, IN PWCHAR RecFileSystem, IN PWCHAR FileSystemName, IN FILE_SYSTEM_TYPE FileSystemType, IN DEVICE_TYPE DeviceType) |
NTSTATUS | FsRecFsControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
VOID | FsRecUnload (IN PDRIVER_OBJECT DriverObject) |
NTSTATUS | FsRecLoadFileSystem (IN PDEVICE_OBJECT DeviceObject, IN PWCHAR DriverServiceKey) |
BOOLEAN | FsRecGetDeviceSectorSize (IN PDEVICE_OBJECT DeviceObject, OUT PULONG BytesPerSector) |
BOOLEAN | FsRecGetDeviceSectors (IN PDEVICE_OBJECT DeviceObject, IN ULONG BytesPerSector, OUT PLARGE_INTEGER NumberOfSectors) |
BOOLEAN | FsRecReadBlock (IN PDEVICE_OBJECT DeviceObject, IN PLARGE_INTEGER ByteOffset, IN ULONG MinimumBytes, IN ULONG BytesPerSector, OUT PVOID *Buffer, OUT PBOOLEAN IsDeviceFailure OPTIONAL) |
NTSTATUS | CdfsRecFsControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
NTSTATUS | UdfsRecFsControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
NTSTATUS | FatRecFsControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
NTSTATUS | NtfsRecFsControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
NTSTATUS | ZwLoadDriver (IN PUNICODE_STRING DriverServiceName) |
|
Value:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 41 of file fs_rec.h. Referenced by DriverEntry(), and FsRecReadBlock(). |
|
Value:
|
|
Referenced by DriverEntry(). |
|
Referenced by FsRecCreateAndRegisterDO(). |
|
Referenced by CdfsRecFsControl(), MapperCallback(), MapperConstructRootEnumTree(), MapperFreeList(), and MapperPhantomizeDetectedComPorts(). |
|
|
|
|
|
|
|
Definition at line 55 of file fs_rec.h.
|
|
Definition at line 67 of file fs_rec.h.
|
|
Definition at line 40 of file cdfs_rec.c. References FsRecLoadFileSystem(), IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, IRP_MN_LOAD_FILE_SYSTEM, IRP_MN_MOUNT_VOLUME, L, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), PAGED_CODE, and PDEVICE_EXTENSION. Referenced by FsRecFsControl().
|
|
Definition at line 67 of file fs_rec.c.
|
|
Definition at line 43 of file fat_rec.c. References _DEVICE_OBJECT::Characteristics, ExFreePool(), FALSE, FsRecGetDeviceSectorSize(), FsRecLoadFileSystem(), FsRecReadBlock(), IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, IRP_MN_LOAD_FILE_SYSTEM, IRP_MN_MOUNT_VOLUME, IsFatVolume(), L, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), NULL, PAGED_CODE, _IO_STACK_LOCATION::Parameters, PPACKED_BOOT_SECTOR, and TRUE. Referenced by FsRecFsControl().
|
|
Definition at line 195 of file fs_rec.c. References IO_NO_INCREMENT, IoCompleteRequest, Irp, and PAGED_CODE. Referenced by DriverEntry().
|
|
Definition at line 233 of file fs_rec.c. References _FILE_OBJECT::FileName, _IO_STACK_LOCATION::FileObject, IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, NTSTATUS(), and PAGED_CODE. Referenced by DriverEntry().
|
|
Definition at line 282 of file fs_rec.c. References Active, _DEVICE_EXTENSION::CoRecognizer, _DEVICE_OBJECT::DeviceExtension, _DEVICE_OBJECT::DeviceObjectExtension, FALSE, FILE_SYSTEM_TYPE, _DEVICE_EXTENSION::FileSystemType, IoCreateDevice(), IoRegisterFileSystem(), NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, RtlInitUnicodeString(), _DEVICE_EXTENSION::State, and ZwCreateFile(). Referenced by DriverEntry().
|
|
Definition at line 446 of file fs_rec.c. References Active, CdfsFileSystem, CdfsRecFsControl(), FatFileSystem, FatRecFsControl(), _DEVICE_EXTENSION::FileSystemType, IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, IRP_MN_MOUNT_VOLUME, _IO_STACK_LOCATION::MinorFunction, NtfsFileSystem, NtfsRecFsControl(), NTSTATUS(), PAGED_CODE, _DEVICE_EXTENSION::State, Transparent, UdfsFileSystem, and UdfsRecFsControl(). Referenced by DriverEntry().
|
|
Definition at line 703 of file fs_rec.c. References Executive, FALSE, IoBuildDeviceIoControlRequest(), IoCallDriver, IoGetNextIrpStackLocation, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, RtlExtendedLargeIntegerDivide(), SetFlag, SL_OVERRIDE_VERIFY_VOLUME, TRUE, and VOID(). Referenced by NtfsRecFsControl().
|
|
Definition at line 800 of file fs_rec.c. References Executive, FALSE, IoBuildDeviceIoControlRequest(), IoCallDriver, IoGetNextIrpStackLocation, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, SetFlag, SL_OVERRIDE_VERIFY_VOLUME, TRUE, and VOID(). Referenced by FatRecFsControl(), NtfsRecFsControl(), and UdfsRecFsControl().
|
|
Definition at line 579 of file fs_rec.c. References Active, _DEVICE_EXTENSION::CoRecognizer, Executive, FALSE, FastUnload, FsRecLoadSync, IoUnregisterFileSystem(), KeEnterCriticalRegion, KeLeaveCriticalRegion, KernelMode, KeSetEvent(), KeWaitForSingleObject(), NTSTATUS(), NULL, PAGED_CODE, RtlInitUnicodeString(), _DEVICE_EXTENSION::State, Transparent, and ZwLoadDriver(). Referenced by CdfsRecFsControl(), FatRecFsControl(), NtfsRecFsControl(), and UdfsRecFsControl().
|
|
Definition at line 907 of file fs_rec.c. References Buffer, ExAllocatePoolWithTag, Executive, FALSE, FSREC_POOL_TAG, IoBuildSynchronousFsdRequest(), IoCallDriver, IoGetNextIrpStackLocation, IRP_MJ_READ, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, PAGE_SIZE, PAGED_CODE, RoundUp, SetFlag, SL_OVERRIDE_VERIFY_VOLUME, TRUE, and VOID(). Referenced by FatRecFsControl(), IsUdfsVolume(), and NtfsRecFsControl().
|
|
Definition at line 539 of file fs_rec.c. References ExFreePool(), FsRecLoadSync, IoDeleteDevice(), and PAGED_CODE. Referenced by DriverEntry().
|
|
Definition at line 42 of file ntfs_rec.c. References ExFreePool(), FsRecGetDeviceSectors(), FsRecGetDeviceSectorSize(), FsRecLoadFileSystem(), FsRecReadBlock(), IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, IRP_MN_LOAD_FILE_SYSTEM, IRP_MN_MOUNT_VOLUME, IsNtfsVolume(), L, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), NULL, PACKED_BOOT_SECTOR, PAGED_CODE, and _IO_STACK_LOCATION::Parameters. Referenced by FsRecFsControl().
|
|
Definition at line 60 of file udfs_rec.c. References FsRecGetDeviceSectorSize(), FsRecLoadFileSystem(), IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, IRP_MN_LOAD_FILE_SYSTEM, IRP_MN_MOUNT_VOLUME, IsUdfsVolume(), L, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), PAGED_CODE, and _IO_STACK_LOCATION::Parameters. Referenced by FsRecFsControl().
|
|
Referenced by FsRecLoadFileSystem(), and FsRtlRegisterUncProvider(). |