diff --git a/drivers/filesystems/udfs/cleanup.cpp b/drivers/filesystems/udfs/cleanup.cpp index 4f47efed57..7f45825dbe 100644 --- a/drivers/filesystems/udfs/cleanup.cpp +++ b/drivers/filesystems/udfs/cleanup.cpp @@ -45,9 +45,9 @@ UDFCleanup( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; TmPrint(("UDFCleanup\n")); @@ -127,34 +127,34 @@ UDFCommonCleanup( PtrUDFIrpContext PtrIrpContext, PIRP Irp) { - IO_STATUS_BLOCK IoStatus; - NTSTATUS RC = STATUS_SUCCESS; - NTSTATUS RC2; - PIO_STACK_LOCATION IrpSp = NULL; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - ULONG lc = 0; - BOOLEAN AcquiredVcb = FALSE; - BOOLEAN AcquiredFCB = FALSE; - BOOLEAN AcquiredParentFCB = FALSE; - -// BOOLEAN CompleteIrp = TRUE; -// BOOLEAN PostRequest = FALSE; - BOOLEAN ChangeTime = FALSE; + IO_STATUS_BLOCK IoStatus; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE NTSTATUS RC2; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE ULONG lc = 0; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredParentFCB = FALSE; + +// BOOLEAN CompleteIrp = TRUE; +// BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN ChangeTime = FALSE; #ifdef UDF_DBG - BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; #endif // UDF_DBG - BOOLEAN ForcedCleanUp = FALSE; + _SEH2_VOLATILE BOOLEAN ForcedCleanUp = FALSE; - PUDF_FILE_INFO NextFileInfo = NULL; + PUDF_FILE_INFO NextFileInfo = NULL; #ifdef UDF_DBG - UNICODE_STRING CurName; - PDIR_INDEX_HDR DirNdx; + UNICODE_STRING CurName; + _SEH2_VOLATILE PDIR_INDEX_HDR DirNdx; #endif // UDF_DBG -// PUDF_DATALOC_INFO Dloc; +// PUDF_DATALOC_INFO Dloc; TmPrint(("UDFCommonCleanup\n")); diff --git a/drivers/filesystems/udfs/close.cpp b/drivers/filesystems/udfs/close.cpp index 62f9818838..93193d9c50 100644 --- a/drivers/filesystems/udfs/close.cpp +++ b/drivers/filesystems/udfs/close.cpp @@ -64,9 +64,9 @@ UDFClose( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; AdPrint(("UDFClose: \n")); @@ -139,21 +139,21 @@ UDFCommonClose( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; -// PERESOURCE PtrResourceAcquired = NULL; - BOOLEAN AcquiredVcb = FALSE; - BOOLEAN AcquiredGD = FALSE; - PUDF_FILE_INFO fi; - ULONG i = 0; -// ULONG clean_stat = 0; - -// BOOLEAN CompleteIrp = TRUE; - BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; +// PERESOURCE PtrResourceAcquired = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredGD = FALSE; + _SEH2_VOLATILE PUDF_FILE_INFO fi; + ULONG i = 0; +// ULONG clean_stat = 0; + +// BOOLEAN CompleteIrp = TRUE; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; #ifdef UDF_DBG UNICODE_STRING CurName; @@ -404,14 +404,14 @@ UDFCleanUpFcbChain( IN BOOLEAN VcbAcquired ) { - PtrUDFFCB Fcb = NULL; - PtrUDFFCB ParentFcb = NULL; - PUDF_FILE_INFO ParentFI; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFFCB ParentFcb = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO ParentFI; UDFNTRequiredFCB* NtReqFcb; ULONG CleanCode; LONG RefCount, ComRefCount; - BOOLEAN Delete = FALSE; - ULONG ret_val = 0; + _SEH2_VOLATILE BOOLEAN Delete = FALSE; + ULONG ret_val = 0; ValidateFileInfo(fi); AdPrint(("UDFCleanUpFcbChain\n")); @@ -925,14 +925,14 @@ UDFCloseAllXXXDelayedInDir( ULONG PassedListSize = 0; PUDF_FILE_INFO* FoundList = NULL; ULONG FoundListSize = 0; - NTSTATUS RC; - ULONG i; - BOOLEAN ResAcq = FALSE; - BOOLEAN AcquiredVcb = FALSE; - UDFNTRequiredFCB* NtReqFcb; - PUDF_FILE_INFO CurFileInfo; - PFE_LIST_ENTRY CurListPtr; - PFE_LIST_ENTRY* ListPtrArray = NULL; + _SEH2_VOLATILE NTSTATUS RC; + ULONG i; + _SEH2_VOLATILE BOOLEAN ResAcq = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; + UDFNTRequiredFCB* NtReqFcb; + PUDF_FILE_INFO CurFileInfo; + _SEH2_VOLATILE PFE_LIST_ENTRY CurListPtr; + _SEH2_VOLATILE PFE_LIST_ENTRY* ListPtrArray = NULL; _SEH2_TRY { @@ -1109,9 +1109,9 @@ UDFQueueDelayedClose( ) { PtrUDFIrpContextLite IrpContextLite; - BOOLEAN StartWorker = FALSE; - _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; - NTSTATUS RC; + _SEH2_VOLATILE BOOLEAN StartWorker = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; + _SEH2_VOLATILE NTSTATUS RC; AdPrint((" UDFQueueDelayedClose\n")); diff --git a/drivers/filesystems/udfs/create.cpp b/drivers/filesystems/udfs/create.cpp index 50d7f39d32..aa63ec3e30 100644 --- a/drivers/filesystems/udfs/create.cpp +++ b/drivers/filesystems/udfs/create.cpp @@ -188,76 +188,76 @@ UDFCommonCreate( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - PIO_SECURITY_CONTEXT PtrSecurityContext = NULL; - PFILE_OBJECT PtrNewFileObject = NULL; - PFILE_OBJECT PtrRelatedFileObject = NULL; - LONGLONG AllocationSize; // if we create a new file - PFILE_FULL_EA_INFORMATION PtrExtAttrBuffer = NULL; - ULONG RequestedOptions; - ULONG RequestedDisposition; - USHORT FileAttributes; - USHORT TmpFileAttributes; - USHORT ShareAccess; - ULONG ExtAttrLength = 0; - ACCESS_MASK DesiredAccess; - PACCESS_STATE AccessState; - - PVCB Vcb = NULL; - _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; - BOOLEAN OpenExisting = FALSE; - PERESOURCE Res1 = NULL; - PERESOURCE Res2 = NULL; - PERESOURCE PagingIoRes = NULL; - -// BOOLEAN DirectoryOnlyRequested; -// BOOLEAN FileOnlyRequested; -// BOOLEAN NoBufferingSpecified; - BOOLEAN WriteThroughRequested; - BOOLEAN DeleteOnCloseSpecified; -// BOOLEAN NoExtAttrKnowledge; -// BOOLEAN CreateTreeConnection = FALSE; -// BOOLEAN OpenByFileId; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE PIO_SECURITY_CONTEXT PtrSecurityContext = NULL; + PFILE_OBJECT PtrNewFileObject = NULL; + PFILE_OBJECT PtrRelatedFileObject = NULL; + _SEH2_VOLATILE LONGLONG AllocationSize; // if we create a new file + _SEH2_VOLATILE PFILE_FULL_EA_INFORMATION PtrExtAttrBuffer = NULL; + ULONG RequestedOptions; + ULONG RequestedDisposition; + USHORT FileAttributes; + USHORT TmpFileAttributes; + USHORT ShareAccess; + ULONG ExtAttrLength = 0; + _SEH2_VOLATILE ACCESS_MASK DesiredAccess; + _SEH2_VOLATILE PACCESS_STATE AccessState; + + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; + _SEH2_VOLATILE BOOLEAN OpenExisting = FALSE; + PERESOURCE Res1 = NULL; + PERESOURCE Res2 = NULL; + PERESOURCE PagingIoRes = NULL; + +// BOOLEAN DirectoryOnlyRequested; +// BOOLEAN FileOnlyRequested; +// BOOLEAN NoBufferingSpecified; + _SEH2_VOLATILE BOOLEAN WriteThroughRequested; + _SEH2_VOLATILE BOOLEAN DeleteOnCloseSpecified; +// BOOLEAN NoExtAttrKnowledge; +// BOOLEAN CreateTreeConnection = FALSE; +// BOOLEAN OpenByFileId; // Are we dealing with a page file? - BOOLEAN PageFileManipulation; + _SEH2_VOLATILE BOOLEAN PageFileManipulation; // Is this open for a target directory (used in rename operations)? - BOOLEAN OpenTargetDirectory; + _SEH2_VOLATILE BOOLEAN OpenTargetDirectory; // Should we ignore case when attempting to locate the object? - BOOLEAN IgnoreCase; - - PtrUDFCCB PtrRelatedCCB = NULL, PtrNewCcb = NULL; - PtrUDFFCB PtrRelatedFCB = NULL, PtrNewFcb = NULL; - PtrUDFNTRequiredFCB NtReqFcb; - - ULONG ReturnedInformation = 0; - - UNICODE_STRING TargetObjectName; - UNICODE_STRING RelatedObjectName; - - UNICODE_STRING AbsolutePathName; // '\aaa\cdf\fff\rrrr.tre:s' - UNICODE_STRING LocalPath; // '\aaa\cdf' - UNICODE_STRING CurName; // 'cdf' - UNICODE_STRING TailName; // 'fff\rrrr.tre:s' - UNICODE_STRING LastGoodName; // it depends... - UNICODE_STRING LastGoodTail; // it depends... - UNICODE_STRING StreamName; // ':s' - - PUDF_FILE_INFO RelatedFileInfo; - PUDF_FILE_INFO OldRelatedFileInfo = NULL; - PUDF_FILE_INFO NewFileInfo = NULL; - PUDF_FILE_INFO LastGoodFileInfo = NULL; - PWCHAR TmpBuffer; - ULONG TreeLength = 0; -// ULONG i = 0; - - BOOLEAN StreamOpen = FALSE; - BOOLEAN StreamExists = FALSE; - BOOLEAN RestoreVCBOpenCounter = FALSE; - BOOLEAN RestoreShareAccess = FALSE; - PWCHAR TailNameBuffer = NULL; - ULONG SNameIndex = 0; + BOOLEAN IgnoreCase; + + _SEH2_VOLATILE PtrUDFCCB PtrRelatedCCB = NULL, PtrNewCcb = NULL; + PtrUDFFCB PtrRelatedFCB = NULL, PtrNewFcb = NULL; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb; + + _SEH2_VOLATILE ULONG ReturnedInformation; + + UNICODE_STRING TargetObjectName; + UNICODE_STRING RelatedObjectName; + + UNICODE_STRING AbsolutePathName; // '\aaa\cdf\fff\rrrr.tre:s' + UNICODE_STRING LocalPath; // '\aaa\cdf' + UNICODE_STRING CurName; // 'cdf' + UNICODE_STRING TailName; // 'fff\rrrr.tre:s' + UNICODE_STRING LastGoodName; // it depends... + UNICODE_STRING LastGoodTail; // it depends... + UNICODE_STRING StreamName; // ':s' + + PUDF_FILE_INFO RelatedFileInfo; + _SEH2_VOLATILE PUDF_FILE_INFO OldRelatedFileInfo = NULL; + PUDF_FILE_INFO NewFileInfo = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO LastGoodFileInfo = NULL; + _SEH2_VOLATILE PWCHAR TmpBuffer; + _SEH2_VOLATILE ULONG TreeLength = 0; +// ULONG i = 0; + + BOOLEAN StreamOpen = FALSE; + _SEH2_VOLATILE BOOLEAN StreamExists = FALSE; + _SEH2_VOLATILE BOOLEAN RestoreVCBOpenCounter = FALSE; + _SEH2_VOLATILE BOOLEAN RestoreShareAccess = FALSE; + _SEH2_VOLATILE PWCHAR TailNameBuffer = NULL; + ULONG SNameIndex = 0; TmPrint(("UDFCommonCreate:\n")); diff --git a/drivers/filesystems/udfs/devcntrl.cpp b/drivers/filesystems/udfs/devcntrl.cpp index be6b570918..74adb2ef88 100644 --- a/drivers/filesystems/udfs/devcntrl.cpp +++ b/drivers/filesystems/udfs/devcntrl.cpp @@ -82,9 +82,9 @@ UDFDeviceControl( PDEVICE_OBJECT DeviceObject, // the logical volume device object PIRP Irp) // I/O Request Packet { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; TmPrint(("UDFDeviceControl: \n")); @@ -151,25 +151,25 @@ UDFCommonDeviceControl( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; -// PIO_STACK_LOCATION PtrNextIoStackLocation = NULL; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; - BOOLEAN CompleteIrp = FALSE; - ULONG IoControlCode = 0; -// PVOID BufferPointer = NULL; - BOOLEAN AcquiredVcb = FALSE; - BOOLEAN FSDevObj; - ULONG TrackNumber; - BOOLEAN UnsafeIoctl = TRUE; - UCHAR ScsiCommand; - PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; // FSD buffer - PCDB Cdb; - PCHAR CdbData; - PCHAR ModeSelectData; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; +// PIO_STACK_LOCATION PtrNextIoStackLocation = NULL; + PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE BOOLEAN CompleteIrp = FALSE; + _SEH2_VOLATILE ULONG IoControlCode = 0; +// PVOID BufferPointer = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; + _SEH2_VOLATILE BOOLEAN FSDevObj; + _SEH2_VOLATILE ULONG TrackNumber; + _SEH2_VOLATILE BOOLEAN UnsafeIoctl = TRUE; + UCHAR ScsiCommand; + PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; // FSD buffer + _SEH2_VOLATILE PCDB Cdb; + _SEH2_VOLATILE PCHAR CdbData; + _SEH2_VOLATILE PCHAR ModeSelectData; UDFPrint(("UDFCommonDeviceControl\n")); diff --git a/drivers/filesystems/udfs/dircntrl.cpp b/drivers/filesystems/udfs/dircntrl.cpp index 26099e326a..928d9f4816 100644 --- a/drivers/filesystems/udfs/dircntrl.cpp +++ b/drivers/filesystems/udfs/dircntrl.cpp @@ -59,9 +59,9 @@ UDFDirControl( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; TmPrint(("UDFDirControl: \n")); @@ -129,13 +129,13 @@ UDFCommonDirControl( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; - BOOLEAN AcquiredVcb = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; TmPrint(("UDFCommonDirControl: \n")); // BrutePoint(); @@ -222,37 +222,37 @@ UDFQueryDirectory( PtrUDFCCB Ccb ) { - NTSTATUS RC = STATUS_SUCCESS; - BOOLEAN PostRequest = FALSE; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN CanWait = FALSE; - PVCB Vcb = NULL; - BOOLEAN AcquiredFCB = FALSE; - unsigned long BufferLength = 0; - UNICODE_STRING SearchPattern; - PUNICODE_STRING PtrSearchPattern; - FILE_INFORMATION_CLASS FileInformationClass; - BOOLEAN ReturnSingleEntry = FALSE; - PUCHAR Buffer = NULL; - BOOLEAN FirstTimeQuery = FALSE; - LONG NextMatch; - LONG PrevMatch = -1; - ULONG CurrentOffset; - ULONG BaseLength; - ULONG FileNameBytes; - ULONG Information = 0; - ULONG LastOffset = 0; - BOOLEAN AtLeastOneFound = FALSE; - PEXTENDED_IO_STACK_LOCATION pStackLocation = (PEXTENDED_IO_STACK_LOCATION) IrpSp; - PUDF_FILE_INFO DirFileInfo = NULL; - PDIR_INDEX_HDR hDirIndex = NULL; - PFILE_BOTH_DIR_INFORMATION DirInformation = NULL; // Returned from udf_info module - PFILE_BOTH_DIR_INFORMATION BothDirInformation = NULL; // Pointer in callers buffer - PFILE_NAMES_INFORMATION NamesInfo; - ULONG BytesRemainingInBuffer; - UCHAR FNM_Flags = 0; - PHASH_ENTRY cur_hashes = NULL; - PDIR_INDEX_ITEM DirNdx; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE unsigned long BufferLength = 0; + UNICODE_STRING SearchPattern; + PUNICODE_STRING PtrSearchPattern; + _SEH2_VOLATILE FILE_INFORMATION_CLASS FileInformationClass; + _SEH2_VOLATILE BOOLEAN ReturnSingleEntry = FALSE; + _SEH2_VOLATILE PUCHAR Buffer = NULL; + _SEH2_VOLATILE BOOLEAN FirstTimeQuery = FALSE; + LONG NextMatch; + _SEH2_VOLATILE LONG PrevMatch = -1; + _SEH2_VOLATILE ULONG CurrentOffset; + _SEH2_VOLATILE ULONG BaseLength; + _SEH2_VOLATILE ULONG FileNameBytes; + _SEH2_VOLATILE ULONG Information = 0; + _SEH2_VOLATILE ULONG LastOffset = 0; + _SEH2_VOLATILE BOOLEAN AtLeastOneFound = FALSE; + _SEH2_VOLATILE PEXTENDED_IO_STACK_LOCATION pStackLocation = (PEXTENDED_IO_STACK_LOCATION) IrpSp; + _SEH2_VOLATILE PUDF_FILE_INFO DirFileInfo = NULL; + _SEH2_VOLATILE PDIR_INDEX_HDR hDirIndex = NULL; + _SEH2_VOLATILE PFILE_BOTH_DIR_INFORMATION DirInformation = NULL; // Returned from udf_info module + _SEH2_VOLATILE PFILE_BOTH_DIR_INFORMATION BothDirInformation = NULL; // Pointer in callers buffer + _SEH2_VOLATILE PFILE_NAMES_INFORMATION NamesInfo; + _SEH2_VOLATILE ULONG BytesRemainingInBuffer; + _SEH2_VOLATILE UCHAR FNM_Flags = 0; + _SEH2_VOLATILE PHASH_ENTRY cur_hashes = NULL; + PDIR_INDEX_ITEM DirNdx; // do some pre-init... SearchPattern.Buffer = NULL; @@ -689,16 +689,16 @@ UDFNotifyChangeDirectory( PtrUDFCCB Ccb ) { - NTSTATUS RC = STATUS_SUCCESS; - BOOLEAN CompleteRequest = FALSE; - BOOLEAN PostRequest = FALSE; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN CanWait = FALSE; - ULONG CompletionFilter = 0; - BOOLEAN WatchTree = FALSE; - PVCB Vcb = NULL; - BOOLEAN AcquiredFCB = FALSE; - PEXTENDED_IO_STACK_LOCATION pStackLocation = (PEXTENDED_IO_STACK_LOCATION) IrpSp; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE BOOLEAN CompleteRequest = FALSE; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE ULONG CompletionFilter = 0; + _SEH2_VOLATILE BOOLEAN WatchTree = FALSE; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE PEXTENDED_IO_STACK_LOCATION pStackLocation = (PEXTENDED_IO_STACK_LOCATION) IrpSp; UDFPrint(("UDFNotifyChangeDirectory\n")); diff --git a/drivers/filesystems/udfs/env_spec.cpp b/drivers/filesystems/udfs/env_spec.cpp index 32dc56181c..c0a09ac839 100644 --- a/drivers/filesystems/udfs/env_spec.cpp +++ b/drivers/filesystems/udfs/env_spec.cpp @@ -470,8 +470,8 @@ UDFTSendIOCTL( OUT PIO_STATUS_BLOCK Iosb OPTIONAL ) { - NTSTATUS RC = STATUS_SUCCESS; - BOOLEAN Acquired; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE BOOLEAN Acquired; Acquired = UDFAcquireResourceExclusiveWithCheck(&(Vcb->IoResource)); diff --git a/drivers/filesystems/udfs/fastio.cpp b/drivers/filesystems/udfs/fastio.cpp index c80d93a498..541f2b6dac 100644 --- a/drivers/filesystems/udfs/fastio.cpp +++ b/drivers/filesystems/udfs/fastio.cpp @@ -164,14 +164,14 @@ UDFFastIoQueryBasicInfo( IN PDEVICE_OBJECT DeviceObject ) { - BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - LONG Length = sizeof(FILE_BASIC_INFORMATION); - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN MainResourceAcquired = FALSE; + _SEH2_VOLATILE BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + LONG Length = sizeof(FILE_BASIC_INFORMATION); + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN MainResourceAcquired = FALSE; FsRtlEnterFileSystem(); @@ -254,12 +254,12 @@ UDFFastIoQueryStdInfo( OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) { - BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - LONG Length = sizeof(FILE_STANDARD_INFORMATION); - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; + _SEH2_VOLATILE BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + LONG Length = sizeof(FILE_STANDARD_INFORMATION); + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; // PtrUDFNTRequiredFCB NtReqFcb = NULL; // BOOLEAN MainResourceAcquired = FALSE; @@ -605,14 +605,14 @@ UDFFastIoQueryNetInfo( OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) { - BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - LONG Length = sizeof(FILE_NETWORK_OPEN_INFORMATION); - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN MainResourceAcquired = FALSE; + _SEH2_VOLATILE BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + LONG Length = sizeof(FILE_NETWORK_OPEN_INFORMATION); + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN MainResourceAcquired = FALSE; FsRtlEnterFileSystem(); @@ -695,9 +695,9 @@ OUT PMDL* MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) { - BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; FsRtlEnterFileSystem(); @@ -751,9 +751,9 @@ IN PFILE_OBJECT FileObject, OUT PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject) { - BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; FsRtlEnterFileSystem(); @@ -810,9 +810,9 @@ UDFFastIoPrepareMdlWrite( IN PDEVICE_OBJECT DeviceObject ) { - BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; FsRtlEnterFileSystem(); @@ -866,9 +866,9 @@ IN PLARGE_INTEGER FileOffset, OUT PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject) { - BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN ReturnedStatus = FALSE; // fast i/o failed/not allowed + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; FsRtlEnterFileSystem(); diff --git a/drivers/filesystems/udfs/fileinfo.cpp b/drivers/filesystems/udfs/fileinfo.cpp index 6813150223..c91174aed4 100644 --- a/drivers/filesystems/udfs/fileinfo.cpp +++ b/drivers/filesystems/udfs/fileinfo.cpp @@ -48,9 +48,9 @@ UDFFileInfo( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; TmPrint(("UDFFileInfo: \n")); @@ -116,23 +116,23 @@ UDFCommonFileInfo( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN MainResourceAcquired = FALSE; - BOOLEAN ParentResourceAcquired = FALSE; - BOOLEAN PagingIoResourceAcquired = FALSE; - PVOID PtrSystemBuffer = NULL; - LONG BufferLength = 0; - FILE_INFORMATION_CLASS FunctionalityRequested; - BOOLEAN CanWait = FALSE; - BOOLEAN PostRequest = FALSE; - BOOLEAN AcquiredVcb = FALSE; - PIRP TopIrp; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN MainResourceAcquired = FALSE; + _SEH2_VOLATILE BOOLEAN ParentResourceAcquired = FALSE; + _SEH2_VOLATILE BOOLEAN PagingIoResourceAcquired = FALSE; + _SEH2_VOLATILE PVOID PtrSystemBuffer = NULL; + LONG BufferLength = 0; + _SEH2_VOLATILE FILE_INFORMATION_CLASS FunctionalityRequested; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; + _SEH2_VOLATILE PIRP TopIrp; TmPrint(("UDFCommonFileInfo: irp %x\n", Irp)); @@ -536,9 +536,9 @@ UDFGetBasicInformation( IN OUT LONG* PtrReturnedLength ) { - NTSTATUS RC = STATUS_SUCCESS; - PUDF_FILE_INFO FileInfo; - PDIR_INDEX_ITEM DirNdx; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo; + _SEH2_VOLATILE PDIR_INDEX_ITEM DirNdx; AdPrint(("UDFGetBasicInformation: \n")); @@ -617,8 +617,8 @@ UDFGetStandardInformation( IN OUT LONG* PtrReturnedLength ) { - NTSTATUS RC = STATUS_SUCCESS; - PUDF_FILE_INFO FileInfo; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo; // PVCB Vcb; AdPrint(("UDFGetStandardInformation: \n")); @@ -679,8 +679,8 @@ UDFGetNetworkInformation( IN OUT PLONG PtrReturnedLength ) { - NTSTATUS RC = STATUS_SUCCESS; - PUDF_FILE_INFO FileInfo; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo; AdPrint(("UDFGetNetworkInformation: \n")); @@ -752,9 +752,9 @@ UDFGetInternalInformation( IN OUT PLONG PtrReturnedLength ) { - NTSTATUS RC = STATUS_SUCCESS; - PUDF_FILE_INFO FileInfo; - PVCB Vcb; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo; + _SEH2_VOLATILE PVCB Vcb; AdPrint(("UDFGetInternalInformation\n")); @@ -805,7 +805,7 @@ UDFGetEaInformation( IN OUT PLONG PtrReturnedLength ) { - NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; AdPrint(("UDFGetEaInformation\n")); @@ -933,16 +933,16 @@ UDFGetFileStreamInformation( IN OUT PLONG PtrReturnedLength ) { - NTSTATUS RC = STATUS_SUCCESS; - PUDF_FILE_INFO FileInfo; - PUDF_FILE_INFO SDirInfo; - PVCB Vcb; - BOOLEAN FcbAcquired = FALSE; - uint_di i; - LONG l; - PDIR_INDEX_HDR hSDirIndex; - PDIR_INDEX_ITEM SDirIndex; - PFILE_BOTH_DIR_INFORMATION NTFileInfo = NULL; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo; + _SEH2_VOLATILE PUDF_FILE_INFO SDirInfo; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE BOOLEAN FcbAcquired = FALSE; + _SEH2_VOLATILE uint_di i; + LONG l; + _SEH2_VOLATILE PDIR_INDEX_HDR hSDirIndex; + _SEH2_VOLATILE PDIR_INDEX_ITEM SDirIndex; + _SEH2_VOLATILE PFILE_BOTH_DIR_INFORMATION NTFileInfo = NULL; AdPrint(("UDFGetFileStreamInformation\n")); @@ -1016,7 +1016,7 @@ UDFSetBasicInformation( IN PFILE_OBJECT FileObject, IN PFILE_BASIC_INFORMATION PtrBuffer) { - NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; ULONG NotifyFilter = 0; AdPrint(("UDFSetBasicInformation\n")); @@ -1140,12 +1140,12 @@ UDFMarkStreamsForDeletion( IN BOOLEAN ForDel ) { - NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; PUDF_FILE_INFO SDirInfo = NULL; PUDF_FILE_INFO FileInfo = NULL; ULONG lc; - BOOLEAN SDirAcq = FALSE; - BOOLEAN StrAcq = FALSE; + _SEH2_VOLATILE BOOLEAN SDirAcq = FALSE; + _SEH2_VOLATILE BOOLEAN StrAcq = FALSE; uint_di d,i; _SEH2_TRY { @@ -1345,7 +1345,7 @@ UDFSetDispositionInformation( IN BOOLEAN Delete ) { - NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; // PUDF_FILE_INFO SDirInfo = NULL; // PUDF_FILE_INFO FileInfo = NULL; ULONG lc; @@ -1461,11 +1461,11 @@ UDFSetAllocationInformation( IN PFILE_ALLOCATION_INFORMATION PtrBuffer ) { - NTSTATUS RC = STATUS_SUCCESS; - BOOLEAN TruncatedFile = FALSE; - BOOLEAN ModifiedAllocSize = FALSE; - BOOLEAN CacheMapInitialized = FALSE; - BOOLEAN AcquiredPagingIo = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE BOOLEAN TruncatedFile = FALSE; + _SEH2_VOLATILE BOOLEAN ModifiedAllocSize = FALSE; + _SEH2_VOLATILE BOOLEAN CacheMapInitialized = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredPagingIo = FALSE; AdPrint(("UDFSetAllocationInformation\n")); @@ -1634,16 +1634,16 @@ UDFSetEOF( IN PFILE_END_OF_FILE_INFORMATION PtrBuffer ) { - NTSTATUS RC = STATUS_SUCCESS; - BOOLEAN TruncatedFile = FALSE; - BOOLEAN ModifiedAllocSize = FALSE; - ULONG Attr; - PDIR_INDEX_ITEM DirNdx; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - LONGLONG OldFileSize; -// BOOLEAN ZeroBlock; - BOOLEAN CacheMapInitialized = FALSE; - BOOLEAN AcquiredPagingIo = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE BOOLEAN TruncatedFile = FALSE; + _SEH2_VOLATILE BOOLEAN ModifiedAllocSize = FALSE; + ULONG Attr; + _SEH2_VOLATILE PDIR_INDEX_ITEM DirNdx; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + LONGLONG OldFileSize; +// BOOLEAN ZeroBlock; + _SEH2_VOLATILE BOOLEAN CacheMapInitialized = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredPagingIo = FALSE; AdPrint(("UDFSetEOF\n")); @@ -1967,37 +1967,37 @@ UDFRename( ) { // Source Directory - PFILE_OBJECT DirObject1 = FileObject1->RelatedFileObject; + _SEH2_VOLATILE PFILE_OBJECT DirObject1 = FileObject1->RelatedFileObject; // Target Directory - PFILE_OBJECT DirObject2 = PtrSp->Parameters.SetFile.FileObject; + _SEH2_VOLATILE PFILE_OBJECT DirObject2 = PtrSp->Parameters.SetFile.FileObject; // Overwite Flag BOOLEAN Replace = PtrSp->Parameters.SetFile.ReplaceIfExists && PtrBuffer->ReplaceIfExists; NTSTATUS RC; - PVCB Vcb = Fcb1->Vcb; - PtrUDFFCB Fcb2; - BOOLEAN ic; + _SEH2_VOLATILE PVCB Vcb = Fcb1->Vcb; + _SEH2_VOLATILE PtrUDFFCB Fcb2; + _SEH2_VOLATILE BOOLEAN ic; BOOLEAN AcquiredVcb = TRUE; BOOLEAN AcquiredVcbEx = FALSE; BOOLEAN AcquiredDir1 = FALSE; BOOLEAN AcquiredFcb1 = FALSE; BOOLEAN SingleDir = TRUE; - BOOLEAN UseClose; + _SEH2_VOLATILE BOOLEAN UseClose; - PUDF_FILE_INFO File1; - PUDF_FILE_INFO Dir1; - PUDF_FILE_INFO Dir2; - PUDF_FILE_INFO NextFileInfo, fi; + _SEH2_VOLATILE PUDF_FILE_INFO File1; + _SEH2_VOLATILE PUDF_FILE_INFO Dir1; + _SEH2_VOLATILE PUDF_FILE_INFO Dir2; + _SEH2_VOLATILE PUDF_FILE_INFO NextFileInfo, fi; UNICODE_STRING NewName; UNICODE_STRING LocalPath; - PtrUDFCCB CurCcb = NULL; - PLIST_ENTRY Link; + _SEH2_VOLATILE PtrUDFCCB CurCcb = NULL; + _SEH2_VOLATILE PLIST_ENTRY Link; ULONG i; ULONG DirRefCount; ULONG FileInfoRefCount; ULONG Attr; - PDIR_INDEX_ITEM DirNdx; + _SEH2_VOLATILE PDIR_INDEX_ITEM DirNdx; AdPrint(("UDFRename %8.8x\n", DirObject2)); @@ -2500,13 +2500,13 @@ UDFHardLink( ) { // Target Directory - PFILE_OBJECT DirObject2 = PtrSp->Parameters.SetFile.FileObject; + _SEH2_VOLATILE PFILE_OBJECT DirObject2 = PtrSp->Parameters.SetFile.FileObject; // Overwite Flag BOOLEAN Replace = PtrSp->Parameters.SetFile.ReplaceIfExists && PtrBuffer->ReplaceIfExists; - NTSTATUS RC; - PVCB Vcb = Fcb1->Vcb; - PtrUDFFCB Fcb2; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE PVCB Vcb = Fcb1->Vcb; + _SEH2_VOLATILE PtrUDFFCB Fcb2; BOOLEAN ic; BOOLEAN AcquiredVcb = TRUE; BOOLEAN AcquiredVcbEx = FALSE; @@ -2514,9 +2514,9 @@ UDFHardLink( BOOLEAN AcquiredFcb1 = FALSE; BOOLEAN SingleDir = TRUE; - PUDF_FILE_INFO File1; - PUDF_FILE_INFO Dir1 = NULL; - PUDF_FILE_INFO Dir2; + _SEH2_VOLATILE PUDF_FILE_INFO File1; + _SEH2_VOLATILE PUDF_FILE_INFO Dir1 = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO Dir2; UNICODE_STRING NewName; UNICODE_STRING LocalPath; diff --git a/drivers/filesystems/udfs/flush.cpp b/drivers/filesystems/udfs/flush.cpp index a7cdb9fbdf..ca1f91d049 100644 --- a/drivers/filesystems/udfs/flush.cpp +++ b/drivers/filesystems/udfs/flush.cpp @@ -43,9 +43,9 @@ UDFFlush( PDEVICE_OBJECT DeviceObject, // the logical volume device object PIRP Irp) // I/O Request Packet { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("UDFFlush: \n")); @@ -112,17 +112,17 @@ UDFCommonFlush( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN AcquiredVCB = FALSE; - BOOLEAN AcquiredFCB = FALSE; - BOOLEAN PostRequest = FALSE; - BOOLEAN CanWait = TRUE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredVCB = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN CanWait = TRUE; UDFPrint(("UDFCommonFlush: \n")); @@ -292,9 +292,9 @@ UDFFlushAFile( IN ULONG FlushFlags ) { - BOOLEAN SetArchive = FALSE; + _SEH2_VOLATILE BOOLEAN SetArchive = FALSE; // BOOLEAN PurgeCache = FALSE; - ULONG ret_val = 0; + _SEH2_VOLATILE ULONG ret_val = 0; UDFPrint(("UDFFlushAFile: \n")); if(!Fcb) @@ -421,9 +421,9 @@ UDFFlushADirectory( { UDFPrint(("UDFFlushADirectory: \n")); // PDIR_INDEX_HDR hDI; - PDIR_INDEX_ITEM DI; + _SEH2_VOLATILE PDIR_INDEX_ITEM DI; // BOOLEAN Referenced = FALSE; - ULONG ret_val = 0; + _SEH2_VOLATILE ULONG ret_val = 0; if(Vcb->VCBFlags & UDF_VCB_FLAGS_RAW_DISK) return 0; @@ -510,7 +510,7 @@ UDFFlushLogicalVolume( IN ULONG FlushFlags ) { - ULONG ret_val = 0; + _SEH2_VOLATILE ULONG ret_val = 0; #ifndef UDF_READ_ONLY_BUILD IO_STATUS_BLOCK IoStatus; diff --git a/drivers/filesystems/udfs/fscntrl.cpp b/drivers/filesystems/udfs/fscntrl.cpp index de0d89d904..c0e15e8cef 100644 --- a/drivers/filesystems/udfs/fscntrl.cpp +++ b/drivers/filesystems/udfs/fscntrl.cpp @@ -41,9 +41,9 @@ UDFFSControl( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("\nUDFFSControl: \n\n")); @@ -105,9 +105,9 @@ UDFCommonFSControl( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_UNRECOGNIZED_VOLUME; - PIO_STACK_LOCATION IrpSp = NULL; -// PDEVICE_OBJECT PtrTargetDeviceObject = NULL; + _SEH2_VOLATILE NTSTATUS RC = STATUS_UNRECOGNIZED_VOLUME; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; +// PDEVICE_OBJECT PtrTargetDeviceObject = NULL; UDFPrint(("\nUDFCommonFSControl\n\n")); // BrutePoint(); @@ -317,31 +317,31 @@ UDFMountVolume( IN PIRP Irp ) { - NTSTATUS RC; - PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp); - PDEVICE_OBJECT TargetDeviceObject = NULL; - PFILTER_DEV_EXTENSION filterDevExt; - PDEVICE_OBJECT fsDeviceObject; - PVPB Vpb = IrpSp->Parameters.MountVolume.Vpb; - PVCB Vcb = NULL; -// PVCB OldVcb = NULL; - PDEVICE_OBJECT VolDo = NULL; - IO_STATUS_BLOCK Iosb; - ULONG MediaChangeCount = 0; - ULONG Characteristics; - DEVICE_TYPE FsDeviceType; - BOOLEAN RestoreDoVerify = FALSE; - BOOLEAN WrongMedia = FALSE; - BOOLEAN RemovableMedia = TRUE; - BOOLEAN CompleteIrp = FALSE; - ULONG Mode; - TEST_UNIT_READY_USER_OUT TestUnitReadyBuffer; - ULONG i; - LARGE_INTEGER delay; - BOOLEAN VcbAcquired = FALSE; - BOOLEAN DeviceNotTouched = TRUE; - BOOLEAN Locked = FALSE; - int8* ioBuf = NULL; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp); + PDEVICE_OBJECT TargetDeviceObject = NULL; + _SEH2_VOLATILE PFILTER_DEV_EXTENSION filterDevExt; + _SEH2_VOLATILE PDEVICE_OBJECT fsDeviceObject; + _SEH2_VOLATILE PVPB Vpb = IrpSp->Parameters.MountVolume.Vpb; + _SEH2_VOLATILE PVCB Vcb = NULL; +// PVCB OldVcb = NULL; + PDEVICE_OBJECT VolDo = NULL; + IO_STATUS_BLOCK Iosb; + ULONG MediaChangeCount = 0; + ULONG Characteristics; + _SEH2_VOLATILE DEVICE_TYPE FsDeviceType; + _SEH2_VOLATILE BOOLEAN RestoreDoVerify = FALSE; + _SEH2_VOLATILE BOOLEAN WrongMedia = FALSE; + _SEH2_VOLATILE BOOLEAN RemovableMedia = TRUE; + _SEH2_VOLATILE BOOLEAN CompleteIrp = FALSE; + ULONG Mode; + TEST_UNIT_READY_USER_OUT TestUnitReadyBuffer; + ULONG i; + LARGE_INTEGER delay; + _SEH2_VOLATILE BOOLEAN VcbAcquired = FALSE; + _SEH2_VOLATILE BOOLEAN DeviceNotTouched = TRUE; + _SEH2_VOLATILE BOOLEAN Locked = FALSE; + int8* ioBuf = NULL; ASSERT(IrpSp); UDFPrint(("\n !!! UDFMountVolume\n")); @@ -1662,12 +1662,12 @@ UDFIsPathnameValid( IN PIRP Irp ) { - PEXTENDED_IO_STACK_LOCATION IrpSp = (PEXTENDED_IO_STACK_LOCATION)IoGetCurrentIrpStackLocation( Irp ); - NTSTATUS RC; - PPATHNAME_BUFFER PathnameBuffer; - UNICODE_STRING PathName; - UNICODE_STRING CurName; - PWCHAR TmpBuffer; + _SEH2_VOLATILE PEXTENDED_IO_STACK_LOCATION IrpSp = (PEXTENDED_IO_STACK_LOCATION)IoGetCurrentIrpStackLocation( Irp ); + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE PPATHNAME_BUFFER PathnameBuffer; + UNICODE_STRING PathName; + UNICODE_STRING CurName; + _SEH2_VOLATILE PWCHAR TmpBuffer; UDFPrint(("UDFIsPathnameValid\n")); @@ -1727,15 +1727,15 @@ UDFLockVolume( IN ULONG PID ) { - NTSTATUS RC; + _SEH2_VOLATILE NTSTATUS RC; KIRQL SavedIrql; - PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); - PVCB Vcb; - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; - BOOLEAN VcbAcquired = FALSE; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; + _SEH2_VOLATILE BOOLEAN VcbAcquired = FALSE; UDFPrint(("UDFLockVolume: PID %x\n", PID)); @@ -1862,14 +1862,14 @@ UDFUnlockVolume( IN ULONG PID ) { - NTSTATUS RC = STATUS_INVALID_PARAMETER; + _SEH2_VOLATILE NTSTATUS RC = STATUS_INVALID_PARAMETER; KIRQL SavedIrql; - PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); - PVCB Vcb; - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; UDFPrint(("UDFUnlockVolume: PID %x\n", PID)); @@ -1944,15 +1944,15 @@ UDFDismountVolume( IN PIRP Irp ) { - NTSTATUS RC; + _SEH2_VOLATILE NTSTATUS RC; - PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); - PVCB Vcb; - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; - PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; - BOOLEAN VcbAcquired = FALSE; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; + _SEH2_VOLATILE PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; + _SEH2_VOLATILE BOOLEAN VcbAcquired = FALSE; UDFPrint(("\n ### UDFDismountVolume ###\n\n")); @@ -2073,12 +2073,12 @@ UDFGetVolumeBitmap( { // NTSTATUS RC; - PEXTENDED_IO_STACK_LOCATION IrpSp = + _SEH2_VOLATILE PEXTENDED_IO_STACK_LOCATION IrpSp = (PEXTENDED_IO_STACK_LOCATION)IoGetCurrentIrpStackLocation( Irp ); - PVCB Vcb; - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; UDFPrint(("UDFGetVolumeBitmap\n")); @@ -2208,21 +2208,21 @@ UDFGetRetrievalPointers( IN ULONG Special ) { - NTSTATUS RC; + _SEH2_VOLATILE NTSTATUS RC; - PEXTENDED_IO_STACK_LOCATION IrpSp = + _SEH2_VOLATILE PEXTENDED_IO_STACK_LOCATION IrpSp = (PEXTENDED_IO_STACK_LOCATION)IoGetCurrentIrpStackLocation( Irp ); - PVCB Vcb; - PtrUDFFCB Fcb; - PtrUDFCCB Ccb; - PUDF_FILE_INFO FileInfo; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE PtrUDFFCB Fcb; + _SEH2_VOLATILE PtrUDFCCB Ccb; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo; - ULONG InputBufferLength; - ULONG OutputBufferLength; + _SEH2_VOLATILE ULONG InputBufferLength; + _SEH2_VOLATILE ULONG OutputBufferLength; - PRETRIEVAL_POINTERS_BUFFER OutputBuffer; - PSTARTING_VCN_INPUT_BUFFER InputBuffer; + _SEH2_VOLATILE PRETRIEVAL_POINTERS_BUFFER OutputBuffer; + _SEH2_VOLATILE PSTARTING_VCN_INPUT_BUFFER InputBuffer; LARGE_INTEGER StartingVcn; int64 AllocationSize; diff --git a/drivers/filesystems/udfs/lockctrl.cpp b/drivers/filesystems/udfs/lockctrl.cpp index cbebb0f8d6..9ce7724b20 100644 --- a/drivers/filesystems/udfs/lockctrl.cpp +++ b/drivers/filesystems/udfs/lockctrl.cpp @@ -39,9 +39,9 @@ UDFLockControl( IN PDEVICE_OBJECT DeviceObject, // the logical volume device object IN PIRP Irp) // I/O Request Packet { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("UDFLockControl\n")); // BrutePoint(); @@ -106,17 +106,17 @@ UDFCommonLockControl( IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - //IO_STATUS_BLOCK LocalIoStatus; -// BOOLEAN CompleteRequest = FALSE; - BOOLEAN PostRequest = FALSE; - BOOLEAN CanWait = FALSE; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN AcquiredFCB = FALSE; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + //IO_STATUS_BLOCK LocalIoStatus; +// BOOLEAN CompleteRequest = FALSE; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE; + PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; UDFPrint(("UDFCommonLockControl\n")); @@ -214,11 +214,11 @@ UDFFastLock ( IN PDEVICE_OBJECT DeviceObject ) { - BOOLEAN Results = FALSE; + _SEH2_VOLATILE BOOLEAN Results = FALSE; -// BOOLEAN AcquiredFCB = FALSE; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; +// BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; UDFPrint(("UDFFastLock\n")); // Decode the type of file object we're being asked to process and make @@ -317,11 +317,11 @@ UDFFastUnlockSingle( ) { - BOOLEAN Results = FALSE; + _SEH2_VOLATILE BOOLEAN Results = FALSE; -// BOOLEAN AcquiredFCB = FALSE; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; +// BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; UDFPrint(("UDFFastUnlockSingle\n")); // Decode the type of file object we're being asked to process and make @@ -409,11 +409,11 @@ UDFFastUnlockAll( ) { - BOOLEAN Results = FALSE; + _SEH2_VOLATILE BOOLEAN Results = FALSE; -// BOOLEAN AcquiredFCB = FALSE; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; +// BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; UDFPrint(("UDFFastUnlockAll\n")); @@ -500,11 +500,11 @@ UDFFastUnlockAllByKey( ) { - BOOLEAN Results = FALSE; + _SEH2_VOLATILE BOOLEAN Results = FALSE; -// BOOLEAN AcquiredFCB = FALSE; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; +// BOOLEAN AcquiredFCB = FALSE; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; UDFPrint(("UDFFastUnlockAllByKey\n")); diff --git a/drivers/filesystems/udfs/misc.cpp b/drivers/filesystems/udfs/misc.cpp index c9285c5edc..003f66b753 100644 --- a/drivers/filesystems/udfs/misc.cpp +++ b/drivers/filesystems/udfs/misc.cpp @@ -40,13 +40,13 @@ NTSTATUS UDFInitializeZones(VOID) { - NTSTATUS RC = STATUS_SUCCESS; - uint32 SizeOfZone = UDFGlobalData.DefaultZoneSizeInNumStructs; - uint32 SizeOfObjectNameZone = 0; - uint32 SizeOfCCBZone = 0; -// uint32 SizeOfFCBZone = 0; - uint32 SizeOfIrpContextZone = 0; -// uint32 SizeOfFileInfoZone = 0; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE uint32 SizeOfZone = UDFGlobalData.DefaultZoneSizeInNumStructs; + _SEH2_VOLATILE uint32 SizeOfObjectNameZone = 0; + _SEH2_VOLATILE uint32 SizeOfCCBZone = 0; +// uint32 SizeOfFCBZone = 0; + _SEH2_VOLATILE uint32 SizeOfIrpContextZone = 0; +// uint32 SizeOfFileInfoZone = 0; _SEH2_TRY { @@ -1209,13 +1209,13 @@ UDFCommonDispatch( IN PVOID Context // actually is a pointer to IRPContext structure ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - PIRP Irp = NULL; - PVCB Vcb; - KIRQL SavedIrql; - PLIST_ENTRY Entry; - BOOLEAN SpinLock = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE PIRP Irp = NULL; + _SEH2_VOLATILE PVCB Vcb; + KIRQL SavedIrql; + _SEH2_VOLATILE PLIST_ENTRY Entry; + _SEH2_VOLATILE BOOLEAN SpinLock = FALSE; // The context must be a pointer to an IrpContext structure PtrIrpContext = (PtrUDFIrpContext)Context; @@ -1414,19 +1414,19 @@ UDFInitializeVCB( IN PVPB PtrVPB ) { - NTSTATUS RC = STATUS_SUCCESS; - PVCB Vcb = NULL; - SHORT i; - - BOOLEAN VCBResourceInit = FALSE; - BOOLEAN BitMapResource1Init = FALSE; - BOOLEAN FcbListResourceInit = FALSE; - BOOLEAN FileIdResourceInit = FALSE; - BOOLEAN DlocResourceInit = FALSE; - BOOLEAN DlocResource2Init = FALSE; - BOOLEAN FlushResourceInit = FALSE; - BOOLEAN PreallocResourceInit= FALSE; - BOOLEAN IoResourceInit = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE SHORT i; + + _SEH2_VOLATILE BOOLEAN VCBResourceInit = FALSE; + _SEH2_VOLATILE BOOLEAN BitMapResource1Init = FALSE; + _SEH2_VOLATILE BOOLEAN FcbListResourceInit = FALSE; + _SEH2_VOLATILE BOOLEAN FileIdResourceInit = FALSE; + _SEH2_VOLATILE BOOLEAN DlocResourceInit = FALSE; + _SEH2_VOLATILE BOOLEAN DlocResource2Init = FALSE; + _SEH2_VOLATILE BOOLEAN FlushResourceInit = FALSE; + _SEH2_VOLATILE BOOLEAN PreallocResourceInit= FALSE; + _SEH2_VOLATILE BOOLEAN IoResourceInit = FALSE; Vcb = (PVCB)(PtrVolumeDeviceObject->DeviceExtension); @@ -2230,19 +2230,19 @@ UDFRegCheckParameterValue( IN ULONG DefValue ) { - NTSTATUS status; + _SEH2_VOLATILE NTSTATUS status; - ULONG val = DefValue; + ULONG val = DefValue; - UNICODE_STRING paramStr; - UNICODE_STRING defaultParamStr; - UNICODE_STRING paramPathUnknownStr; + UNICODE_STRING paramStr; + UNICODE_STRING defaultParamStr; + UNICODE_STRING paramPathUnknownStr; - UNICODE_STRING paramSuffix; - UNICODE_STRING paramPath; - UNICODE_STRING paramPathUnknown; - UNICODE_STRING paramDevPath; - UNICODE_STRING defaultParamPath; + UNICODE_STRING paramSuffix; + UNICODE_STRING paramPath; + UNICODE_STRING paramPathUnknown; + UNICODE_STRING paramDevPath; + UNICODE_STRING defaultParamPath; _SEH2_TRY { diff --git a/drivers/filesystems/udfs/pnp.cpp b/drivers/filesystems/udfs/pnp.cpp index fd22d04da6..ffb1971c40 100644 --- a/drivers/filesystems/udfs/pnp.cpp +++ b/drivers/filesystems/udfs/pnp.cpp @@ -83,9 +83,9 @@ UDFPnp ( IN PIRP Irp ) { - NTSTATUS RC; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel; UDFPrint(("UDFPnp\n")); ASSERT(FALSE); @@ -147,9 +147,9 @@ UDFCommonPnp ( IN PIRP Irp ) { - NTSTATUS RC; - PIO_STACK_LOCATION IrpSp; - PVCB Vcb; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp; + _SEH2_VOLATILE PVCB Vcb; UDFPrint(("UDFCommonPnp\n")); _SEH2_TRY { @@ -238,12 +238,12 @@ UDFPnpQueryRemove( PVCB Vcb ) { - NTSTATUS RC; + _SEH2_VOLATILE NTSTATUS RC; KEVENT Event; - BOOLEAN VcbDeleted = FALSE; - BOOLEAN GlobalHeld = FALSE; - BOOLEAN VcbAcquired = FALSE; - PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; + _SEH2_VOLATILE BOOLEAN VcbDeleted = FALSE; + _SEH2_VOLATILE BOOLEAN GlobalHeld = FALSE; + _SEH2_VOLATILE BOOLEAN VcbAcquired = FALSE; + _SEH2_VOLATILE PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; // Having said yes to a QUERY, any communication with the // underlying storage stack is undefined (and may block) @@ -383,10 +383,10 @@ UDFPnpRemove ( PVCB Vcb ) { - NTSTATUS RC; + _SEH2_VOLATILE NTSTATUS RC; KEVENT Event; - BOOLEAN VcbDeleted; - BOOLEAN VcbAcquired; + _SEH2_VOLATILE BOOLEAN VcbDeleted; + _SEH2_VOLATILE BOOLEAN VcbAcquired; PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; // REMOVE - a storage device is now gone. We either got @@ -535,10 +535,10 @@ Return Value: --*/ { - NTSTATUS RC; + _SEH2_VOLATILE NTSTATUS RC; KEVENT Event; - BOOLEAN VcbDeleted; - BOOLEAN VcbAcquired; + _SEH2_VOLATILE BOOLEAN VcbDeleted; + _SEH2_VOLATILE BOOLEAN VcbAcquired; PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; // SURPRISE - a device was physically yanked away without diff --git a/drivers/filesystems/udfs/read.cpp b/drivers/filesystems/udfs/read.cpp index 27dff60e46..7b29e5431d 100644 --- a/drivers/filesystems/udfs/read.cpp +++ b/drivers/filesystems/udfs/read.cpp @@ -54,9 +54,9 @@ UDFRead( PDEVICE_OBJECT DeviceObject, // the logical volume device object PIRP Irp) // I/O Request Packet { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; TmPrint(("UDFRead: \n")); @@ -121,8 +121,8 @@ UDFPostStackOverflowRead( IN PtrUDFFCB Fcb ) { - PKEVENT Event; - PERESOURCE Resource; + _SEH2_VOLATILE PKEVENT Event; + _SEH2_VOLATILE PERESOURCE Resource; UDFPrint(("Getting too close to stack limit pass request to Fsp\n")); @@ -187,8 +187,8 @@ UDFStackOverflowRead( IN PKEVENT Event ) { - PtrUDFIrpContext PtrIrpContext = (PtrUDFIrpContext)Context; - NTSTATUS RC; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = (PtrUDFIrpContext)Context; + _SEH2_VOLATILE NTSTATUS RC; UDFPrint(("UDFStackOverflowRead: \n")); // Make it now look like we can wait for I/O to complete @@ -231,31 +231,31 @@ UDFCommonRead( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - LARGE_INTEGER ByteOffset; - ULONG ReadLength = 0, TruncatedLength = 0; - SIZE_T NumberBytesRead = 0; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - PERESOURCE PtrResourceAcquired = NULL; - PERESOURCE PtrResourceAcquired2 = NULL; - PVOID SystemBuffer = NULL; - PIRP TopIrp; -// uint32 KeyValue = 0; - - ULONG Res1Acq = 0; - ULONG Res2Acq = 0; - - BOOLEAN CacheLocked = FALSE; - - BOOLEAN CanWait = FALSE; - BOOLEAN PagingIo = FALSE; - BOOLEAN NonBufferedIo = FALSE; - BOOLEAN SynchronousIo = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + LARGE_INTEGER ByteOffset; + ULONG ReadLength = 0, TruncatedLength = 0; + SIZE_T NumberBytesRead = 0; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + PERESOURCE PtrResourceAcquired = NULL; + PERESOURCE PtrResourceAcquired2 = NULL; + _SEH2_VOLATILE PVOID SystemBuffer = NULL; + _SEH2_VOLATILE PIRP TopIrp; +// uint32 KeyValue = 0; + + ULONG Res1Acq = 0; + ULONG Res2Acq = 0; + + _SEH2_VOLATILE BOOLEAN CacheLocked = FALSE; + + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE BOOLEAN PagingIo = FALSE; + _SEH2_VOLATILE BOOLEAN NonBufferedIo = FALSE; + _SEH2_VOLATILE BOOLEAN SynchronousIo = FALSE; TmPrint(("UDFCommonRead: irp %x\n", Irp)); @@ -940,8 +940,8 @@ UDFLockCallersBuffer( uint32 Length ) { - NTSTATUS RC = STATUS_SUCCESS; - PMDL PtrMdl = NULL; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PMDL PtrMdl = NULL; UDFPrint(("UDFLockCallersBuffer: \n")); @@ -1037,7 +1037,7 @@ UDFUnlockCallersBuffer( PVOID SystemBuffer ) { - NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; UDFPrint(("UDFUnlockCallersBuffer: \n")); diff --git a/drivers/filesystems/udfs/secursup.cpp b/drivers/filesystems/udfs/secursup.cpp index a69e5f4456..bbf94a8761 100644 --- a/drivers/filesystems/udfs/secursup.cpp +++ b/drivers/filesystems/udfs/secursup.cpp @@ -58,9 +58,9 @@ UDFGetSecurity( IN PDEVICE_OBJECT DeviceObject, // the logical volume device object IN PIRP Irp) // I/O Request Packet { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("UDFGetSecurity\n")); // BrutePoint(); @@ -125,17 +125,17 @@ UDFCommonGetSecurity( IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - BOOLEAN PostRequest = FALSE; - BOOLEAN CanWait = FALSE; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN AcquiredFCB = FALSE; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVOID PtrSystemBuffer = NULL; - ULONG BufferLength = 0; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE; + PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + PVOID PtrSystemBuffer = NULL; + _SEH2_VOLATILE ULONG BufferLength = 0; UDFPrint(("UDFCommonGetSecurity\n")); @@ -237,9 +237,9 @@ UDFSetSecurity( IN PDEVICE_OBJECT DeviceObject, // the logical volume device object IN PIRP Irp) // I/O Request Packet { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("UDFSetSecurity\n")); // BrutePoint(); @@ -303,16 +303,16 @@ UDFCommonSetSecurity( IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - BOOLEAN PostRequest = FALSE; - BOOLEAN CanWait = FALSE; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - BOOLEAN AcquiredFCB = FALSE; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - ACCESS_MASK DesiredAccess = 0; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE; + PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE ACCESS_MASK DesiredAccess = 0; UDFPrint(("UDFCommonSetSecurity\n")); @@ -424,12 +424,12 @@ UDFReadSecurity( ) { #ifdef UDF_ENABLE_SECURITY - PUDF_FILE_INFO FileInfo = NULL; - PUDF_FILE_INFO SDirInfo = NULL; - PUDF_FILE_INFO AclInfo = NULL; - NTSTATUS RC; - ULONG NumberBytesRead; - PERESOURCE Res1 = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO SDirInfo = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO AclInfo = NULL; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE ULONG NumberBytesRead; + _SEH2_VOLATILE PERESOURCE Res1 = NULL; UDFPrint(("UDFReadSecurity\n")); @@ -527,10 +527,10 @@ UDFConvertToSelfRelative( IN OUT PSECURITY_DESCRIPTOR* SecurityDesc ) { - NTSTATUS RC; - SECURITY_INFORMATION SecurityInformation; - PSECURITY_DESCRIPTOR NewSD; - ULONG Len; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE SECURITY_INFORMATION SecurityInformation; + _SEH2_VOLATILE PSECURITY_DESCRIPTOR NewSD; + _SEH2_VOLATILE ULONG Len; UDFPrint((" UDFConvertToSelfRelative\n")); @@ -565,9 +565,9 @@ UDFInheritAcl( IN OUT PSECURITY_DESCRIPTOR* SecurityDesc ) { - NTSTATUS RC; - SECURITY_INFORMATION SecurityInformation; - ULONG Len; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE SECURITY_INFORMATION SecurityInformation; + _SEH2_VOLATILE ULONG Len; UDFPrint((" UDFInheritAcl\n")); @@ -800,12 +800,12 @@ UDFWriteSecurity( ) { #ifdef UDF_ENABLE_SECURITY - PUDF_FILE_INFO FileInfo = NULL; - PUDF_FILE_INFO SDirInfo = NULL; - PUDF_FILE_INFO AclInfo = NULL; - PERESOURCE Res1 = NULL; - NTSTATUS RC; - ULONG NumberBytesRead; + _SEH2_VOLATILE PUDF_FILE_INFO FileInfo = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO SDirInfo = NULL; + _SEH2_VOLATILE PUDF_FILE_INFO AclInfo = NULL; + _SEH2_VOLATILE PERESOURCE Res1 = NULL; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE ULONG NumberBytesRead; // UDFPrint(("UDFWriteSecurity\n")); diff --git a/drivers/filesystems/udfs/shutdown.cpp b/drivers/filesystems/udfs/shutdown.cpp index 10216f069a..42a0e39574 100644 --- a/drivers/filesystems/udfs/shutdown.cpp +++ b/drivers/filesystems/udfs/shutdown.cpp @@ -49,9 +49,9 @@ UDFShutdown( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("UDFShutDown\n")); // BrutePoint(); @@ -117,11 +117,11 @@ UDFCommonShutdown( PIRP Irp ) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - PVCB Vcb; - PLIST_ENTRY Link; - PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE PLIST_ENTRY Link; + _SEH2_VOLATILE PPREVENT_MEDIA_REMOVAL_USER_IN Buf = NULL; LARGE_INTEGER delay; UDFPrint(("UDFCommonShutdown\n")); @@ -196,7 +196,8 @@ UDFCommonShutdown( // Acquire Vcb resource UDFAcquireResourceExclusive(&(Vcb->VCBResource), TRUE); - ASSERT(!Vcb->OverflowQueueCount); + UDFPrint("Vcb->OverflowQueueCount is TRUE.\n"); +// ASSERT(!Vcb->OverflowQueueCount); if(!(Vcb->VCBFlags & UDF_VCB_FLAGS_SHUTDOWN)) { diff --git a/drivers/filesystems/udfs/udf_info/mount.cpp b/drivers/filesystems/udfs/udf_info/mount.cpp index 3d6520e1f6..d5f66943c7 100644 --- a/drivers/filesystems/udfs/udf_info/mount.cpp +++ b/drivers/filesystems/udfs/udf_info/mount.cpp @@ -2365,11 +2365,11 @@ UDFProcessSequence( OUT lb_addr *fileset ) { - OSSTATUS RC = STATUS_SUCCESS; - int8* Buf = (int8*)MyAllocatePool__(NonPagedPool,Vcb->BlockSize); - UDF_VDS_RECORD vds[VDS_POS_LENGTH]; + _SEH2_VOLATILE OSSTATUS RC = STATUS_SUCCESS; + int8* Buf = (int8*)MyAllocatePool__(NonPagedPool,Vcb->BlockSize); + UDF_VDS_RECORD vds[VDS_POS_LENGTH]; // GenericDesc *gd; - uint32 i,j; + _SEH2_VOLATILE uint32 i,j; uint16 ident; int8* Buf2 = NULL; @@ -2466,11 +2466,11 @@ UDFVerifySequence( OUT lb_addr *fileset ) { - OSSTATUS RC = STATUS_SUCCESS; - int8* Buf = (int8*)MyAllocatePool__(NonPagedPool,Vcb->BlockSize); - UDF_VDS_RECORD vds[VDS_POS_LENGTH]; + _SEH2_VOLATILE OSSTATUS RC = STATUS_SUCCESS; + int8* Buf = (int8*)MyAllocatePool__(NonPagedPool,Vcb->BlockSize); + UDF_VDS_RECORD vds[VDS_POS_LENGTH]; // GenericDesc *gd; - uint32 i,j; + _SEH2_VOLATILE uint32 i,j; uint16 ident; int8* Buf2 = NULL; @@ -2985,10 +2985,10 @@ UDFGetDiskInfoAndVerify( IN PVCB Vcb // Volume control block from this DevObj ) { - OSSTATUS RC = STATUS_UNRECOGNIZED_VOLUME; - uint32 NSRDesc; - lb_addr fileset; - PFILE_SET_DESC FileSetDesc = NULL; + _SEH2_VOLATILE OSSTATUS RC = STATUS_UNRECOGNIZED_VOLUME; + _SEH2_VOLATILE uint32 NSRDesc; + lb_addr fileset; + _SEH2_VOLATILE PFILE_SET_DESC FileSetDesc = NULL; int8* Buf = NULL; SIZE_T ReadBytes; diff --git a/drivers/filesystems/udfs/udf_info/phys_eject.cpp b/drivers/filesystems/udfs/udf_info/phys_eject.cpp index cd863a669b..8ba8b53a02 100644 --- a/drivers/filesystems/udfs/udf_info/phys_eject.cpp +++ b/drivers/filesystems/udfs/udf_info/phys_eject.cpp @@ -31,30 +31,30 @@ UDFEjectReqWaiter( IN void* Context ) { - PUDFEjectWaitContext WC = (PUDFEjectWaitContext)Context; - PVCB Vcb; - OSSTATUS RC = STATUS_SUCCESS; - OSSTATUS WRC; + _SEH2_VOLATILE PUDFEjectWaitContext WC = (PUDFEjectWaitContext)Context; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE OSSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE OSSTATUS WRC; LARGE_INTEGER delay; LARGE_INTEGER time; - BOOLEAN UseEvent = TRUE; - uint32 d; - BOOLEAN FlushWCache = FALSE; + _SEH2_VOLATILE BOOLEAN UseEvent = TRUE; + _SEH2_VOLATILE uint32 d; + _SEH2_VOLATILE BOOLEAN FlushWCache = FALSE; IO_STATUS_BLOCK IoStatus; - BOOLEAN VcbAcquired; - BOOLEAN AllFlushed; - PDEVICE_OBJECT TargetDevObj; - uint32 BM_FlushPriod; - uint32 Tree_FlushPriod; - uint32 SkipCount = 0; - uint32 SkipEjectCount = 0; - uint32 flags = 0; - uint32 flush_stat = 0; - BOOLEAN UseEject = TRUE; - BOOLEAN MediaLoss = FALSE; - - BOOLEAN SkipEject = FALSE; - BOOLEAN SkipFlush = FALSE; + _SEH2_VOLATILE BOOLEAN VcbAcquired; + _SEH2_VOLATILE BOOLEAN AllFlushed; + _SEH2_VOLATILE PDEVICE_OBJECT TargetDevObj; + _SEH2_VOLATILE uint32 BM_FlushPriod; + _SEH2_VOLATILE uint32 Tree_FlushPriod; + _SEH2_VOLATILE uint32 SkipCount = 0; + _SEH2_VOLATILE uint32 SkipEjectCount = 0; + _SEH2_VOLATILE uint32 flags = 0; + _SEH2_VOLATILE uint32 flush_stat = 0; + _SEH2_VOLATILE BOOLEAN UseEject = TRUE; + _SEH2_VOLATILE BOOLEAN MediaLoss = FALSE; + + _SEH2_VOLATILE BOOLEAN SkipEject = FALSE; + _SEH2_VOLATILE BOOLEAN SkipFlush = FALSE; // BOOLEAN FlushAndEject = FALSE; diff --git a/drivers/filesystems/udfs/udf_info/remap.cpp b/drivers/filesystems/udfs/udf_info/remap.cpp index 8799db227f..60c7319aa5 100644 --- a/drivers/filesystems/udfs/udf_info/remap.cpp +++ b/drivers/filesystems/udfs/udf_info/remap.cpp @@ -55,10 +55,10 @@ UDFVInit( IN PVCB Vcb ) { - PUDF_VERIFY_CTX VerifyCtx = &Vcb->VerifyCtx; - uint32 i; - OSSTATUS status = STATUS_SUCCESS; - BOOLEAN res_inited = FALSE; + _SEH2_VOLATILE PUDF_VERIFY_CTX VerifyCtx = &Vcb->VerifyCtx; + _SEH2_VOLATILE uint32 i; + _SEH2_VOLATILE OSSTATUS status = STATUS_SUCCESS; + _SEH2_VOLATILE BOOLEAN res_inited = FALSE; if(VerifyCtx->VInited) { UDFPrint(("Already inited\n")); diff --git a/drivers/filesystems/udfs/udfinit.cpp b/drivers/filesystems/udfs/udfinit.cpp index 4eaa1c9645..18d9bc3f6a 100644 --- a/drivers/filesystems/udfs/udfinit.cpp +++ b/drivers/filesystems/udfs/udfinit.cpp @@ -89,19 +89,19 @@ DriverEntry( PUNICODE_STRING RegistryPath // path to the registry key ) { - NTSTATUS RC = STATUS_SUCCESS; - UNICODE_STRING DriverDeviceName; - UNICODE_STRING unicodeDeviceName; -// BOOLEAN RegisteredShutdown = FALSE; - BOOLEAN InternalMMInitialized = FALSE; -// BOOLEAN DLDetectInitialized = FALSE; -// ULONG CdRomNumber; -// CCHAR deviceNameBuffer[MAXIMUM_FILENAME_LENGTH]; -// ANSI_STRING deviceName; -// UNICODE_STRING unicodeCdRomDeviceName; - PUDFFS_DEV_EXTENSION FSDevExt; - HKEY hUdfRootKey; - LARGE_INTEGER delay; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + UNICODE_STRING DriverDeviceName; + UNICODE_STRING unicodeDeviceName; +// BOOLEAN RegisteredShutdown = FALSE; + _SEH2_VOLATILE BOOLEAN InternalMMInitialized = FALSE; +// BOOLEAN DLDetectInitialized = FALSE; +// ULONG CdRomNumber; +// CCHAR deviceNameBuffer[MAXIMUM_FILENAME_LENGTH]; +// ANSI_STRING deviceName; +// UNICODE_STRING unicodeCdRomDeviceName; + _SEH2_VOLATILE PUDFFS_DEV_EXTENSION FSDevExt; + HKEY hUdfRootKey; + LARGE_INTEGER delay; // UDFPrint(("UDF: Entered " VER_STR_PRODUCT_NAME " UDF DriverEntry \n")); // UDFPrint((KD_PREFIX "Build " VER_STR_PRODUCT "\n")); @@ -635,12 +635,12 @@ UDFDismountDevice( PUNICODE_STRING unicodeCdRomDeviceName ) { - NTSTATUS RC; + _SEH2_VOLATILE NTSTATUS RC; IO_STATUS_BLOCK IoStatus; HANDLE NtFileHandle = (HANDLE)-1; OBJECT_ATTRIBUTES ObjectAttributes; NOTIFY_MEDIA_CHANGE_USER_IN buffer = { 0 }; - PFILE_FS_ATTRIBUTE_INFORMATION Buffer; + _SEH2_VOLATILE PFILE_FS_ATTRIBUTE_INFORMATION Buffer; _SEH2_TRY { diff --git a/drivers/filesystems/udfs/verfysup.cpp b/drivers/filesystems/udfs/verfysup.cpp index f5c882afd8..e1ab702ce7 100644 --- a/drivers/filesystems/udfs/verfysup.cpp +++ b/drivers/filesystems/udfs/verfysup.cpp @@ -159,15 +159,15 @@ UDFVerifyVolume( IN PIRP Irp ) { - PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); - PVPB Vpb = IrpSp->Parameters.VerifyVolume.Vpb; - PVCB Vcb = (PVCB)IrpSp->Parameters.VerifyVolume.DeviceObject->DeviceExtension; - PVCB NewVcb = NULL; - IO_STATUS_BLOCK Iosb; - ULONG MediaChangeCount = 0; - NTSTATUS RC; - ULONG Mode; - BOOLEAN UnsafeIoctl = (Vcb->VCBFlags & UDF_VCB_FLAGS_UNSAFE_IOCTL) ? TRUE : FALSE; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); + _SEH2_VOLATILE PVPB Vpb = IrpSp->Parameters.VerifyVolume.Vpb; + _SEH2_VOLATILE PVCB Vcb = (PVCB)IrpSp->Parameters.VerifyVolume.DeviceObject->DeviceExtension; + _SEH2_VOLATILE PVCB NewVcb = NULL; + IO_STATUS_BLOCK Iosb; + ULONG MediaChangeCount = 0; + _SEH2_VOLATILE NTSTATUS RC; + _SEH2_VOLATILE ULONG Mode; + _SEH2_VOLATILE BOOLEAN UnsafeIoctl = (Vcb->VCBFlags & UDF_VCB_FLAGS_UNSAFE_IOCTL) ? TRUE : FALSE; // Update the real device in the IrpContext from the Vpb. There was no available // file object when the IrpContext was created. @@ -476,9 +476,9 @@ UDFPerformVerify( ) { - PVCB Vcb; - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp; UDFPrint(("UDFPerformVerify:\n")); if(!IrpContext) return STATUS_INVALID_PARAMETER; diff --git a/drivers/filesystems/udfs/volinfo.cpp b/drivers/filesystems/udfs/volinfo.cpp index 7d7d98e415..65a9d1fb08 100644 --- a/drivers/filesystems/udfs/volinfo.cpp +++ b/drivers/filesystems/udfs/volinfo.cpp @@ -88,9 +88,9 @@ UDFQueryVolInfo( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("UDFQueryVolInfo: \n")); @@ -151,16 +151,16 @@ UDFCommonQueryVolInfo( PIRP Irp ) { - NTSTATUS RC = STATUS_INVALID_PARAMETER; - PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); + _SEH2_VOLATILE NTSTATUS RC = STATUS_INVALID_PARAMETER; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); ULONG Length; - BOOLEAN CanWait = FALSE; - PVCB Vcb; - BOOLEAN PostRequest = FALSE; - BOOLEAN AcquiredVCB = FALSE; - PFILE_OBJECT FileObject = NULL; -// PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredVCB = FALSE; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; +// PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; _SEH2_TRY { @@ -619,9 +619,9 @@ UDFSetVolInfo( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; UDFPrint(("UDFSetVolInfo: \n")); @@ -668,16 +668,16 @@ UDFCommonSetVolInfo( PIRP Irp ) { - NTSTATUS RC = STATUS_INVALID_PARAMETER; - PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); + _SEH2_VOLATILE NTSTATUS RC = STATUS_INVALID_PARAMETER; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); ULONG Length; - BOOLEAN CanWait = FALSE; - PVCB Vcb; - BOOLEAN PostRequest = FALSE; - BOOLEAN AcquiredVCB = FALSE; - PFILE_OBJECT FileObject = NULL; -// PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE PVCB Vcb; + _SEH2_VOLATILE BOOLEAN PostRequest = FALSE; + _SEH2_VOLATILE BOOLEAN AcquiredVCB = FALSE; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; +// PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; _SEH2_TRY { diff --git a/drivers/filesystems/udfs/write.cpp b/drivers/filesystems/udfs/write.cpp index 2314d2682c..4a1cdb4cce 100644 --- a/drivers/filesystems/udfs/write.cpp +++ b/drivers/filesystems/udfs/write.cpp @@ -44,9 +44,9 @@ UDFWrite( PIRP Irp // I/O Request Packet ) { - NTSTATUS RC = STATUS_SUCCESS; - PtrUDFIrpContext PtrIrpContext = NULL; - BOOLEAN AreWeTopLevel = FALSE; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PtrUDFIrpContext PtrIrpContext = NULL; + _SEH2_VOLATILE BOOLEAN AreWeTopLevel = FALSE; TmPrint(("UDFWrite: , thrd:%8.8x\n",PsGetCurrentThread())); @@ -113,22 +113,22 @@ UDFCommonWrite( PtrUDFIrpContext PtrIrpContext, PIRP Irp) { - NTSTATUS RC = STATUS_SUCCESS; - PIO_STACK_LOCATION IrpSp = NULL; - LARGE_INTEGER ByteOffset; - ULONG WriteLength = 0, TruncatedLength = 0; - SIZE_T NumberBytesWritten = 0; - PFILE_OBJECT FileObject = NULL; - PtrUDFFCB Fcb = NULL; - PtrUDFCCB Ccb = NULL; - PVCB Vcb = NULL; - PtrUDFNTRequiredFCB NtReqFcb = NULL; - PERESOURCE PtrResourceAcquired = NULL; - PERESOURCE PtrResourceAcquired2 = NULL; - PVOID SystemBuffer = NULL; -// PVOID TmpBuffer = NULL; -// uint32 KeyValue = 0; - PIRP TopIrp; + _SEH2_VOLATILE NTSTATUS RC = STATUS_SUCCESS; + _SEH2_VOLATILE PIO_STACK_LOCATION IrpSp = NULL; + LARGE_INTEGER ByteOffset; + _SEH2_VOLATILE ULONG WriteLength = 0, TruncatedLength = 0; + SIZE_T NumberBytesWritten = 0; + _SEH2_VOLATILE PFILE_OBJECT FileObject = NULL; + _SEH2_VOLATILE PtrUDFFCB Fcb = NULL; + _SEH2_VOLATILE PtrUDFCCB Ccb = NULL; + _SEH2_VOLATILE PVCB Vcb = NULL; + _SEH2_VOLATILE PtrUDFNTRequiredFCB NtReqFcb = NULL; + PERESOURCE PtrResourceAcquired = NULL; + PERESOURCE PtrResourceAcquired2 = NULL; + PVOID SystemBuffer = NULL; +// PVOID TmpBuffer = NULL; +// uint32 KeyValue = 0; + _SEH2_VOLATILE PIRP TopIrp; LONGLONG ASize; LONGLONG OldVDL; @@ -136,20 +136,20 @@ UDFCommonWrite( ULONG Res1Acq = 0; ULONG Res2Acq = 0; - BOOLEAN CacheLocked = FALSE; - - BOOLEAN CanWait = FALSE; - BOOLEAN PagingIo = FALSE; - BOOLEAN NonBufferedIo = FALSE; - BOOLEAN SynchronousIo = FALSE; - BOOLEAN IsThisADeferredWrite = FALSE; - BOOLEAN WriteToEOF = FALSE; - BOOLEAN Resized = FALSE; - BOOLEAN RecursiveWriteThrough = FALSE; - BOOLEAN WriteFileSizeToDirNdx = FALSE; - BOOLEAN ZeroBlock = FALSE; - BOOLEAN VcbAcquired = FALSE; - BOOLEAN ZeroBlockDone = FALSE; + _SEH2_VOLATILE BOOLEAN CacheLocked = FALSE; + + _SEH2_VOLATILE BOOLEAN CanWait = FALSE; + _SEH2_VOLATILE BOOLEAN PagingIo = FALSE; + _SEH2_VOLATILE BOOLEAN NonBufferedIo = FALSE; + _SEH2_VOLATILE BOOLEAN SynchronousIo = FALSE; + _SEH2_VOLATILE BOOLEAN IsThisADeferredWrite = FALSE; + _SEH2_VOLATILE BOOLEAN WriteToEOF = FALSE; + _SEH2_VOLATILE BOOLEAN Resized = FALSE; + _SEH2_VOLATILE BOOLEAN RecursiveWriteThrough = FALSE; + _SEH2_VOLATILE BOOLEAN WriteFileSizeToDirNdx = FALSE; + _SEH2_VOLATILE BOOLEAN ZeroBlock = FALSE; + _SEH2_VOLATILE BOOLEAN VcbAcquired = FALSE; + _SEH2_VOLATILE BOOLEAN ZeroBlockDone = FALSE; TmPrint(("UDFCommonWrite: irp %x\n", Irp)); @@ -1078,9 +1078,9 @@ UDFPurgeCacheEx_( PFILE_OBJECT FileObject ) { - ULONG Off_l; + _SEH2_VOLATILE ULONG Off_l; #ifdef USE_CcCopyWrite_TO_ZERO - ULONG PgLen; + _SEH2_VOLATILE ULONG PgLen; #endif //USE_CcCopyWrite_TO_ZERO // We'll just purge cache section here,