Index: /trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp	(revision 49854)
+++ /trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp	(revision 49855)
@@ -1039,4 +1039,13 @@
 #ifdef SUPDRV_WITH_MSR_PROBER
 
+#if 1
+/** @todo make this selectable. */
+# define AMD_MSR_PASSCODE 0x9c5a203a
+#else
+# define ASMRdMsrEx(a, b, c) ASMRdMsr(a)
+# define ASMWrMsrEx(a, b, c) ASMWrMsr(a,c)
+#endif
+
+
 /**
  * Argument package used by supdrvOSMsrProberRead and supdrvOSMsrProberWrite.
@@ -1060,5 +1069,5 @@
     __try
     {
-        pArgs->uValue = ASMRdMsr(pArgs->uMsr);
+        pArgs->uValue = ASMRdMsrEx(pArgs->uMsr, AMD_MSR_PASSCODE);
         pArgs->fGp    = false;
     }
@@ -1106,5 +1115,5 @@
     __try
     {
-        ASMWrMsr(pArgs->uMsr, pArgs->uValue);
+        ASMWrMsrEx(pArgs->uMsr, AMD_MSR_PASSCODE, pArgs->uValue);
         pArgs->fGp = false;
     }
@@ -1162,5 +1171,5 @@
     __try
     {
-        uBefore   = ASMRdMsr(uMsr);
+        uBefore   = ASMRdMsrEx(uMsr, AMD_MSR_PASSCODE);
         fBeforeGp = false;
     }
@@ -1179,5 +1188,5 @@
         __try
         {
-            ASMWrMsr(uMsr, uWritten);
+            ASMWrMsrEx(uMsr, AMD_MSR_PASSCODE, uWritten);
             fModifyGp = false;
         }
@@ -1190,5 +1199,5 @@
         __try
         {
-            uAfter   = ASMRdMsr(uMsr);
+            uAfter   = ASMRdMsrEx(uMsr, AMD_MSR_PASSCODE);
             fAfterGp = false;
         }
@@ -1201,5 +1210,5 @@
         __try
         {
-            ASMWrMsr(uMsr, uRestore);
+            ASMWrMsrEx(uMsr, AMD_MSR_PASSCODE, uRestore);
             fRestoreGp = false;
         }
