45 #pragma alloc_text(INIT, DriverEntry) 46 #pragma alloc_text(INIT, FatGetCompatibilityModeValue) 47 #pragma alloc_text(INIT, FatIsFujitsuFMR) 51 #define COMPATIBILITY_MODE_KEY_NAME L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\FileSystem" 52 #define COMPATIBILITY_MODE_VALUE_NAME L"Win31FileSystem" 53 #define CODE_PAGE_INVARIANCE_VALUE_NAME L"FatDisableCodePageInvariance" 56 #define KEY_WORK_AREA ((sizeof(KEY_VALUE_FULL_INFORMATION) + \ 59 #define REGISTRY_HARDWARE_DESCRIPTION_W \ 60 L"\\Registry\\Machine\\Hardware\\DESCRIPTION\\System" 62 #define REGISTRY_MACHINE_IDENTIFIER_W L"Identifier" 64 #define FUJITSU_FMR_NAME_W L"FUJITSU FMR-" 141 #pragma prefast( push ) 142 #pragma prefast( disable:28155, "these are all correct" ) 143 #pragma prefast( disable:28169, "these are all correct" ) 144 #pragma prefast( disable:28175, "this is a filesystem, touching FastIoDispatch is allowed" ) 202 #pragma prefast( pop ) 328 #if (NTDDI_VERSION >= NTDDI_VISTA) 423 #if (NTDDI_VERSION >= NTDDI_WIN8) 566 RequestLength += 256;
573 if (!KeyValueInformation) {
707 RequestLength += 256;
712 if (!KeyValueInformation) {
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
NODE_TYPE_CODE NodeTypeCode
PIO_WORKITEM FatCloseItem
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
PVOID CdromFileSystemDeviceObject
#define STATUS_INSUFFICIENT_RESOURCES
ULONG SizeOfFsFilterCallbacks
#define REGISTRY_MACHINE_IDENTIFIER_W
#define IRP_MJ_FLUSH_BUFFERS
#define OBJ_CASE_INSENSITIVE
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
BOOLEAN NTAPI FsRtlMdlReadCompleteDev(IN PFILE_OBJECT FileObject, IN PMDL MemoryDescriptorList, IN PDEVICE_OBJECT DeviceObject)
PDEVICE_OBJECT FatCdromFileSystemDeviceObject
IN BOOLEAN OUT PSTR Buffer
#define UNREFERENCED_PARAMETER(P)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
LOGICAL FatDiskAccountingEnabled
BOOLEAN NTAPI FsRtlMdlWriteCompleteDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
KSPIN_LOCK GeneralSpinLock
PFAST_IO_MDL_READ MdlRead
#define IRP_MJ_SET_VOLUME_INFORMATION
SLIST_HEADER FatCloseContextSList
NTSTATUS ExInitializeResourceLite(PULONG res)
NTSTATUS NTAPI ExDeleteResourceLite(IN PERESOURCE Resource)
ULONG FatMaxDelayedCloseCount
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
#define POOL_NX_ALLOCATION
PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
BOOLEAN NTAPI FsRtlPrepareMdlWriteDev(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)
NPAGED_LOOKASIDE_LIST FatNonPagedFcbLookasideList
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
NPAGED_LOOKASIDE_LIST FatIrpContextLookasideList
FAST_MUTEX FatCloseQueueMutex
#define FUJITSU_FMR_NAME_W
#define _Unreferenced_parameter_
LIST_ENTRY DelayedCloseList
BOOLEAN CodePageInvariant
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
_Function_class_(DRIVER_UNLOAD)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo
struct _FAST_IO_DISPATCH FAST_IO_DISPATCH
#define PsGetCurrentProcess
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
DRIVER_INITIALIZE DriverEntry
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
NTKRNLVISTAAPI ULONG NTAPI KeQueryActiveProcessorCount(OUT PKAFFINITY ActiveProcessors OPTIONAL)
#define IRP_MJ_QUERY_VOLUME_INFORMATION
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
BOOLEAN NTAPI FatNoOpAcquire(IN PVOID Fcb, IN BOOLEAN Wait)
#define IRP_MJ_DIRECTORY_CONTROL
PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
BOOLEAN NTAPI FsRtlMdlReadDev(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)
#define FILE_DEVICE_DISK_FILE_SYSTEM
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
PDEVICE_OBJECT FatDiskFileSystemDeviceObject
VOID NTAPI ExInitializeNPagedLookasideList(IN PNPAGED_LOOKASIDE_LIST Lookaside, IN PALLOCATE_FUNCTION Allocate OPTIONAL, IN PFREE_FUNCTION Free OPTIONAL, IN ULONG Flags, IN SIZE_T Size, IN ULONG Tag, IN USHORT Depth)
#define NT_SUCCESS(StatCode)
#define IRP_MJ_FILE_SYSTEM_CONTROL
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
MM_SYSTEMSIZE NTAPI MmQuerySystemSize(VOID)
#define ObDereferenceObject
#define COMPATIBILITY_MODE_KEY_NAME
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
struct _FAT_DATA FAT_DATA
NPAGED_LOOKASIDE_LIST FatEResourceLookasideList
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead
NTSTATUS FatGetCompatibilityModeValue(IN PUNICODE_STRING ValueName, IN OUT PULONG Value)
#define ExAllocatePoolWithTag(hernya, size, tag)
NODE_BYTE_SIZE NodeByteSize
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
NTSTATUS NTAPI FsRtlRegisterFileSystemFilterCallbacks(PDRIVER_OBJECT FilterDriverObject, PFS_FILTER_CALLBACKS Callbacks)
PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush
VOID NTAPI FatNoOpRelease(IN PVOID Fcb)
PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead
#define COMPATIBILITY_MODE_VALUE_NAME
#define FAT_NTC_DATA_HEADER
FAST_IO_DISPATCH FatFastIoDispatch
struct _FS_FILTER_CALLBACKS FS_FILTER_CALLBACKS
#define CODE_PAGE_INVARIANCE_VALUE_NAME
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
DRIVER_DISPATCH * PDRIVER_DISPATCH
#define KeInitializeEvent(pEvt, foo, foo2)
#define STATUS_OBJECT_NAME_NOT_FOUND
PFAST_IO_WRITE FastIoWrite
#define STATUS_BUFFER_OVERFLOW
#define FAT_MAX_DELAYED_CLOSES
#define InitializeListHead(ListHead)
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
#define REGISTRY_HARDWARE_DESCRIPTION_W
#define IRP_MJ_LOCK_CONTROL
BOOLEAN NTAPI FsRtlCopyRead(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)
BOOLEAN NTAPI FsRtlCopyWrite(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)
VOID NTAPI IoRegisterFileSystem(IN PDEVICE_OBJECT DeviceObject)
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM
#define ObReferenceObject
#define ExInitializeSListHead
PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite
#define IRP_MJ_SET_INFORMATION
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)
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
#define InitializeObjectAttributes(p, n, a, r, s)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
#define IRP_MJ_QUERY_INFORMATION
#define POOL_RAISE_IF_ALLOCATION_FAILURE
LIST_ENTRY AsyncCloseList
VOID NTAPI ExDeleteNPagedLookasideList(IN PNPAGED_LOOKASIDE_LIST Lookaside)
PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush
BOOLEAN FatIsFujitsuFMR()
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 MaxDepth
PVOID DiskFileSystemDeviceObject
struct _KEY_VALUE_FULL_INFORMATION * PKEY_VALUE_FULL_INFORMATION
#define RtlCompareMemory(s1, s2, l)
#define IRP_MJ_DEVICE_CONTROL
ULONG SizeOfFastIoDispatch
CACHE_MANAGER_CALLBACKS CacheManagerNoOpCallbacks