Index: /trunk/src/VBox/ValidationKit/testdriver/vbox.py
===================================================================
--- /trunk/src/VBox/ValidationKit/testdriver/vbox.py	(revision 61951)
+++ /trunk/src/VBox/ValidationKit/testdriver/vbox.py	(revision 61952)
@@ -763,4 +763,7 @@
             if sErrId == 'HostMemoryLow':
                 oSession.signalHostMemoryLow();
+                if sys.platform == 'win32':
+                    from testdriver import winbase;
+                    winbase.logMemoryStats();
             oSession.signalTask();
         self.oVBoxMgr.interruptWaitEvents();
Index: /trunk/src/VBox/ValidationKit/testdriver/winbase.py
===================================================================
--- /trunk/src/VBox/ValidationKit/testdriver/winbase.py	(revision 61951)
+++ /trunk/src/VBox/ValidationKit/testdriver/winbase.py	(revision 61952)
@@ -32,5 +32,6 @@
 
 # Standard Python imports.
-import os
+import os;
+import ctypes;
 
 # Windows specific imports.
@@ -232,2 +233,41 @@
     return True;
 
+#
+# Misc
+#
+
+def logMemoryStats():
+    """
+    Logs windows memory stats.
+    """
+    class MemoryStatusEx(ctypes.Structure):
+        """ MEMORYSTATUSEX """
+        kaFields = [
+            ( 'dwLength',                    ctypes.c_ulong ),
+            ( 'dwMemoryLoad',                ctypes.c_ulong ),
+            ( 'ullTotalPhys',                ctypes.c_ulonglong ),
+            ( 'ullAvailPhys',                ctypes.c_ulonglong ),
+            ( 'ullTotalPageFile',            ctypes.c_ulonglong ),
+            ( 'ullAvailPageFile',            ctypes.c_ulonglong ),
+            ( 'ullTotalVirtual',             ctypes.c_ulonglong ),
+            ( 'ullAvailVirtual',             ctypes.c_ulonglong ),
+            ( 'ullAvailExtendedVirtual',     ctypes.c_ulonglong ),
+        ];
+        _fields_ = kaFields; # pylint: disable=invalid-name
+
+        def __init__(self):
+            super(MemoryStatusEx, self).__init__();
+            self.dwLength = ctypes.sizeof(self);
+
+    try:
+        oStats = MemoryStatusEx();
+        ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(oStats));
+    except:
+        reporter.logXcpt();
+        return False;
+
+    reporter.log('Memory statistics:');
+    for sField, _ in MemoryStatusEx.kaFields:
+        reporter.log('  %32s: %s' % (sField, getattr(oStats, sField)));
+    return True;
+
