- 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"?>
<!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)" />
<include base="ext2fs">inc</include>
<library>ntoskrnl</library>

View file

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

View file

@ -35,6 +35,7 @@ typedef PVOID PBCB;
#define except(x) if (0 && (x))
#define finally if (1)
#define GetExceptionInformation() 0
#define GetExceptionCode() 0
// 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 );
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);
}
try_return( RC );
try_return();
}
@ -345,7 +345,7 @@ BOOLEAN FirstAttempt )
CompleteIrp = TRUE;
}
try_return( RC );
try_return();
try_exit: NOTHING;

View file

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

View file

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

View file

@ -429,7 +429,7 @@ PtrExt2CCB PtrCCB)
{
// Read Failure
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
{
@ -694,11 +694,11 @@ PtrExt2CCB PtrCCB)
case FileFullDirectoryInformation:
// FullDirInformation->
DebugTrace(DEBUG_TRACE_DIRINFO, " === FileFullDirectoryInformation - Not handled", 0 );
try_return( RC );
try_return();
case FileNamesInformation:
// NamesInformation->
DebugTrace(DEBUG_TRACE_DIRINFO, " === FileNamesInformation - Not handled", 0 );
try_return( RC );
try_return();
default:
DebugTrace(DEBUG_TRACE_DIRINFO, " === Invalid Dir Info class - Not handled", 0 );
try_return( RC = STATUS_INVALID_INFO_CLASS );
@ -719,7 +719,7 @@ PtrExt2CCB PtrCCB)
RC = STATUS_NO_SUCH_FILE;
else
RC = STATUS_NO_MORE_FILES;
try_return( RC );
try_return();
}
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
// advisable for your driver to print an appropriate error
// message to the system error log before leaving
// try_return(RC);
// try_return();
// }
// 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()))
{
// we failed, print a message and leave ...
try_return(RC);
try_return();
}
#endif
@ -143,7 +143,7 @@ PUNICODE_STRING RegistryPath) // path to the registry key
&(Ext2GlobalData.Ext2DeviceObject))))
{
// 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(
IN PFILE_OBJECT FileObject,
PEPROCESS ProcessId,
PVOID ProcessId,
ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)

View file

@ -144,7 +144,7 @@ PIRP PtrIrp)
{
// This is not allowed. Caller must use get/set volume information instead.
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
}
// 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 );
RC = Ext2GetNetworkOpenInformation(PtrFCB, (PFILE_NETWORK_OPEN_INFORMATION)PtrSystemBuffer, &BufferLength);
// RC = STATUS_INVALID_PARAMETER;
// try_return(RC);
// try_return();
break;
#endif // _WIN32_WINNT >= 0x0400
case FileInternalInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileInternalInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
// RC = Ext2GetInternalInformation(...);
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
break;
case FileEaInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileEaInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
@ -246,7 +246,7 @@ PIRP PtrIrp)
// RC = Ext2GetFileStreamInformation(...);
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
break;
case FileAllInformation:
@ -274,11 +274,11 @@ PIRP PtrIrp)
if (!NT_SUCCESS(RC = Ext2GetBasicInformation(PtrFCB, (PFILE_BASIC_INFORMATION)&(PtrAllInfo->BasicInformation),
&BufferLength)))
{
try_return(RC);
try_return();
}
if (!NT_SUCCESS(RC = Ext2GetStandardInformation(PtrFCB, &(PtrAllInfo->StandardInformation), &BufferLength)))
{
try_return(RC);
try_return();
}
// Similarly, get all of the others ...
}
@ -291,19 +291,19 @@ PIRP PtrIrp)
case FileAlternateNameInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileAlternateNameInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
// RC = Ext2GetAltNameInformation(...);
break;
case FileCompressionInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "FileCompressionInformation requested for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
// RC = Ext2GetCompressionInformation(...);
break;
default:
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
}
// 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 );
// RC = Ext2SetEOF(...);
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
break;
case FilePositionInformation:
@ -449,7 +449,7 @@ PIRP PtrIrp)
case FileLinkInformation:
DebugTrace(DEBUG_TRACE_FILEINFO, "Attempt to set FileLinkInformation for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
// When you implement your rename/link routine, be careful to
// check the following two arguments:
// TargetFileObject = PtrIoStackLocation->Parameters.SetFile.FileObject;
@ -484,7 +484,7 @@ PIRP PtrIrp)
default:
DebugTrace(DEBUG_TRACE_FILEINFO, "Unrecoganised SetFileInformation code for %S", PtrFCB->FCBName->ObjectName.Buffer );
RC = STATUS_INVALID_PARAMETER;
try_return(RC);
try_return();
}
}
@ -934,7 +934,7 @@ PFILE_DISPOSITION_INFORMATION PtrBuffer)
// "un-delete" the file.
Ext2ClearFlag(PtrFCB->FCBFlags, EXT2_FCB_DELETE_ON_CLOSE);
PtrFileObject->DeletePending = FALSE;
try_return(RC);
try_return();
}
// 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)
{
// All done!
try_return(RC);
try_return();
}
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 (!CanWait) {
PostRequest = TRUE;
try_return(RC);
try_return();
}
// Check the type of object passed-in. That will determine the course of
@ -160,7 +160,7 @@ PIRP PtrIrp)
Ext2FlushLogicalVolume(PtrIrpContext, PtrIrp, PtrVCB);
try_return(RC);
try_return();
}
if (!(PtrFCB->FCBFlags & EXT2_FCB_DIRECTORY))

View file

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

View file

@ -76,7 +76,7 @@ NTSTATUS NTAPI Ext2PassDownMultiReadWriteIRP(
if ( !PtrSyncEvent )
{
RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC );
try_return();
}
KeInitializeEvent( PtrSyncEvent, SynchronizationEvent, FALSE );
}
@ -87,7 +87,7 @@ NTSTATUS NTAPI Ext2PassDownMultiReadWriteIRP(
if ( !PtrIoContext )
{
RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC );
try_return();
}
RtlZeroMemory( PtrIoContext, sizeof(EXT2_IO_CONTEXT) );
@ -198,13 +198,13 @@ NTSTATUS NTAPI Ext2PassDownMultiReadWriteIRP(
KeWaitForSingleObject( PtrSyncEvent,
Executive, KernelMode, FALSE, (PLARGE_INTEGER)NULL );
DbgPrint("DEADLY WAIT DONE\n");
try_return ( RC );
try_return();
}
else
{
// Asynchronous IO...
RC = STATUS_PENDING;
try_return ( RC );
try_return();
}
try_exit: NOTHING;
@ -259,7 +259,7 @@ NTSTATUS NTAPI Ext2PassDownSingleReadWriteIRP(
if ( !PtrSyncEvent )
{
RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC );
try_return();
}
KeInitializeEvent( PtrSyncEvent, SynchronizationEvent, FALSE );
}
@ -271,7 +271,7 @@ NTSTATUS NTAPI Ext2PassDownSingleReadWriteIRP(
if ( !PtrIoContext )
{
RC = STATUS_INSUFFICIENT_RESOURCES;
try_return ( RC );
try_return();
}
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, "Only %d groups available on disk", PtrVcb->NoOfGroups );
RC = STATUS_UNSUCCESSFUL;
try_return( RC );
try_return();
}
//if( PtrVcb->InodeTableBlock[ GroupNo ] == 0 )
@ -91,7 +91,7 @@ NTSTATUS NTAPI Ext2ReadInode (
{
DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Inode Table Group Invalid - Group no %d ", GroupNo );
RC = STATUS_UNSUCCESSFUL;
try_return( RC );
try_return();
}
// Inode numbers start at 1 and not from 0
@ -135,7 +135,7 @@ NTSTATUS NTAPI Ext2ReadInode (
(PVOID*)&PtrPinnedReadBuffer ))
{
RC = STATUS_UNSUCCESSFUL;
try_return( RC );
try_return();
}
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, "Only %d groups available on disk", PtrVcb->NoOfGroups );
RC = STATUS_UNSUCCESSFUL;
try_return( RC );
try_return();
}
if( PtrVcb->PtrGroupDescriptors[ GroupNo ].InodeTablesBlock == 0 )
{
DebugTrace(DEBUG_TRACE_MISC, "&&&&&& Inode Table Group Invalid - Group no %d ", GroupNo );
RC = STATUS_UNSUCCESSFUL;
try_return( RC );
try_return();
}
Index = ( InodeNo - 1 ) - ( GroupNo * PtrVcb->InodesPerGroup );
@ -781,7 +781,7 @@ NTSTATUS NTAPI Ext2WriteInode(
(PVOID*)&PtrPinnedBuffer ) )
{
RC = STATUS_UNSUCCESSFUL;
try_return( RC );
try_return();
}
else
{

View file

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

View file

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

View file

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