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) {
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 MaxDepth
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
ULONG FatMaxDelayedCloseCount
#define FAT_NTC_DATA_HEADER
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS ExInitializeResourceLite(PULONG res)
#define RtlCompareMemory(s1, s2, l)
#define KeInitializeEvent(pEvt, foo, foo2)
#define ExDeleteResourceLite(res)
#define InitializeListHead(ListHead)
#define KeInitializeSpinLock(sl)
NPAGED_LOOKASIDE_LIST FatNonPagedFcbLookasideList
FAST_MUTEX FatCloseQueueMutex
PDEVICE_OBJECT FatDiskFileSystemDeviceObject
SLIST_HEADER FatCloseContextSList
LOGICAL FatDiskAccountingEnabled
NPAGED_LOOKASIDE_LIST FatIrpContextLookasideList
NPAGED_LOOKASIDE_LIST FatEResourceLookasideList
FAST_IO_DISPATCH FatFastIoDispatch
PDEVICE_OBJECT FatCdromFileSystemDeviceObject
#define FAT_MAX_DELAYED_CLOSES
#define REGISTRY_HARDWARE_DESCRIPTION_W
#define CODE_PAGE_INVARIANCE_VALUE_NAME
BOOLEAN FatIsFujitsuFMR()
#define COMPATIBILITY_MODE_KEY_NAME
DRIVER_INITIALIZE DriverEntry
#define COMPATIBILITY_MODE_VALUE_NAME
#define FUJITSU_FMR_NAME_W
NTSTATUS FatGetCompatibilityModeValue(IN PUNICODE_STRING ValueName, IN OUT PULONG Value)
#define REGISTRY_MACHINE_IDENTIFIER_W
BOOLEAN NTAPI FatNoOpAcquire(IN PVOID Fcb, IN BOOLEAN Wait)
VOID NTAPI FatNoOpRelease(IN PVOID Fcb)
struct _FAT_DATA FAT_DATA
#define OBJ_CASE_INSENSITIVE
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
NTKRNLVISTAAPI ULONG NTAPI KeQueryActiveProcessorCount(OUT PKAFFINITY ActiveProcessors OPTIONAL)
VOID NTAPI ExDeleteNPagedLookasideList(IN PNPAGED_LOOKASIDE_LIST Lookaside)
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)
MM_SYSTEMSIZE NTAPI MmQuerySystemSize(VOID)
#define InitializeObjectAttributes(p, n, a, r, s)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
#define _Function_class_(n)
@ KeyValueFullInformation
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
struct _KEY_VALUE_FULL_INFORMATION * PKEY_VALUE_FULL_INFORMATION
#define UNREFERENCED_PARAMETER(P)
BOOLEAN NTAPI FsRtlMdlWriteCompleteDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
BOOLEAN NTAPI FsRtlMdlReadCompleteDev(IN PFILE_OBJECT FileObject, IN PMDL MemoryDescriptorList, IN PDEVICE_OBJECT DeviceObject)
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)
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)
NTSTATUS NTAPI FsRtlRegisterFileSystemFilterCallbacks(PDRIVER_OBJECT FilterDriverObject, PFS_FILTER_CALLBACKS Callbacks)
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)
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)
VOID NTAPI IoRegisterFileSystem(IN PDEVICE_OBJECT DeviceObject)
#define FILE_DEVICE_DISK_FILE_SYSTEM
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM
#define IRP_MJ_DIRECTORY_CONTROL
#define IRP_MJ_DEVICE_CONTROL
#define IRP_MJ_QUERY_VOLUME_INFORMATION
#define IRP_MJ_LOCK_CONTROL
#define IRP_MJ_SET_INFORMATION
#define IRP_MJ_QUERY_INFORMATION
#define STATUS_BUFFER_OVERFLOW
#define _Unreferenced_parameter_
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite
PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead
PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
PFAST_IO_MDL_READ MdlRead
PFAST_IO_WRITE FastIoWrite
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo
PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
ULONG SizeOfFastIoDispatch
PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
PVOID DiskFileSystemDeviceObject
CACHE_MANAGER_CALLBACKS CacheManagerNoOpCallbacks
PDRIVER_OBJECT DriverObject
KSPIN_LOCK GeneralSpinLock
NODE_TYPE_CODE NodeTypeCode
NODE_BYTE_SIZE NodeByteSize
BOOLEAN CodePageInvariant
LIST_ENTRY AsyncCloseList
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
PVOID CdromFileSystemDeviceObject
PIO_WORKITEM FatCloseItem
LIST_ENTRY DelayedCloseList
ULONG SizeOfFsFilterCallbacks
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
#define RtlZeroMemory(Destination, Length)
#define STATUS_INSUFFICIENT_RESOURCES
#define STATUS_OBJECT_NAME_NOT_FOUND
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_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
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
#define ExInitializeSListHead
#define IRP_MJ_FILE_SYSTEM_CONTROL
#define IRP_MJ_SET_VOLUME_INFORMATION
#define POOL_NX_ALLOCATION
DRIVER_DISPATCH * PDRIVER_DISPATCH
struct _FS_FILTER_CALLBACKS FS_FILTER_CALLBACKS
struct _FAST_IO_DISPATCH FAST_IO_DISPATCH
#define IRP_MJ_FLUSH_BUFFERS
#define POOL_RAISE_IF_ALLOCATION_FAILURE
#define ObDereferenceObject
#define ObReferenceObject
#define PsGetCurrentProcess