22#define BugCheckFileId (CDFS_BUG_CHECK_CDINIT)
55#pragma alloc_text(INIT, DriverEntry)
56#pragma alloc_text(PAGE, CdUnload)
57#pragma alloc_text(INIT, CdInitializeGlobalData)
114 &CdfsFileSystemDeviceObject );
133 &HddFileSystemDeviceObject );
143#pragma prefast(disable: 28155, "the dispatch routine has the correct type, prefast is just being paranoid.")
144#pragma prefast(disable: 28168, "the dispatch routine has the correct type, prefast is just being paranoid.")
145#pragma prefast(disable: 28169, "the dispatch routine has the correct type, prefast is just being paranoid.")
146#pragma prefast(disable: 28175, "we're allowed to change these.")
182#pragma prefast(suppress: 28175, "this is a file system driver, we're allowed to touch FastIoDispatch.")
243#ifdef CDFS_TELEMETRY_DATA
248 CdInitializeTelemetry();
292 if (IrpContext ==
NULL) {
349#pragma prefast(disable:28155, "these are all correct")
389 CdData.HddFileSystemDeviceObject = HddFileSystemDeviceObject;
FAST_IO_DISPATCH CdFastIoDispatch
DRIVER_INITIALIZE DriverEntry
NTSTATUS CdInitializeGlobalData(_In_ PDRIVER_OBJECT DriverObject, _In_ PDEVICE_OBJECT FileSystemDeviceObject)
FAST_IO_QUERY_NETWORK_OPEN_INFO CdFastQueryNetworkInfo
VOID NTAPI CdNoopRelease(_In_ PVOID Fcb)
FAST_IO_QUERY_STANDARD_INFO CdFastQueryStdInfo
FAST_IO_CHECK_IF_POSSIBLE CdFastIoCheckIfPossible
FAST_IO_UNLOCK_SINGLE CdFastUnlockSingle
FAST_IO_QUERY_BASIC_INFO CdFastQueryBasicInfo
FAST_IO_UNLOCK_ALL CdFastUnlockAll
FAST_IO_UNLOCK_ALL_BY_KEY CdFastUnlockAllByKey
BOOLEAN NTAPI CdNoopAcquire(_In_ PVOID Fcb, _In_ BOOLEAN Wait)
_Acquires_shared_lock_ Fcb BOOLEAN NTAPI CdAcquireForCache(_Inout_ PFCB Fcb, _In_ BOOLEAN Wait)
IRP_CONTEXT * PIRP_CONTEXT
#define NT_SUCCESS(StatCode)
#define CDFS_NTC_DATA_HEADER
NTSTATUS ExInitializeResourceLite(PULONG res)
#define ExDeleteResourceLite(res)
#define InitializeListHead(ListHead)
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
MM_SYSTEMSIZE NTAPI MmQuerySystemSize(VOID)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#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 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
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite
PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead
PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
ULONG MinDelayedCloseCount
NODE_BYTE_SIZE NodeByteSize
LIST_ENTRY AsyncCloseQueue
CACHE_MANAGER_CALLBACKS CacheManagerVolumeCallbacks
ULONG MaxDelayedCloseCount
SINGLE_LIST_ENTRY IrpContextList
PDRIVER_OBJECT DriverObject
PDEVICE_OBJECT FileSystemDeviceObject
LIST_ENTRY DelayedCloseQueue
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
PFAST_IO_MDL_READ MdlRead
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
ULONG SizeOfFastIoDispatch
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection
PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
ULONG SizeOfFsFilterCallbacks
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
#define RtlZeroMemory(Destination, Length)
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
#define IRP_MJ_FILE_SYSTEM_CONTROL
#define DO_LOW_PRIORITY_FILESYSTEM
DRIVER_DISPATCH * PDRIVER_DISPATCH
struct _FS_FILTER_CALLBACKS FS_FILTER_CALLBACKS
struct _FAST_IO_DISPATCH FAST_IO_DISPATCH
#define ObDereferenceObject
#define ObReferenceObject
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)