modified include/reactos/probe.h
authorKJK::Hyperion <hackbunny@reactos.org>
Wed, 7 Jan 2009 09:54:13 +0000 (09:54 +0000)
committerKJK::Hyperion <hackbunny@reactos.org>
Wed, 7 Jan 2009 09:54:13 +0000 (09:54 +0000)
modified   ntoskrnl/ex/harderr.c
modified   ntoskrnl/ex/sysinfo.c
modified   ntoskrnl/ob/oblife.c
   PSEH can't make code exception-safe (yet). Add explicit "volatile"s where it might be necessary

svn path=/trunk/; revision=38621

reactos/include/reactos/probe.h
reactos/ntoskrnl/ex/harderr.c
reactos/ntoskrnl/ex/sysinfo.c
reactos/ntoskrnl/ob/oblife.c

index 4a13cd7..9ae2d37 100644 (file)
@@ -152,7 +152,7 @@ ProbeAndCaptureUnicodeString(OUT PUNICODE_STRING Dest,
                              IN const UNICODE_STRING *UnsafeSrc)
 {
     NTSTATUS Status = STATUS_SUCCESS;
-    WCHAR *Buffer = NULL;
+    WCHAR * volatile Buffer = NULL;
     ASSERT(Dest != NULL);
 
     /* Probe the structure and buffer*/
index 084295a..5098556 100644 (file)
@@ -529,7 +529,7 @@ NtRaiseHardError(IN NTSTATUS ErrorStatus,
                  OUT PULONG Response)
 {
     NTSTATUS Status = STATUS_SUCCESS;
-    PULONG_PTR SafeParams = NULL;
+    volatile PULONG_PTR SafeParams = NULL;
     ULONG SafeResponse;
     UNICODE_STRING SafeString;
     ULONG i;
index 278ecb9..aef7c72 100644 (file)
@@ -225,7 +225,7 @@ NtQuerySystemEnvironmentValue(IN PUNICODE_STRING VariableName,
     UNICODE_STRING WName;
     ARC_STATUS Result;
     PCH Value;
-    ANSI_STRING AValue;
+    volatile ANSI_STRING AValue;
     UNICODE_STRING WValue;
     KPROCESSOR_MODE PreviousMode;
     NTSTATUS Status = STATUS_SUCCESS;
@@ -703,11 +703,12 @@ QSI_DEF(SystemProcessInformation)
 {
     PSYSTEM_PROCESS_INFORMATION SpiCurrent;
     PSYSTEM_THREAD_INFORMATION ThreadInfo;
-    PEPROCESS Process = NULL, SystemProcess;
+    volatile PEPROCESS Process = NULL;
+       PEPROCESS SystemProcess;
     PETHREAD CurrentThread;
     ANSI_STRING ImageName;
     int CurrentSize, ImageNameLength = 32; // image name len in bytes
-    PLIST_ENTRY CurrentEntry;   
+    PLIST_ENTRY CurrentEntry;
     ULONG TotalSize = 0, ThreadsCount;
     ULONG TotalUser, TotalKernel;
     PUCHAR Current;
index a7153d4..5a53d48 100644 (file)
@@ -360,7 +360,7 @@ ObpCaptureObjectName(IN OUT PUNICODE_STRING CapturedName,
 {
     NTSTATUS Status = STATUS_SUCCESS;
     ULONG StringLength;
-    PWCHAR StringBuffer = NULL;
+    volatile PWCHAR StringBuffer = NULL;
     UNICODE_STRING LocalName;
     PAGED_CODE();
 
@@ -440,7 +440,7 @@ ObpCaptureObjectCreateInformation(IN POBJECT_ATTRIBUTES ObjectAttributes,
     NTSTATUS Status = STATUS_SUCCESS;
     PSECURITY_DESCRIPTOR SecurityDescriptor;
     PSECURITY_QUALITY_OF_SERVICE SecurityQos;
-    PUNICODE_STRING LocalObjectName = NULL;
+    volatile PUNICODE_STRING LocalObjectName = NULL;
     PAGED_CODE();
 
     /* Zero out the Capture Data */
@@ -1258,14 +1258,14 @@ ObpDeleteObjectType(IN PVOID Object)
 {
     ULONG i;
     POBJECT_TYPE ObjectType = (PVOID)Object;
-    
+
     /* Loop our locks */
     for (i = 0; i < 4; i++)
     {
         /* Delete each one */
         ExDeleteResourceLite(&ObjectType->ObjectLocks[i]);
     }
-    
+
     /* Delete our main mutex */
     ExDeleteResourceLite(&ObjectType->Mutex);
 }
@@ -1413,7 +1413,7 @@ NtQueryObject(IN HANDLE ObjectHandle,
     POBJECT_HANDLE_ATTRIBUTE_INFORMATION HandleFlags;
     POBJECT_BASIC_INFORMATION BasicInfo;
     ULONG InfoLength;
-    PVOID Object = NULL;
+    volatile PVOID Object = NULL;
     NTSTATUS Status = STATUS_SUCCESS;
     KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
     PAGED_CODE();