33 if (DeviceExtension->State !=
Loaded)
44 if (DeviceExtension->State ==
Pending)
48 Status = ZwLoadDriver(&DriverName);
51 while (DeviceExtension->State !=
Unloading)
63 if (DeviceExtension->State !=
Loaded)
67 DeviceExtension->State =
Loaded;
135 switch (DeviceExtension->FsType)
241 if (NewDeviceObject) *NewDeviceObject =
NULL;
293 DeviceExtension->FsType = FsType;
294 DeviceExtension->State =
Pending;
300 DeviceExtension->Alternate =
361 L"\\FileSystem\\CdfsRecognizer",
372 L"\\FileSystem\\CdfsHddRecognizer",
383 L"\\FileSystem\\UdfsCdRomRecognizer",
394 L"\\FileSystem\\UdfsDiskRecognizer",
405 L"\\FileSystem\\FatRecognizer",
416 L"\\FileSystem\\FatCdRomRecognizer",
427 L"\\FileSystem\\NtfsRecognizer",
438 L"\\FileSystem\\Ext2Recognizer",
449 L"\\FileSystem\\BtrfsRecognizer",
460 L"\\FileSystem\\ReiserfsRecognizer",
471 L"\\FileSystem\\FfsRecognizer",
482 L"\\FileSystem\\FatXRecognizer",
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
NTSTATUS NTAPI FsRecCdfsFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
struct _BEEP_DEVICE_EXTENSION * PDEVICE_EXTENSION
DRIVER_INITIALIZE DriverEntry
NTSTATUS NTAPI FsRecBtrfsFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI FsRecExt2FsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI FsRecVfatFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI FsRecFatxFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define KeSetEvent(pEvt, foo, foo2)
NTSTATUS NTAPI FsRecFfsFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
DRIVER_DISPATCH FsRecCreate
NTSTATUS NTAPI FsRecLoadFileSystem(IN PDEVICE_OBJECT DeviceObject, IN PWCHAR DriverServiceName)
DRIVER_DISPATCH FsRecClose
DRIVER_DISPATCH FsRecFsControl
NTSTATUS NTAPI FsRecRegisterFs(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT ParentObject OPTIONAL, OUT PDEVICE_OBJECT *NewDeviceObject OPTIONAL, IN PCWSTR FsName, IN PCWSTR RecognizerName, IN ULONG FsType, IN DEVICE_TYPE DeviceType, IN ULONG AdditionalFlags)
DRIVER_UNLOAD FsRecUnload
NTSTATUS NTAPI FsRecNtfsFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI FsRecReiserfsFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI FsRecUdfsFsControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
#define KeLeaveCriticalRegion()
#define KeEnterCriticalRegion()
#define InitializeObjectAttributes(p, n, a, r, s)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
DRIVER_DISPATCH(nfs41_FsdDispatch)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define UNREFERENCED_PARAMETER(P)
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
#define IoCompleteRequest
VOID NTAPI IoUnregisterFileSystem(IN PDEVICE_OBJECT DeviceObject)
VOID NTAPI IoRegisterFileSystem(IN PDEVICE_OBJECT DeviceObject)
#define STATUS_IMAGE_ALREADY_LOADED
#define FILE_DEVICE_DISK_FILE_SYSTEM
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM
PULONG MinorVersion OPTIONAL
PVOID NTAPI MmPageEntireDriver(IN PVOID AddressWithinSection)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_OBJECT_PATH_NOT_FOUND
#define STATUS_INSUFFICIENT_RESOURCES
#define STATUS_OBJECT_NAME_NOT_FOUND
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
#define IRP_MJ_FILE_SYSTEM_CONTROL
#define DO_LOW_PRIORITY_FILESYSTEM