Fixed ProbeForRead* macros: make sure the data always is read while probing it
Modified: trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h

Modified: trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h
--- trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h	2005-10-27 23:31:14 UTC (rev 18816)
+++ trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h	2005-10-27 23:48:22 UTC (rev 18817)
@@ -134,7 +134,6 @@
                 else
                 {
                     /* sanitize structure */
-                    Dest->Length = 0;
                     Dest->MaximumLength = 0;
                     Dest->Buffer = NULL;
                 }
@@ -209,7 +208,7 @@
     (((ULONG_PTR)(Ptr) + sizeof(Type) - 1 < (ULONG_PTR)(Ptr) ||                \
 	 (ULONG_PTR)(Ptr) + sizeof(Type) - 1 >= (ULONG_PTR)MmUserProbeAddress) ?   \
 	     ExRaiseStatus (STATUS_ACCESS_VIOLATION), Default :                    \
-	     *(Type *)(Ptr))
+	     *(volatile Type *)(Ptr))
 
 #define ProbeForReadBoolean(Ptr) ProbeForReadGenericType(Ptr, BOOLEAN, FALSE)
 #define ProbeForReadUchar(Ptr) ProbeForReadGenericType(Ptr, UCHAR, 0)