Index: /trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h	(revision 51906)
+++ /trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h	(revision 51907)
@@ -57,4 +57,8 @@
 # define SUP_CTL_CODE_FAST(Function)            CTL_CODE(FILE_DEVICE_UNKNOWN, (Function) | SUP_IOCTL_FLAG, METHOD_NEITHER,  FILE_WRITE_ACCESS)
 # define SUP_CTL_CODE_NO_SIZE(uIOCtl)           (uIOCtl)
+
+# define SUP_NT_STATUS_BASE                     UINT32_C(0xe9860000) /**< STATUS_SEVERITY_ERROR + C-bit + facility 0x986. */
+# define SUP_NT_STATUS_IS_VBOX(a_rcNt)          ( ((uint32_t)(a_rcNt) & 0xffff0000) == SUP_NT_STATUS_BASE )
+# define SUP_NT_STATUS_TO_VBOX(a_rcNt)          ( (int)((uint32_t)(a_rcNt) | UINT32_C(0xffff0000)) )
 
 #elif defined(RT_OS_SOLARIS)
Index: /trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp	(revision 51906)
+++ /trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp	(revision 51907)
@@ -2006,6 +2006,5 @@
     {
         if (((uint32_t)rc & UINT32_C(0xffff0000)) == UINT32_C(0xffff0000))
-            return (NTSTATUS)( ((uint32_t)rc & UINT32_C(0xffff))
-                              | UINT32_C(0xe9860000) ); /* STATUS_SEVERITY_ERROR + C-bit + facility 0x986 */
+            return (NTSTATUS)( ((uint32_t)rc & UINT32_C(0xffff)) | SUP_NT_STATUS_BASE );
     }
     return STATUS_UNSUCCESSFUL;
Index: /trunk/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp	(revision 51906)
+++ /trunk/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp	(revision 51907)
@@ -181,6 +181,6 @@
                     return VERR_SUPDRV_HARDENING_EVIL_HANDLE;
                 default:
-
-                    return rcNt;
+                    if (SUP_NT_STATUS_IS_VBOX(rcNt)) /* See VBoxDrvNtErr2NtStatus. */
+                        return SUP_NT_STATUS_TO_VBOX(rcNt);
                     return VERR_VM_DRIVER_OPEN_ERROR;
             }
@@ -696,6 +696,6 @@
 
     /* See VBoxDrvNtErr2NtStatus. */
-    if (((uint32_t)rcNt & 0xffff0000) == UINT32_C(0xe9860000)) /** @todo defines for these? */
-        return (int)((uint32_t)rcNt | UINT32_C(0xffff0000));
+    if (SUP_NT_STATUS_IS_VBOX(rcNt))
+        return SUP_NT_STATUS_TO_VBOX(rcNt);
 
     /* Fall back on IPRT for the rest. */
Index: /trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp	(revision 51906)
+++ /trunk/src/VBox/HostDrivers/Support/win/SUPR3HardenedMain-win.cpp	(revision 51907)
@@ -48,4 +48,5 @@
 #include "SUPLibInternal.h"
 #include "win/SUPHardenedVerify-win.h"
+#include "../SUPDrvIOC.h"
 
 
@@ -1422,11 +1423,11 @@
     if (!NT_SUCCESS(rcNt))
     {
-        int rc;
-        if ((rcNt & UINT32_C(0xffff0000)) == 0xe9860000) /* See VBoxDrvNtErr2NtStatus. */ /** @todo #defines  for VBoxDrvNtErr2NtStatus mangling */
-            rc = (int)(rcNt | UINT32_C(0xffff0000));
+        int rc = VERR_OPEN_FAILED;
+        if (SUP_NT_STATUS_IS_VBOX(rcNt)) /* See VBoxDrvNtErr2NtStatus. */
+            rc = SUP_NT_STATUS_TO_VBOX(rcNt);
         else
             supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Driver, VERR_OPEN_FAILED,
                                   "NtCreateFile(%ls) failed: %#x\n", s_wszName, rcNt);
-        supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Driver, VERR_OPEN_FAILED,
+        supR3HardenedFatalMsg("supR3HardenedWinReSpawn", kSupInitOp_Driver, rc,
                               "NtCreateFile(%ls) failed: %Rrc (rcNt=%#x)\n", s_wszName, rc, rcNt);
     }
