Index: /trunk/src/VBox/Runtime/r0drv/nt/initterm-r0drv-nt.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/nt/initterm-r0drv-nt.cpp	(revision 19974)
+++ /trunk/src/VBox/Runtime/r0drv/nt/initterm-r0drv-nt.cpp	(revision 19975)
@@ -92,5 +92,5 @@
     ULONG MinorVersion = 0;
     ULONG BuildNumber  = 0;
-    PsGetVersion(&MajorVersion, &MinorVersion, &BuildNumber, NULL);
+    BOOLEAN fChecked = PsGetVersion(&MajorVersion, &MinorVersion, &BuildNumber, NULL);
 
     KIRQL OldIrql;
@@ -136,10 +136,10 @@
             g_offrtNtPbDpcQueueDepth = 0x1f00 + 0x18;
         }
-        /** @todo proper detection! */
-        else if (pbPrcb[0x3375] <= 1)
+        else if (   BuildNumber == 6000                         /* Vista/AMD64 */
+                 && !memcmp(&pbPrcb[0x38bc], &u.szVendor[0], 4*3))
         {
             g_offrtNtPbQuantumEnd    = 0x3375;
             g_cbrtNtPbQuantumEnd     = 1;
-            g_offrtNtPbDpcQueueDepth = 0;
+            g_offrtNtPbDpcQueueDepth = 0x3300 + 0x18;
         }
 
@@ -148,5 +148,5 @@
 #endif
     }
-    __except(EXCEPTION_EXECUTE_HANDLER)
+    __except(EXCEPTION_EXECUTE_HANDLER) /** @todo this handler doesn't seem to work... */
     {
         g_offrtNtPbQuantumEnd    = 0;
@@ -159,5 +159,12 @@
 #ifndef IN_GUEST /** @todo fix above for all Nt versions. */
     if (!g_offrtNtPbQuantumEnd && !g_offrtNtPbDpcQueueDepth)
-        DbgPrint("IPRT: Neither _KPRCB::QuantumEnd nor _KPRCB::DpcQueueDepth was not found!\n");
+        DbgPrint("IPRT: Neither _KPRCB::QuantumEnd nor _KPRCB::DpcQueueDepth was not found! Kernel %u.%u %u %s\n",
+                 MajorVersion, MinorVersion, BuildNumber, fChecked ? "checked" : "free");
+# ifdef DEBUG
+    else
+        DbgPrint("IPRT: _KPRCB:{.QuantumEnd=%x/%d, .DpcQueueDepth=%x/%d} Kernel %ul.%ul %ul %s\n",
+                 g_offrtNtPbQuantumEnd, g_cbrtNtPbQuantumEnd, g_offrtNtPbDpcQueueDepth,
+                 MajorVersion, MinorVersion, BuildNumber, fChecked ? "checked" : "free");
+# endif
 #endif
 
