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 );
142 #pragma prefast(push) 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) {
348 #pragma prefast(push) 349 #pragma prefast(disable:28155, "these are all correct") 389 CdData.HddFileSystemDeviceObject = HddFileSystemDeviceObject;
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
ULONG MaxDelayedCloseCount
#define STATUS_INSUFFICIENT_RESOURCES
ULONG SizeOfFsFilterCallbacks
LIST_ENTRY AsyncCloseQueue
PDEVICE_OBJECT FileSystemDeviceObject
IRP_CONTEXT * PIRP_CONTEXT
BOOLEAN NTAPI FsRtlMdlReadCompleteDev(IN PFILE_OBJECT FileObject, IN PMDL MemoryDescriptorList, IN PDEVICE_OBJECT DeviceObject)
FAST_IO_QUERY_BASIC_INFO CdFastQueryBasicInfo
#define UNREFERENCED_PARAMETER(P)
BOOLEAN NTAPI FsRtlMdlWriteCompleteDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
FAST_IO_CHECK_IF_POSSIBLE CdFastIoCheckIfPossible
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
BOOLEAN NTAPI CdNoopAcquire(_In_ PVOID Fcb, _In_ BOOLEAN Wait)
FAST_IO_QUERY_STANDARD_INFO CdFastQueryStdInfo
FAST_IO_QUERY_NETWORK_OPEN_INFO CdFastQueryNetworkInfo
PFAST_IO_MDL_READ MdlRead
NTSTATUS ExInitializeResourceLite(PULONG res)
NTSTATUS NTAPI ExDeleteResourceLite(IN PERESOURCE Resource)
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection
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)
PIO_WORKITEM NTAPI IoAllocateWorkItem(IN PDEVICE_OBJECT DeviceObject)
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
VOID NTAPI IoFreeWorkItem(IN PIO_WORKITEM IoWorkItem)
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
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
NTSTATUS CdInitializeGlobalData(_In_ PDRIVER_OBJECT DriverObject, _In_ PDEVICE_OBJECT FileSystemDeviceObject)
PDRIVER_OBJECT DriverObject
SINGLE_LIST_ENTRY IrpContextList
#define IRP_MJ_QUERY_VOLUME_INFORMATION
#define IRP_MJ_DIRECTORY_CONTROL
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)
_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
DRIVER_INITIALIZE DriverEntry
#define NT_SUCCESS(StatCode)
FAST_IO_UNLOCK_SINGLE CdFastUnlockSingle
#define IRP_MJ_FILE_SYSTEM_CONTROL
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
MM_SYSTEMSIZE NTAPI MmQuerySystemSize(VOID)
#define ObDereferenceObject
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
#define CDFS_NTC_DATA_HEADER
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead
NTSTATUS NTAPI FsRtlRegisterFileSystemFilterCallbacks(PDRIVER_OBJECT FilterDriverObject, PFS_FILTER_CALLBACKS Callbacks)
PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead
#define DO_LOW_PRIORITY_FILESYSTEM
struct _FS_FILTER_CALLBACKS FS_FILTER_CALLBACKS
FAST_IO_UNLOCK_ALL CdFastUnlockAll
_Acquires_shared_lock_ Fcb BOOLEAN NTAPI CdAcquireForCache(_Inout_ PFCB Fcb, _In_ BOOLEAN Wait)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
DRIVER_DISPATCH * PDRIVER_DISPATCH
FAST_IO_UNLOCK_ALL_BY_KEY CdFastUnlockAllByKey
FAST_IO_DISPATCH CdFastIoDispatch
CACHE_MANAGER_CALLBACKS CacheManagerVolumeCallbacks
#define InitializeListHead(ListHead)
LIST_ENTRY DelayedCloseQueue
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
#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)
VOID NTAPI CdNoopRelease(_In_ PVOID Fcb)
VOID NTAPI IoRegisterFileSystem(IN PDEVICE_OBJECT DeviceObject)
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM
#define ObReferenceObject
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 IRP_MJ_QUERY_INFORMATION
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection
NODE_BYTE_SIZE NodeByteSize
ULONG MinDelayedCloseCount
#define IRP_MJ_DEVICE_CONTROL
ULONG SizeOfFastIoDispatch