Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

cdfs_rec.c File Reference

#include "fs_rec.h"

Go to the source code of this file.

Defines

#define Dbg   (FSREC_DEBUG_LEVEL_CDFS)

Functions

NTSTATUS CdfsRecFsControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)


Define Documentation

#define Dbg   (FSREC_DEBUG_LEVEL_CDFS)
 

Definition at line 32 of file cdfs_rec.c.

Referenced by FsRtlAcknowledgeOplockBreak(), FsRtlAddLargeMcbEntry(), FsRtlAllocateOplock(), FsRtlCancelExclusiveIrp(), FsRtlCancelNotify(), FsRtlCancelOplockIIIrp(), FsRtlCancelWaitIrp(), FsRtlCheckLockForReadAccess(), FsRtlCheckLockForWriteAccess(), FsRtlCheckNoExclusiveConflict(), FsRtlCheckOplock(), FsRtlCompletionRoutinePriv(), FsRtlCurrentBatchOplock(), FsRtlFastCheckLockForRead(), FsRtlFastCheckLockForWrite(), FsRtlFastUnlockSingleExclusive(), FsRtlFastUnlockSingleShared(), FsRtlGetNextFileLock(), FsRtlGetNextLargeMcbEntry(), FsRtlInitializeFileLock(), FsRtlInitializeLargeMcb(), FsRtlInitializeOplock(), FsRtlIsDbcsInExpression(), FsRtlIsNameInExpressionPrivate(), FsRtlIsNotifyOnList(), FsRtlLookupLargeMcbEntry(), FsRtlLookupLastLargeMcbEntry(), FsRtlLookupLastLargeMcbEntryAndIndex(), FsRtlNotifyChangeDirectory(), FsRtlNotifyCleanup(), FsRtlNotifyCompleteIrp(), FsRtlNotifyCompleteIrpList(), FsRtlNotifyCompletion(), FsRtlNotifyFullChangeDirectory(), FsRtlNotifyFullReportChange(), FsRtlNotifyInitializeSync(), FsRtlNotifyReportChange(), FsRtlNotifySetCancelRoutine(), FsRtlNotifyUninitializeSync(), FsRtlNotifyUpdateBuffer(), FsRtlNumberOfRunsInLargeMcb(), FsRtlOpBatchBreakClosePending(), FsRtlOplockBreakNotify(), FsRtlOplockBreakToII(), FsRtlOplockBreakToNone(), FsRtlOplockCleanup(), FsRtlOplockFsctrl(), FsRtlOplockIsFastIoPossible(), FsRtlPrivateCancelFileLockIrp(), FsRtlPrivateCheckWaitingLocks(), FsRtlPrivateFastUnlockAll(), FsRtlPrivateInsertSharedLock(), FsRtlPrivateLock(), FsRtlProcessFileLock(), FsRtlRemoveAndCompleteIrp(), FsRtlRemoveAndCompleteWaitIrp(), FsRtlRemoveLargeMcbEntry(), FsRtlRemoveMcbEntry(), FsRtlRemoveMcbEntryPrivate(), FsRtlRequestExclusiveOplock(), FsRtlRequestOplockII(), FsRtlSplitLargeMcb(), FsRtlTruncateLargeMcb(), FsRtlUninitializeFileLock(), FsRtlUninitializeLargeMcb(), FsRtlUninitializeOplock(), FsRtlWaitOnIrp(), IoAcquireRemoveLockEx(), IsUdfsVolume(), LfsAddClientToList(), LfsAllocateLfcb(), LfsAllocateSpanningBuffer(), LfsCheckSubsequentLogPage(), LfsCloseLogFile(), LfsCopyReadLogRecord(), LfsCurrentAvailSpace(), LfsDeallocateLfcb(), LfsFindClientNextLsn(), LfsFindCurrentAvail(), LfsFindFirstIo(), LfsFindLastLsn(), LfsFindLogRecord(), LfsFindNextLsn(), LfsFindOldestClientLsn(), LfsFlushLbcb(), LfsFlushLfcb(), LfsFlushToLsn(), LfsFlushToLsnPriv(), LfsForceWrite(), LfsFreeSpanningBuffer(), LfsGetLbcb(), LfsInitializeLogFile(), LfsInitializeLogFilePriv(), LfsInitializeLogFileService(), LfsLsnFinalOffset(), LfsNextLogPageOffset(), LfsNormalizeBasicLogFile(), LfsOpenLogFile(), LfsPinOrMapData(), LfsPinOrMapLogRecordHeader(), LfsPrepareLfcbForLogRecord(), LfsQueryLastLsn(), LfsReadLogFileInformation(), LfsReadLogRecord(), LfsReadNextLogRecord(), LfsReadRestart(), LfsReadRestartArea(), LfsRemoveClientFromList(), LfsResetUndoTotal(), LfsRestartLogFile(), LfsSearchForwardByClient(), LfsSetBaseLsn(), LfsSetBaseLsnPriv(), LfsTerminateLogQuery(), LfsTransferLogBytes(), LfsUpdateLfcbFromNoRestart(), LfsUpdateLfcbFromPgHeader(), LfsUpdateLfcbFromRestart(), LfsUpdateRestartAreaFromLfcb(), LfsVerifyLogSpaceAvail(), LfsWrite(), LfsWriteLfsRestart(), LfsWriteLogRecordIntoLogPage(), LfsWriteRestartArea(), UdfAddToPcb(), UdfAddVmcbMapping(), UdfCheckLegalCS0Dstring(), UdfCommonCleanup(), UdfCommonClosePrivate(), UdfCompleteFcbOpen(), UdfCompletePcb(), UdfCreateInternalStream(), UdfCS0DstringContainsLegalCharacters(), UdfDetermineVolumeBounding(), UdfEqualEntityId(), UdfExceptionFilter(), UdfFindAnchorVolumeDescriptor(), UdfFindDirEntry(), UdfFindFileSetDescriptor(), UdfFindVolumeDescriptors(), UdfFspClose(), UdfInitializeAllocations(), UdfInitializePcb(), UdfInitializeVmcb(), UdfIsRemount(), UdfLoadSparingTables(), UdfLookupAllocation(), UdfLookupDirEntryPostProcessing(), UdfLookupPsnOfExtent(), UdfMountVolume(), UdfOpenObjectFromDirContext(), UdfQueueClose(), UdfReadSectors(), UdfRecognizeVolume(), UdfRemoveVmcbMapping(), UdfResetVmcb(), UdfSetMaximumLbnVmcb(), UdfTeardownStructures(), UdfUninitializeVmcb(), UdfUpdateDirNames(), UdfUpdateVcbPhase0(), UdfUpdateVcbPhase1(), UdfUpdateVolumeLabel(), UdfVerifyDescriptor(), UdfVerifyVolume(), UdfVmcbLbnToVbn(), and UdfVmcbVbnToLbn().


Function Documentation

NTSTATUS CdfsRecFsControl IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp
 

Definition at line 40 of file cdfs_rec.c.

References FsRecLoadFileSystem(), IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, IRP_MN_LOAD_FILE_SYSTEM, IRP_MN_MOUNT_VOLUME, L, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), PAGED_CODE, and PDEVICE_EXTENSION.

Referenced by FsRecFsControl().

00047 : 00048 00049 This function performs the mount and driver reload functions for this mini- 00050 file system recognizer driver. 00051 00052 Arguments: 00053 00054 DeviceObject - Pointer to this driver's device object. 00055 00056 Irp - Pointer to the I/O Request Packet (IRP) representing the function to 00057 be performed. 00058 00059 Return Value: 00060 00061 The function value is the final status of the operation. 00062 00063 00064 -*/ 00065 00066 { 00067 NTSTATUS status; 00068 PIO_STACK_LOCATION irpSp; 00069 PDEVICE_EXTENSION deviceExtension; 00070 00071 PAGED_CODE(); 00072 00073 // 00074 // Begin by determining what function that is to be performed. 00075 // 00076 00077 deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension; 00078 irpSp = IoGetCurrentIrpStackLocation( Irp ); 00079 00080 switch ( irpSp->MinorFunction ) { 00081 00082 case IRP_MN_MOUNT_VOLUME: 00083 00084 // 00085 // Always request the filesystem driver. 00086 // 00087 00088 status = STATUS_FS_DRIVER_REQUIRED; 00089 break; 00090 00091 case IRP_MN_LOAD_FILE_SYSTEM: 00092 00093 status = FsRecLoadFileSystem( DeviceObject, 00094 L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Cdfs" ); 00095 break; 00096 00097 default: 00098 00099 status = STATUS_INVALID_DEVICE_REQUEST; 00100 break; 00101 } 00102 00103 // 00104 // Finally, complete the request and return the same status code to the 00105 // caller. 00106 // 00107 00108 Irp->IoStatus.Status = status; 00109 IoCompleteRequest( Irp, IO_NO_INCREMENT ); 00110 00111 return status; 00112 } }


Generated on Sat May 15 19:43:03 2004 for test by doxygen 1.3.7