Index: /trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp	(revision 64305)
+++ /trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp	(revision 64306)
@@ -383,7 +383,7 @@
             if (SUCCEEDED(hr))
             {
-                _tprintf(_T("Driver was installed successfully!\n"));
+                _tprintf(_T("Driver was %sinstalled successfully!\n"), fInstall ? _T("") : _T("un"));
                 if (fReboot)
-                    _tprintf(_T("A reboot is needed to complete the driver (un)installation!\n"));
+                    _tprintf(_T("A reboot is needed to complete the driver %sinstallation!\n"), fInstall ? _T("") : _T("un"));
             }
         }
Index: /trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp	(revision 64305)
+++ /trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp	(revision 64306)
@@ -274,7 +274,7 @@
                  * so continue to init our own things.
                  */
-#ifdef VBOX_WITH_GUEST_BUGCHECK_DETECTION
+# ifdef VBOX_WITH_GUEST_BUGCHECK_DETECTION
                 vgdrvNtBugCheckCallback(pDevExt); /* Ignore failure! */
-#endif
+# endif
                 if (NT_SUCCESS(rc))
                 {
@@ -309,5 +309,5 @@
     return rc;
 }
-#endif /* TARGET_NT4 */
+#endif /* !TARGET_NT4 */
 
 
@@ -383,7 +383,8 @@
 #ifndef TARGET_NT4
     PIO_STACK_LOCATION  pStack  = IoGetCurrentIrpStackLocation(pIrp);
-#endif
-
-    LogFlowFuncEnter();
+    LogFlowFunc(("ENTER: pDevObj=%p pIrp=%p\n", pDevObj, pIrp));
+#else
+    LogFlowFunc(("ENTER: pDrvObj=%p pDevObj=%p pRegPath=%p\n", pDrvObj, pDevObj, pRegPath));
+#endif
 
     NTSTATUS rcNt;
@@ -464,5 +465,5 @@
          * Register DPC and ISR.
          */
-        LogFlowFunc(("Initializing DPC/ISR ...\n"));
+        LogFlowFunc(("Initializing DPC/ISR (pDevObj=%p)...\n", pDevExt->pDeviceObject));
 
         IoInitializeDpcRequest(pDevExt->pDeviceObject, vgdrvNtDpcHandler);
@@ -493,5 +494,9 @@
         if (pDevExt->interruptVector)
         {
-            LogFlowFunc(("Connecting interrupt ...\n"));
+#ifdef TARGET_NT4
+            LogFlowFunc(("Connecting interrupt (IntVector=%#u), IrqLevel=%u) ...\n", uInterruptVector, irqLevel));
+#else
+            LogFlowFunc(("Connecting interrupt (IntVector=%#u), IrqLevel=%u) ...\n", pDevExt->interruptVector, pDevExt->interruptLevel));
+#endif
 
             rcNt = IoConnectInterrupt(&pDevExt->pInterruptObject,                 /* Out: interrupt object. */
@@ -513,5 +518,5 @@
                                       FALSE);                                     /* Don't save FPU stack. */
             if (NT_ERROR(rcNt))
-                LogFunc(("Could not connect interrupt, rcNt=%#x\n", rcNt));
+                LogFunc(("Could not connect interrupt: rcNt=%#x!\n", rcNt));
         }
         else
@@ -559,4 +564,11 @@
  * Cleans up hardware resources.
  * Do not delete DevExt here.
+ *
+ * @todo r=bird: HC SVNT DRACONES!
+ *
+ *       This code leaves clients hung when vgdrvNtInit is called afterwards.
+ *       This happens when for instance hotplugging a CPU.  Problem is
+ *       vgdrvNtInit doing a full VGDrvCommonInitDevExt, orphaning all pDevExt
+ *       members, like session lists and stuff.
  *
  * @param   pDevObj     Device object.
