- Silence ext2 FSD warnings. Also fix some bugs where the return status wasn't properly set.

- 'allowwarnings=true' -- not anymore

svn path=/trunk/; revision=38302
This commit is contained in:
Stefan Ginsberg 2008-12-23 17:43:25 +00:00
parent f0ad8ee641
commit d2bf1c5f4f
18 changed files with 120 additions and 118 deletions

View file

@ -1,6 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="ext2fs" type="kernelmodedriver" installbase="system32/drivers" installname="ext2.sys" allowwarnings="true"> <module name="ext2fs" type="kernelmodedriver" installbase="system32/drivers" installname="ext2.sys">
<bootstrap installbase="$(CDOUTPUT)" /> <bootstrap installbase="$(CDOUTPUT)" />
<include base="ext2fs">inc</include> <include base="ext2fs">inc</include>
<library>ntoskrnl</library> <library>ntoskrnl</library>

View file

@ -548,7 +548,7 @@ IN PDEVICE_OBJECT DeviceObject);
extern BOOLEAN NTAPI Ext2FastIoUnlockAllByKey( extern BOOLEAN NTAPI Ext2FastIoUnlockAllByKey(
IN PFILE_OBJECT FileObject, IN PFILE_OBJECT FileObject,
PEPROCESS ProcessId, PVOID ProcessId,
ULONG Key, ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus, OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject); IN PDEVICE_OBJECT DeviceObject);

View file

@ -35,6 +35,7 @@ typedef PVOID PBCB;
#define except(x) if (0 && (x)) #define except(x) if (0 && (x))
#define finally if (1) #define finally if (1)
#define GetExceptionInformation() 0 #define GetExceptionInformation() 0
#define GetExceptionCode() 0
// we will use the LARGE_INTEGER structure as defined by NT // we will use the LARGE_INTEGER structure as defined by NT

View file

@ -168,7 +168,7 @@ NTSTATUS NTAPI Ext2ReadPhysicalBlocks (
{ {
DebugTrace(DEBUG_TRACE_MISC, " !!!! Unable to create an IRP", 0 ); DebugTrace(DEBUG_TRACE_MISC, " !!!! Unable to create an IRP", 0 );
Status = STATUS_INSUFFICIENT_RESOURCES; Status = STATUS_INSUFFICIENT_RESOURCES;
try_return( Status ); try_return();
} }
// //

View file

@ -140,7 +140,7 @@ BOOLEAN FirstAttempt )
{ {
DebugTrace( DEBUG_TRACE_FILE_OBJ, "###### File Pointer 0x%LX [Cleanup]", PtrFileObject); DebugTrace( DEBUG_TRACE_FILE_OBJ, "###### File Pointer 0x%LX [Cleanup]", PtrFileObject);
} }
try_return( RC ); try_return();
} }
@ -345,7 +345,7 @@ BOOLEAN FirstAttempt )
CompleteIrp = TRUE; CompleteIrp = TRUE;
} }
try_return( RC ); try_return();
try_exit: NOTHING; try_exit: NOTHING;

View file

@ -142,7 +142,7 @@ BOOLEAN FirstAttempt )
{ {
DebugTrace( DEBUG_TRACE_SPECIAL, "###### File Pointer 0x%LX [Close]", PtrFileObject); DebugTrace( DEBUG_TRACE_SPECIAL, "###### File Pointer 0x%LX [Close]", PtrFileObject);
} }
try_return( RC ); try_return();
} }
// Get the FCB and CCB pointers // Get the FCB and CCB pointers
@ -400,7 +400,7 @@ BOOLEAN FirstAttempt )
DebugTrace(DEBUG_TRACE_MISC, "VCB Close Requested !!!", 0); DebugTrace(DEBUG_TRACE_MISC, "VCB Close Requested !!!", 0);
CompleteIrp = TRUE; CompleteIrp = TRUE;
} }
try_return( RC ); try_return();
try_exit: NOTHING; try_exit: NOTHING;

View file

@ -180,6 +180,9 @@ BOOLEAN FirstAttempt)
UNICODE_STRING AbsolutePathName; UNICODE_STRING AbsolutePathName;
UNICODE_STRING RenameLinkTargetFileName; UNICODE_STRING RenameLinkTargetFileName;
/* Silence GCC warnings */
RtlZeroMemory(&RelatedObjectName, sizeof(UNICODE_STRING));
ASSERT(PtrIrpContext); ASSERT(PtrIrpContext);
ASSERT(PtrIrp); ASSERT(PtrIrp);
@ -200,7 +203,7 @@ BOOLEAN FirstAttempt)
// Asynchronous processing required... // Asynchronous processing required...
RC = Ext2PostRequest(PtrIrpContext, PtrIrp); RC = Ext2PostRequest(PtrIrpContext, PtrIrp);
DeferredProcessing = TRUE; DeferredProcessing = TRUE;
try_return(RC); try_return();
} }
// Obtaining the parameters specified by the user. // Obtaining the parameters specified by the user.
@ -259,7 +262,7 @@ BOOLEAN FirstAttempt)
if (PtrIrp->Overlay.AllocationSize.HighPart) if (PtrIrp->Overlay.AllocationSize.HighPart)
{ {
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
// Getting a pointer to the supplied security context // Getting a pointer to the supplied security context
@ -324,7 +327,7 @@ BOOLEAN FirstAttempt)
// Verify Volume... // Verify Volume...
// if (!NT_SUCCESS(RC = Ext2VerifyVolume(PtrVCB))) // if (!NT_SUCCESS(RC = Ext2VerifyVolume(PtrVCB)))
// { // {
// try_return(RC); // try_return();
// } // }
// If the volume has been locked, fail the request // If the volume has been locked, fail the request
@ -333,7 +336,7 @@ BOOLEAN FirstAttempt)
{ {
DebugTrace(DEBUG_TRACE_MISC, "Volume locked. Failing Create", 0 ); DebugTrace(DEBUG_TRACE_MISC, "Volume locked. Failing Create", 0 );
RC = STATUS_ACCESS_DENIED; RC = STATUS_ACCESS_DENIED;
try_return(RC); try_return();
} }
@ -348,34 +351,34 @@ BOOLEAN FirstAttempt)
if ((OpenTargetDirectory) || (PtrExtAttrBuffer)) if ((OpenTargetDirectory) || (PtrExtAttrBuffer))
{ {
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
if (DirectoryOnlyRequested) if (DirectoryOnlyRequested)
{ {
// a volume is not a directory // a volume is not a directory
RC = STATUS_NOT_A_DIRECTORY; RC = STATUS_NOT_A_DIRECTORY;
try_return(RC); try_return();
} }
if ((RequestedDisposition != FILE_OPEN) && (RequestedDisposition != FILE_OPEN_IF)) if ((RequestedDisposition != FILE_OPEN) && (RequestedDisposition != FILE_OPEN_IF))
{ {
// cannot create a new volume, I'm afraid ... // cannot create a new volume, I'm afraid ...
RC = STATUS_ACCESS_DENIED; RC = STATUS_ACCESS_DENIED;
try_return(RC); try_return();
} }
DebugTrace(DEBUG_TRACE_MISC, "Volume open requested", 0 ); DebugTrace(DEBUG_TRACE_MISC, "Volume open requested", 0 );
RC = Ext2OpenVolume(PtrVCB, PtrIrpContext, PtrIrp, ShareAccess, PtrSecurityContext, PtrNewFileObject); RC = Ext2OpenVolume(PtrVCB, PtrIrpContext, PtrIrp, ShareAccess, PtrSecurityContext, PtrNewFileObject);
ReturnedInformation = PtrIrp->IoStatus.Information; ReturnedInformation = PtrIrp->IoStatus.Information;
try_return(RC); try_return();
} }
if (OpenByFileId) if (OpenByFileId)
{ {
DebugTrace(DEBUG_TRACE_MISC, "Open by File Id requested", 0 ); DebugTrace(DEBUG_TRACE_MISC, "Open by File Id requested", 0 );
RC = STATUS_ACCESS_DENIED; RC = STATUS_ACCESS_DENIED;
try_return(RC); try_return();
} }
// Relative path name specified... // Relative path name specified...
@ -386,20 +389,20 @@ BOOLEAN FirstAttempt)
{ {
// we must have a directory as the "related" object // we must have a directory as the "related" object
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
// Performing validity checks... // Performing validity checks...
if ((RelatedObjectName.Length == 0) || (RelatedObjectName.Buffer[0] != L'\\')) if ((RelatedObjectName.Length == 0) || (RelatedObjectName.Buffer[0] != L'\\'))
{ {
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
if ((TargetObjectName.Length != 0) && (TargetObjectName.Buffer[0] == L'\\')) if ((TargetObjectName.Length != 0) && (TargetObjectName.Buffer[0] == L'\\'))
{ {
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
// Creating an absolute path-name. // Creating an absolute path-name.
@ -408,7 +411,7 @@ BOOLEAN FirstAttempt)
if (!(AbsolutePathName.Buffer = Ext2AllocatePool(PagedPool, AbsolutePathName.MaximumLength ))) if (!(AbsolutePathName.Buffer = Ext2AllocatePool(PagedPool, AbsolutePathName.MaximumLength )))
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
RtlZeroMemory(AbsolutePathName.Buffer, AbsolutePathName.MaximumLength); RtlZeroMemory(AbsolutePathName.Buffer, AbsolutePathName.MaximumLength);
@ -429,14 +432,14 @@ BOOLEAN FirstAttempt)
if (TargetObjectName.Buffer[0] != L'\\') if (TargetObjectName.Buffer[0] != L'\\')
{ {
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
{ {
AbsolutePathName.MaximumLength = TargetObjectName.Length; AbsolutePathName.MaximumLength = TargetObjectName.Length;
if (!(AbsolutePathName.Buffer = Ext2AllocatePool(PagedPool, AbsolutePathName.MaximumLength ))) { if (!(AbsolutePathName.Buffer = Ext2AllocatePool(PagedPool, AbsolutePathName.MaximumLength ))) {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
RtlZeroMemory(AbsolutePathName.Buffer, AbsolutePathName.MaximumLength); RtlZeroMemory(AbsolutePathName.Buffer, AbsolutePathName.MaximumLength);
@ -456,12 +459,12 @@ BOOLEAN FirstAttempt)
(RequestedDisposition == FILE_OVERWRITE_IF)) (RequestedDisposition == FILE_OVERWRITE_IF))
{ {
RC = STATUS_FILE_IS_A_DIRECTORY; RC = STATUS_FILE_IS_A_DIRECTORY;
try_return(RC); try_return();
} }
RC = Ext2OpenRootDirectory(PtrVCB, PtrIrpContext, PtrIrp, ShareAccess, PtrSecurityContext, PtrNewFileObject); RC = Ext2OpenRootDirectory(PtrVCB, PtrIrpContext, PtrIrp, ShareAccess, PtrSecurityContext, PtrNewFileObject);
DebugTrace(DEBUG_TRACE_MISC, " === Root directory opened", 0 ); DebugTrace(DEBUG_TRACE_MISC, " === Root directory opened", 0 );
try_return(RC); try_return();
} }
@ -562,7 +565,7 @@ BOOLEAN FirstAttempt)
// Can have only a directory in the middle of the path... // Can have only a directory in the middle of the path...
// //
RC = STATUS_OBJECT_PATH_NOT_FOUND; RC = STATUS_OBJECT_PATH_NOT_FOUND;
try_return( RC ); try_return();
} }
} }
else // searching on the disk... else // searching on the disk...
@ -600,7 +603,7 @@ BOOLEAN FirstAttempt)
if( !CurrInodeNo ) if( !CurrInodeNo )
{ {
RC = STATUS_OBJECT_PATH_NOT_FOUND; RC = STATUS_OBJECT_PATH_NOT_FOUND;
try_return( RC ); try_return();
} }
// Set the allocation size for the object is specified // Set the allocation size for the object is specified
//IoSetShareAccess(DesiredAccess, ShareAccess, PtrNewFileObject, &(PtrNewFCB->FCBShareAccess)); //IoSetShareAccess(DesiredAccess, ShareAccess, PtrNewFileObject, &(PtrNewFCB->FCBShareAccess));
@ -647,7 +650,7 @@ BOOLEAN FirstAttempt)
else else
{ {
RC = STATUS_OBJECT_PATH_NOT_FOUND; RC = STATUS_OBJECT_PATH_NOT_FOUND;
try_return( RC ); try_return();
} }
} }
@ -660,7 +663,7 @@ BOOLEAN FirstAttempt)
// Can have only a directory in the middle of the path... // Can have only a directory in the middle of the path...
// //
RC = STATUS_OBJECT_PATH_NOT_FOUND; RC = STATUS_OBJECT_PATH_NOT_FOUND;
try_return( RC ); try_return();
} }
PtrCurrFileObject = NULL; PtrCurrFileObject = NULL;
@ -681,7 +684,7 @@ BOOLEAN FirstAttempt)
{ {
ReturnedInformation = FILE_EXISTS; ReturnedInformation = FILE_EXISTS;
RC = STATUS_OBJECT_NAME_COLLISION; RC = STATUS_OBJECT_NAME_COLLISION;
try_return(RC); try_return();
} }
// Is this the type of file I was looking for? // Is this the type of file I was looking for?
@ -692,18 +695,18 @@ BOOLEAN FirstAttempt)
// Deny access! // Deny access!
// Cannot open a special file... // Cannot open a special file...
RC = STATUS_ACCESS_DENIED; RC = STATUS_ACCESS_DENIED;
try_return( RC ); try_return();
} }
if( DirectoryOnlyRequested && Type != EXT2_FT_DIR ) if( DirectoryOnlyRequested && Type != EXT2_FT_DIR )
{ {
RC = STATUS_NOT_A_DIRECTORY; RC = STATUS_NOT_A_DIRECTORY;
try_return( RC ); try_return();
} }
if( FileOnlyRequested && Type == EXT2_FT_DIR ) if( FileOnlyRequested && Type == EXT2_FT_DIR )
{ {
RC = STATUS_FILE_IS_A_DIRECTORY; RC = STATUS_FILE_IS_A_DIRECTORY;
try_return(RC); try_return();
} }
PtrCurrFileObject = PtrNewFileObject; PtrCurrFileObject = PtrNewFileObject;
@ -733,7 +736,7 @@ BOOLEAN FirstAttempt)
PtrObjectName ) ) ) PtrObjectName ) ) )
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
if( Type == EXT2_FT_DIR ) if( Type == EXT2_FT_DIR )
@ -781,7 +784,7 @@ BOOLEAN FirstAttempt)
(RequestedDisposition == FILE_OVERWRITE) || (RequestedDisposition == FILE_OVERWRITE_IF ))) (RequestedDisposition == FILE_OVERWRITE) || (RequestedDisposition == FILE_OVERWRITE_IF )))
{ {
RC = STATUS_FILE_IS_A_DIRECTORY; RC = STATUS_FILE_IS_A_DIRECTORY;
try_return(RC); try_return();
} }
@ -798,7 +801,7 @@ BOOLEAN FirstAttempt)
&(PtrNewFCB->FCBShareAccess), TRUE))) &(PtrNewFCB->FCBShareAccess), TRUE)))
{ {
// Ext2CloseCCB(PtrNewCCB); // Ext2CloseCCB(PtrNewCCB);
try_return(RC); try_return();
} }
} }
else else
@ -1008,7 +1011,7 @@ PFILE_OBJECT PtrNewFileObject) // I/O Mgr. created file object
if (!(PtrCCB = Ext2AllocateCCB())) if (!(PtrCCB = Ext2AllocateCCB()))
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
// initialize the CCB // initialize the CCB

View file

@ -429,7 +429,7 @@ PtrExt2CCB PtrCCB)
{ {
// Read Failure // Read Failure
DebugTrace(DEBUG_TRACE_MISC, "Cache read failiure while reading in volume meta data", 0); DebugTrace(DEBUG_TRACE_MISC, "Cache read failiure while reading in volume meta data", 0);
try_return( STATUS_ACCESS_DENIED ); try_return( RC = STATUS_ACCESS_DENIED );
} }
else else
{ {
@ -694,11 +694,11 @@ PtrExt2CCB PtrCCB)
case FileFullDirectoryInformation: case FileFullDirectoryInformation:
// FullDirInformation-> // FullDirInformation->
DebugTrace(DEBUG_TRACE_DIRINFO, " === FileFullDirectoryInformation - Not handled", 0 ); DebugTrace(DEBUG_TRACE_DIRINFO, " === FileFullDirectoryInformation - Not handled", 0 );
try_return( RC ); try_return();
case FileNamesInformation: case FileNamesInformation:
// NamesInformation-> // NamesInformation->
DebugTrace(DEBUG_TRACE_DIRINFO, " === FileNamesInformation - Not handled", 0 ); DebugTrace(DEBUG_TRACE_DIRINFO, " === FileNamesInformation - Not handled", 0 );
try_return( RC ); try_return();
default: default:
DebugTrace(DEBUG_TRACE_DIRINFO, " === Invalid Dir Info class - Not handled", 0 ); DebugTrace(DEBUG_TRACE_DIRINFO, " === Invalid Dir Info class - Not handled", 0 );
try_return( RC = STATUS_INVALID_INFO_CLASS ); try_return( RC = STATUS_INVALID_INFO_CLASS );
@ -719,7 +719,7 @@ PtrExt2CCB PtrCCB)
RC = STATUS_NO_SUCH_FILE; RC = STATUS_NO_SUCH_FILE;
else else
RC = STATUS_NO_MORE_FILES; RC = STATUS_NO_MORE_FILES;
try_return( RC ); try_return();
} }
else if( BytesReturned ) else if( BytesReturned )
{ {

View file

@ -85,7 +85,7 @@ PUNICODE_STRING RegistryPath) // path to the registry key
// in your commercial driver implementation, it would be // in your commercial driver implementation, it would be
// advisable for your driver to print an appropriate error // advisable for your driver to print an appropriate error
// message to the system error log before leaving // message to the system error log before leaving
// try_return(RC); // try_return();
// } // }
// we should have the registry data (if any), allocate zone memory ... // we should have the registry data (if any), allocate zone memory ...
@ -98,7 +98,7 @@ PUNICODE_STRING RegistryPath) // path to the registry key
if (!NT_SUCCESS(RC = Ext2InitializeZones())) if (!NT_SUCCESS(RC = Ext2InitializeZones()))
{ {
// we failed, print a message and leave ... // we failed, print a message and leave ...
try_return(RC); try_return();
} }
#endif #endif
@ -143,7 +143,7 @@ PUNICODE_STRING RegistryPath) // path to the registry key
&(Ext2GlobalData.Ext2DeviceObject)))) &(Ext2GlobalData.Ext2DeviceObject))))
{ {
// failed to create a device object, leave ... // failed to create a device object, leave ...
try_return(RC); try_return();
} }

View file

@ -593,7 +593,7 @@ IN PDEVICE_OBJECT DeviceObject)
*************************************************************************/ *************************************************************************/
BOOLEAN NTAPI Ext2FastIoUnlockAllByKey( BOOLEAN NTAPI Ext2FastIoUnlockAllByKey(
IN PFILE_OBJECT FileObject, IN PFILE_OBJECT FileObject,
PEPROCESS ProcessId, PVOID ProcessId,
ULONG Key, ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus, OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject) IN PDEVICE_OBJECT DeviceObject)

View file

@ -144,7 +144,7 @@ PIRP PtrIrp)
{ {
// This is not allowed. Caller must use get/set volume information instead. // This is not allowed. Caller must use get/set volume information instead.
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
// ASSERT(PtrFCB->NodeIdentifier.NodeType == EXT2_NODE_TYPE_FCB); // ASSERT(PtrFCB->NodeIdentifier.NodeType == EXT2_NODE_TYPE_FCB);
@ -205,14 +205,14 @@ PIRP PtrIrp)
DebugTrace(DEBUG_TRACE_FILEINFO, "FileNetworkOpenInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "FileNetworkOpenInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = Ext2GetNetworkOpenInformation(PtrFCB, (PFILE_NETWORK_OPEN_INFORMATION)PtrSystemBuffer, &BufferLength); RC = Ext2GetNetworkOpenInformation(PtrFCB, (PFILE_NETWORK_OPEN_INFORMATION)PtrSystemBuffer, &BufferLength);
// RC = STATUS_INVALID_PARAMETER; // RC = STATUS_INVALID_PARAMETER;
// try_return(RC); // try_return();
break; break;
#endif // _WIN32_WINNT >= 0x0400 #endif // _WIN32_WINNT >= 0x0400
case FileInternalInformation: case FileInternalInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileInternalInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "FileInternalInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
// RC = Ext2GetInternalInformation(...); // RC = Ext2GetInternalInformation(...);
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
break; break;
case FileEaInformation: case FileEaInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileEaInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "FileEaInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
@ -246,7 +246,7 @@ PIRP PtrIrp)
// RC = Ext2GetFileStreamInformation(...); // RC = Ext2GetFileStreamInformation(...);
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
break; break;
case FileAllInformation: case FileAllInformation:
@ -274,11 +274,11 @@ PIRP PtrIrp)
if (!NT_SUCCESS(RC = Ext2GetBasicInformation(PtrFCB, (PFILE_BASIC_INFORMATION)&(PtrAllInfo->BasicInformation), if (!NT_SUCCESS(RC = Ext2GetBasicInformation(PtrFCB, (PFILE_BASIC_INFORMATION)&(PtrAllInfo->BasicInformation),
&BufferLength))) &BufferLength)))
{ {
try_return(RC); try_return();
} }
if (!NT_SUCCESS(RC = Ext2GetStandardInformation(PtrFCB, &(PtrAllInfo->StandardInformation), &BufferLength))) if (!NT_SUCCESS(RC = Ext2GetStandardInformation(PtrFCB, &(PtrAllInfo->StandardInformation), &BufferLength)))
{ {
try_return(RC); try_return();
} }
// Similarly, get all of the others ... // Similarly, get all of the others ...
} }
@ -291,19 +291,19 @@ PIRP PtrIrp)
case FileAlternateNameInformation: case FileAlternateNameInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileAlternateNameInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "FileAlternateNameInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
// RC = Ext2GetAltNameInformation(...); // RC = Ext2GetAltNameInformation(...);
break; break;
case FileCompressionInformation: case FileCompressionInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileCompressionInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "FileCompressionInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
// RC = Ext2GetCompressionInformation(...); // RC = Ext2GetCompressionInformation(...);
break; break;
default: default:
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
// If we completed successfully, the return the amount of information transferred. // If we completed successfully, the return the amount of information transferred.
@ -409,7 +409,7 @@ PIRP PtrIrp)
DebugTrace(DEBUG_TRACE_FILEINFO, "Attempt to set FileEndOfFileInformation for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "Attempt to set FileEndOfFileInformation for %S", PtrFCB->FCBName->ObjectName.Buffer );
// RC = Ext2SetEOF(...); // RC = Ext2SetEOF(...);
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
break; break;
case FilePositionInformation: case FilePositionInformation:
@ -449,7 +449,7 @@ PIRP PtrIrp)
case FileLinkInformation: case FileLinkInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "Attempt to set FileLinkInformation for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "Attempt to set FileLinkInformation for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
// When you implement your rename/link routine, be careful to // When you implement your rename/link routine, be careful to
// check the following two arguments: // check the following two arguments:
// TargetFileObject = PtrIoStackLocation->Parameters.SetFile.FileObject; // TargetFileObject = PtrIoStackLocation->Parameters.SetFile.FileObject;
@ -484,7 +484,7 @@ PIRP PtrIrp)
default: default:
DebugTrace(DEBUG_TRACE_FILEINFO, "Unrecoganised SetFileInformation code for %S", PtrFCB->FCBName->ObjectName.Buffer ); DebugTrace(DEBUG_TRACE_FILEINFO, "Unrecoganised SetFileInformation code for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER; RC = STATUS_INVALID_PARAMETER;
try_return(RC); try_return();
} }
} }
@ -934,7 +934,7 @@ PFILE_DISPOSITION_INFORMATION PtrBuffer)
// "un-delete" the file. // "un-delete" the file.
Ext2ClearFlag(PtrFCB->FCBFlags, EXT2_FCB_DELETE_ON_CLOSE); Ext2ClearFlag(PtrFCB->FCBFlags, EXT2_FCB_DELETE_ON_CLOSE);
PtrFileObject->DeletePending = FALSE; PtrFileObject->DeletePending = FALSE;
try_return(RC); try_return();
} }
// Do some checking to see if the file can even be deleted. // Do some checking to see if the file can even be deleted.
@ -942,7 +942,7 @@ PFILE_DISPOSITION_INFORMATION PtrBuffer)
if (PtrFCB->FCBFlags & EXT2_FCB_DELETE_ON_CLOSE) if (PtrFCB->FCBFlags & EXT2_FCB_DELETE_ON_CLOSE)
{ {
// All done! // All done!
try_return(RC); try_return();
} }
if (PtrFCB->FCBFlags & EXT2_FCB_READ_ONLY) if (PtrFCB->FCBFlags & EXT2_FCB_READ_ONLY)

View file

@ -138,7 +138,7 @@ PIRP PtrIrp)
// If we cannot wait, post the request immediately since a flush is inherently blocking/synchronous. // If we cannot wait, post the request immediately since a flush is inherently blocking/synchronous.
if (!CanWait) { if (!CanWait) {
PostRequest = TRUE; PostRequest = TRUE;
try_return(RC); try_return();
} }
// Check the type of object passed-in. That will determine the course of // Check the type of object passed-in. That will determine the course of
@ -160,7 +160,7 @@ PIRP PtrIrp)
Ext2FlushLogicalVolume(PtrIrpContext, PtrIrp, PtrVCB); Ext2FlushLogicalVolume(PtrIrpContext, PtrIrp, PtrVCB);
try_return(RC); try_return();
} }
if (!(PtrFCB->FCBFlags & EXT2_FCB_DIRECTORY)) if (!(PtrFCB->FCBFlags & EXT2_FCB_DIRECTORY))

View file

@ -221,8 +221,6 @@ Ext2MountVolume (
PEXT2_GROUP_DESCRIPTOR PtrGroupDescriptor = NULL; PEXT2_GROUP_DESCRIPTOR PtrGroupDescriptor = NULL;
PEXT2_INODE PtrInode = NULL;
// Inititalising variables // Inititalising variables
PtrVPB = IrpSp->Parameters.MountVolume.Vpb; PtrVPB = IrpSp->Parameters.MountVolume.Vpb;
@ -257,7 +255,7 @@ Ext2MountVolume (
DebugTrace(DEBUG_TRACE_MOUNT, "OEM[%s]", BootSector->Oem); DebugTrace(DEBUG_TRACE_MOUNT, "OEM[%s]", BootSector->Oem);
if (BootSector->Oem[0]) if (BootSector->Oem[0])
{ {
try_return (STATUS_WRONG_VOLUME); try_return (Status = STATUS_WRONG_VOLUME);
} }
// Allocating memory for reading in Super Block... // Allocating memory for reading in Super Block...
@ -299,7 +297,7 @@ Ext2MountVolume (
(PDEVICE_OBJECT *)&PtrVolumeDeviceObject)) // The Volume Device Object (PDEVICE_OBJECT *)&PtrVolumeDeviceObject)) // The Volume Device Object
) )
{ {
try_return( Status ); try_return();
} }
// //
@ -444,7 +442,7 @@ Ext2MountVolume (
PtrRootFileObject = IoCreateStreamFileObject(NULL, TargetDeviceObject ); PtrRootFileObject = IoCreateStreamFileObject(NULL, TargetDeviceObject );
if( !PtrRootFileObject ) if( !PtrRootFileObject )
{ {
try_return( Status ); try_return();
} }
// //
// Associate the file stream with the Volume parameter block... // Associate the file stream with the Volume parameter block...
@ -473,7 +471,7 @@ Ext2MountVolume (
PtrVCB, PtrVCB,
PtrObjectName ) ) ) PtrObjectName ) ) )
{ {
try_return( Status ); try_return();
} }

View file

@ -76,7 +76,7 @@ NTSTATUS NTAPI Ext2PassDownMultiReadWriteIRP(
if ( !PtrSyncEvent ) if ( !PtrSyncEvent )
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC ); try_return();
} }
KeInitializeEvent( PtrSyncEvent, SynchronizationEvent, FALSE ); KeInitializeEvent( PtrSyncEvent, SynchronizationEvent, FALSE );
} }
@ -87,7 +87,7 @@ NTSTATUS NTAPI Ext2PassDownMultiReadWriteIRP(
if ( !PtrIoContext ) if ( !PtrIoContext )
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC ); try_return();
} }
RtlZeroMemory( PtrIoContext, sizeof(EXT2_IO_CONTEXT) ); RtlZeroMemory( PtrIoContext, sizeof(EXT2_IO_CONTEXT) );
@ -198,13 +198,13 @@ NTSTATUS NTAPI Ext2PassDownMultiReadWriteIRP(
KeWaitForSingleObject( PtrSyncEvent, KeWaitForSingleObject( PtrSyncEvent,
Executive, KernelMode, FALSE, (PLARGE_INTEGER)NULL ); Executive, KernelMode, FALSE, (PLARGE_INTEGER)NULL );
DbgPrint("DEADLY WAIT DONE\n"); DbgPrint("DEADLY WAIT DONE\n");
try_return ( RC ); try_return();
} }
else else
{ {
// Asynchronous IO... // Asynchronous IO...
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return ( RC ); try_return();
} }
try_exit: NOTHING; try_exit: NOTHING;
@ -259,7 +259,7 @@ NTSTATUS NTAPI Ext2PassDownSingleReadWriteIRP(
if ( !PtrSyncEvent ) if ( !PtrSyncEvent )
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC ); try_return();
} }
KeInitializeEvent( PtrSyncEvent, SynchronizationEvent, FALSE ); KeInitializeEvent( PtrSyncEvent, SynchronizationEvent, FALSE );
} }
@ -271,7 +271,7 @@ NTSTATUS NTAPI Ext2PassDownSingleReadWriteIRP(
if ( !PtrIoContext ) if ( !PtrIoContext )
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC ); try_return();
} }
RtlZeroMemory( PtrIoContext, sizeof(EXT2_IO_CONTEXT) ); RtlZeroMemory( PtrIoContext, sizeof(EXT2_IO_CONTEXT) );

View file

@ -83,7 +83,7 @@ NTSTATUS NTAPI Ext2ReadInode (
DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Invalid Inode no. Group no %d - too big", GroupNo ); DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Invalid Inode no. Group no %d - too big", GroupNo );
DebugTrace(DEBUG_TRACE_MISC, "Only %d groups available on disk", PtrVcb->NoOfGroups ); DebugTrace(DEBUG_TRACE_MISC, "Only %d groups available on disk", PtrVcb->NoOfGroups );
RC = STATUS_UNSUCCESSFUL; RC = STATUS_UNSUCCESSFUL;
try_return( RC ); try_return();
} }
//if( PtrVcb->InodeTableBlock[ GroupNo ] == 0 ) //if( PtrVcb->InodeTableBlock[ GroupNo ] == 0 )
@ -91,7 +91,7 @@ NTSTATUS NTAPI Ext2ReadInode (
{ {
DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Inode Table Group Invalid - Group no %d ", GroupNo ); DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Inode Table Group Invalid - Group no %d ", GroupNo );
RC = STATUS_UNSUCCESSFUL; RC = STATUS_UNSUCCESSFUL;
try_return( RC ); try_return();
} }
// Inode numbers start at 1 and not from 0 // Inode numbers start at 1 and not from 0
@ -135,7 +135,7 @@ NTSTATUS NTAPI Ext2ReadInode (
(PVOID*)&PtrPinnedReadBuffer )) (PVOID*)&PtrPinnedReadBuffer ))
{ {
RC = STATUS_UNSUCCESSFUL; RC = STATUS_UNSUCCESSFUL;
try_return( RC ); try_return();
} }
else else
{ {
@ -736,14 +736,14 @@ NTSTATUS NTAPI Ext2WriteInode(
DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Invalid Inode no. Group no %d - too big", GroupNo ); DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Invalid Inode no. Group no %d - too big", GroupNo );
DebugTrace(DEBUG_TRACE_MISC, "Only %d groups available on disk", PtrVcb->NoOfGroups ); DebugTrace(DEBUG_TRACE_MISC, "Only %d groups available on disk", PtrVcb->NoOfGroups );
RC = STATUS_UNSUCCESSFUL; RC = STATUS_UNSUCCESSFUL;
try_return( RC ); try_return();
} }
if( PtrVcb->PtrGroupDescriptors[ GroupNo ].InodeTablesBlock == 0 ) if( PtrVcb->PtrGroupDescriptors[ GroupNo ].InodeTablesBlock == 0 )
{ {
DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Inode Table Group Invalid - Group no %d ", GroupNo ); DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Inode Table Group Invalid - Group no %d ", GroupNo );
RC = STATUS_UNSUCCESSFUL; RC = STATUS_UNSUCCESSFUL;
try_return( RC ); try_return();
} }
Index = ( InodeNo - 1 ) - ( GroupNo * PtrVcb->InodesPerGroup ); Index = ( InodeNo - 1 ) - ( GroupNo * PtrVcb->InodesPerGroup );
@ -781,7 +781,7 @@ NTSTATUS NTAPI Ext2WriteInode(
(PVOID*)&PtrPinnedBuffer ) ) (PVOID*)&PtrPinnedBuffer ) )
{ {
RC = STATUS_UNSUCCESSFUL; RC = STATUS_UNSUCCESSFUL;
try_return( RC ); try_return();
} }
else else
{ {

View file

@ -92,27 +92,27 @@ void)
// allocate memory for each of the zones and initialize the zones ... // allocate memory for each of the zones and initialize the zones ...
if (!(Ext2GlobalData.ObjectNameZone = Ext2AllocatePool(NonPagedPool, SizeOfObjectNameZone ))) { if (!(Ext2GlobalData.ObjectNameZone = Ext2AllocatePool(NonPagedPool, SizeOfObjectNameZone ))) {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
if (!(Ext2GlobalData.CCBZone = Ext2AllocatePool(NonPagedPool, SizeOfCCBZone ))) { if (!(Ext2GlobalData.CCBZone = Ext2AllocatePool(NonPagedPool, SizeOfCCBZone ))) {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
if (!(Ext2GlobalData.FCBZone = Ext2AllocatePool(NonPagedPool, SizeOfFCBZone ))) { if (!(Ext2GlobalData.FCBZone = Ext2AllocatePool(NonPagedPool, SizeOfFCBZone ))) {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
if (!(Ext2GlobalData.ByteLockZone = Ext2AllocatePool(NonPagedPool, SizeOfByteLockZone ))) { if (!(Ext2GlobalData.ByteLockZone = Ext2AllocatePool(NonPagedPool, SizeOfByteLockZone ))) {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
if (!(Ext2GlobalData.IrpContextZone = Ext2AllocatePool(NonPagedPool, SizeOfIrpContextZone ))) { if (!(Ext2GlobalData.IrpContextZone = Ext2AllocatePool(NonPagedPool, SizeOfIrpContextZone ))) {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
// initialize each of the zone headers ... // initialize each of the zone headers ...
@ -120,7 +120,7 @@ void)
Ext2QuadAlign(sizeof(Ext2ObjectName)), Ext2QuadAlign(sizeof(Ext2ObjectName)),
Ext2GlobalData.ObjectNameZone, SizeOfObjectNameZone))) { Ext2GlobalData.ObjectNameZone, SizeOfObjectNameZone))) {
// failed the initialization, leave ... // failed the initialization, leave ...
try_return(RC); try_return();
} }
if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.CCBZoneHeader), if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.CCBZoneHeader),
@ -128,7 +128,7 @@ void)
Ext2GlobalData.CCBZone, Ext2GlobalData.CCBZone,
SizeOfCCBZone))) { SizeOfCCBZone))) {
// failed the initialization, leave ... // failed the initialization, leave ...
try_return(RC); try_return();
} }
if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.FCBZoneHeader), if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.FCBZoneHeader),
@ -136,7 +136,7 @@ void)
Ext2GlobalData.FCBZone, Ext2GlobalData.FCBZone,
SizeOfFCBZone))) { SizeOfFCBZone))) {
// failed the initialization, leave ... // failed the initialization, leave ...
try_return(RC); try_return();
} }
if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.ByteLockZoneHeader), if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.ByteLockZoneHeader),
@ -144,7 +144,7 @@ void)
Ext2GlobalData.ByteLockZone, Ext2GlobalData.ByteLockZone,
SizeOfByteLockZone))) { SizeOfByteLockZone))) {
// failed the initialization, leave ... // failed the initialization, leave ...
try_return(RC); try_return();
} }
if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.IrpContextZoneHeader), if (!NT_SUCCESS(RC = ExInitializeZone(&(Ext2GlobalData.IrpContextZoneHeader),
@ -152,7 +152,7 @@ void)
Ext2GlobalData.IrpContextZone, Ext2GlobalData.IrpContextZone,
SizeOfIrpContextZone))) { SizeOfIrpContextZone))) {
// failed the initialization, leave ... // failed the initialization, leave ...
try_return(RC); try_return();
} }
try_exit: NOTHING; try_exit: NOTHING;

View file

@ -255,7 +255,7 @@ BOOLEAN FirstAttempt )
if (ReadLength == 0) if (ReadLength == 0)
{ {
// a 0 byte read can be immediately succeeded // a 0 byte read can be immediately succeeded
try_return(RC); try_return();
} }
// Is this a read of the volume itself ? // Is this a read of the volume itself ?
@ -320,7 +320,7 @@ BOOLEAN FirstAttempt )
{ {
RC = STATUS_END_OF_FILE; RC = STATUS_END_OF_FILE;
NumberBytesRead = 0; NumberBytesRead = 0;
try_return( RC ); try_return();
} }
} }
if( PagingIo || NonBufferedIo ) if( PagingIo || NonBufferedIo )
@ -332,7 +332,7 @@ BOOLEAN FirstAttempt )
PtrIrpContext, PtrIrp, PtrVCB, PtrIrpContext, PtrIrp, PtrVCB,
ByteOffset, ReadLength, SynchronousIo); ByteOffset, ReadLength, SynchronousIo);
try_return(RC); try_return();
} }
else else
{ {
@ -357,7 +357,7 @@ BOOLEAN FirstAttempt )
RC = STATUS_UNSUCCESSFUL; RC = STATUS_UNSUCCESSFUL;
NumberBytesRead = 0; NumberBytesRead = 0;
try_return( RC ); try_return();
} }
else else
{ {
@ -367,7 +367,7 @@ BOOLEAN FirstAttempt )
PtrBCB = NULL; PtrBCB = NULL;
RC = STATUS_SUCCESS; RC = STATUS_SUCCESS;
NumberBytesRead = ReadLength; NumberBytesRead = ReadLength;
try_return(RC); try_return();
} }
} }
@ -400,7 +400,7 @@ BOOLEAN FirstAttempt )
if ( ( PtrFCB->FCBFlags & EXT2_FCB_DIRECTORY ) && !PagingIo ) if ( ( PtrFCB->FCBFlags & EXT2_FCB_DIRECTORY ) && !PagingIo )
{ {
RC = STATUS_INVALID_DEVICE_REQUEST; RC = STATUS_INVALID_DEVICE_REQUEST;
try_return(RC); try_return();
} }
PtrReqdFCB = &(PtrFCB->NTRequiredFCB); PtrReqdFCB = &(PtrFCB->NTRequiredFCB);
@ -448,7 +448,7 @@ BOOLEAN FirstAttempt )
// If the flush failed, return error to the caller // If the flush failed, return error to the caller
if (!NT_SUCCESS(RC = PtrIrp->IoStatus.Status)) if (!NT_SUCCESS(RC = PtrIrp->IoStatus.Status))
{ {
try_return(RC); try_return();
} }
} }
} }
@ -573,7 +573,7 @@ BOOLEAN FirstAttempt )
NumberBytesRead = PtrIrp->IoStatus.Information; NumberBytesRead = PtrIrp->IoStatus.Information;
RC = PtrIrp->IoStatus.Status; RC = PtrIrp->IoStatus.Status;
try_return(RC); try_return();
} }
// This is a regular run-of-the-mill cached I/O request. Let the // This is a regular run-of-the-mill cached I/O request. Let the
@ -593,13 +593,13 @@ BOOLEAN FirstAttempt )
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
} }
// We have the data // We have the data
RC = PtrIrp->IoStatus.Status; RC = PtrIrp->IoStatus.Status;
NumberBytesRead = PtrIrp->IoStatus.Information; NumberBytesRead = PtrIrp->IoStatus.Information;
try_return(RC); try_return();
} }
else // NonBuffered or Paged IO else // NonBuffered or Paged IO
{ {
@ -693,7 +693,7 @@ BOOLEAN FirstAttempt )
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0); DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0);
} }
} }
@ -732,7 +732,7 @@ BOOLEAN FirstAttempt )
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0); DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0);
} }
@ -839,7 +839,7 @@ BOOLEAN FirstAttempt )
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0); DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0);
} }
@ -1146,7 +1146,7 @@ BOOLEAN FirstAttempt )
{ {
CompleteIrp = FALSE; CompleteIrp = FALSE;
} }
try_return( RC ); try_return();
} }
try_exit: NOTHING; try_exit: NOTHING;
@ -1374,7 +1374,7 @@ uint32 Length)
if (!(PtrMdl = IoAllocateMdl(PtrIrp->UserBuffer, Length, FALSE, FALSE, PtrIrp))) if (!(PtrMdl = IoAllocateMdl(PtrIrp->UserBuffer, Length, FALSE, FALSE, PtrIrp)))
{ {
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return(RC); try_return();
} }
// Probe and lock the pages described by the MDL // Probe and lock the pages described by the MDL

View file

@ -241,7 +241,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
if (WriteLength == 0) if (WriteLength == 0)
{ {
// a 0 byte write can be immediately succeeded // a 0 byte write can be immediately succeeded
try_return(RC); try_return();
} }
// Is this a write of the volume itself ? // Is this a write of the volume itself ?
@ -310,14 +310,14 @@ NTSTATUS NTAPI Ext2CommonWrite(
// //
RC = STATUS_END_OF_FILE; RC = STATUS_END_OF_FILE;
NumberBytesWritten = 0; NumberBytesWritten = 0;
try_return( RC ); try_return();
} }
} }
// Lock the callers buffer // Lock the callers buffer
if (!NT_SUCCESS(RC = Ext2LockCallersBuffer(PtrIrp, TRUE, WriteLength))) if (!NT_SUCCESS(RC = Ext2LockCallersBuffer(PtrIrp, TRUE, WriteLength)))
{ {
try_return(RC); try_return();
} }
// Forward the request to the lower level driver // Forward the request to the lower level driver
@ -337,7 +337,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
PtrIrpContext, PtrIrp, PtrVCB, PtrIrpContext, PtrIrp, PtrVCB,
ByteOffset, WriteLength, SynchronousIo ); ByteOffset, WriteLength, SynchronousIo );
try_return(RC); try_return();
} }
else else
{ {
@ -375,7 +375,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// Go ahead and complete the IRP... // Go ahead and complete the IRP...
} }
try_return(RC); try_return();
} }
@ -433,7 +433,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// Nope... User initiated directory writes are not allowed! // Nope... User initiated directory writes are not allowed!
// Fail this request... // Fail this request...
RC = STATUS_INVALID_DEVICE_REQUEST; RC = STATUS_INVALID_DEVICE_REQUEST;
try_return(RC); try_return();
} }
} }
@ -496,7 +496,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// If the flush failed, return error to the caller // If the flush failed, return error to the caller
if (!NT_SUCCESS(RC = PtrIrp->IoStatus.Status)) if (!NT_SUCCESS(RC = PtrIrp->IoStatus.Status))
{ {
try_return(RC); try_return();
} }
// Attempt the purge and ignore the return code // Attempt the purge and ignore the return code
@ -555,7 +555,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// Page request for writing outside the file... // Page request for writing outside the file...
// No op this IRP by completing it... // No op this IRP by completing it...
// //
try_return(RC); try_return();
} }
if( ByteOffset.QuadPart + WriteLength if( ByteOffset.QuadPart + WriteLength
> PtrReqdFCB->CommonFCBHeader.AllocationSize.QuadPart ) > PtrReqdFCB->CommonFCBHeader.AllocationSize.QuadPart )
@ -688,7 +688,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
NumberBytesWritten = PtrIrp->IoStatus.Information; NumberBytesWritten = PtrIrp->IoStatus.Information;
RC = PtrIrp->IoStatus.Status; RC = PtrIrp->IoStatus.Status;
try_return(RC); try_return();
} }
// This is a regular run-of-the-mill cached I/O request. Let the // This is a regular run-of-the-mill cached I/O request. Let the
@ -781,7 +781,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
Ext2DeallocateUnicodeString( &ErrorMessage ); Ext2DeallocateUnicodeString( &ErrorMessage );
RC = STATUS_INSUFFICIENT_RESOURCES; RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC ); try_return();
} }
if( ( ByteOffset.QuadPart + WriteLength ) > DirectBlockSize && if( ( ByteOffset.QuadPart + WriteLength ) > DirectBlockSize &&
@ -813,7 +813,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data", 0); DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data", 0);
} }
} }
@ -852,7 +852,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0); DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0);
} }
@ -944,7 +944,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0); DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0);
} }
@ -1055,7 +1055,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
// Mark Irp Pending ... // Mark Irp Pending ...
IoMarkIrpPending( PtrIrp ); IoMarkIrpPending( PtrIrp );
RC = STATUS_PENDING; RC = STATUS_PENDING;
try_return(RC); try_return();
DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0); DebugTrace(DEBUG_TRACE_ASYNC, "Cache read failiure while reading in volume meta data - Retrying", 0);
} }
@ -1324,7 +1324,7 @@ NTSTATUS NTAPI Ext2CommonWrite(
{ {
CompleteIrp = FALSE; CompleteIrp = FALSE;
} }
try_return( RC ); try_return();
} }
try_exit: NOTHING; try_exit: NOTHING;