Index: trunk/src/VBox/HostDrivers/Support/SUPDrv.c
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPDrv.c	(revision 34959)
+++ trunk/src/VBox/HostDrivers/Support/SUPDrv.c	(revision 34972)
@@ -1595,100 +1595,4 @@
         }
 
-        case SUP_CTL_CODE_NO_SIZE(SUP_IOCTL_SEM_CREATE):
-        {
-            /* validate */
-            PSUPSEMCREATE pReq = (PSUPSEMCREATE)pReqHdr;
-            REQ_CHECK_SIZES_EX(SUP_IOCTL_SEM_CREATE, SUP_IOCTL_SEM_CREATE_SIZE_IN, SUP_IOCTL_SEM_CREATE_SIZE_OUT);
-
-            /* execute */
-            switch (pReq->u.In.uType)
-            {
-                case SUP_SEM_TYPE_EVENT:
-                {
-                    SUPSEMEVENT hEvent;
-                    pReq->Hdr.rc = SUPSemEventCreate(pSession, &hEvent);
-                    pReq->u.Out.hSem = (uint32_t)(uintptr_t)hEvent;
-                    break;
-                }
-
-                case SUP_SEM_TYPE_EVENT_MULTI:
-                {
-                    SUPSEMEVENTMULTI hEventMulti;
-                    pReq->Hdr.rc = SUPSemEventMultiCreate(pSession, &hEventMulti);
-                    pReq->u.Out.hSem = (uint32_t)(uintptr_t)hEventMulti;
-                    break;
-                }
-
-                default:
-                    pReq->Hdr.rc = VERR_INVALID_PARAMETER;
-                    break;
-            }
-            VBOXDRV_SUPDRV_IOCTL_RETURN(pSession, uIOCtl, pReqHdr, VINF_SUCCESS, pReq->Hdr.rc);
-            return 0;
-        }
-
-        case SUP_CTL_CODE_NO_SIZE(SUP_IOCTL_SEM_OP):
-        {
-            /* validate */
-            PSUPSEMOP pReq = (PSUPSEMOP)pReqHdr;
-            REQ_CHECK_SIZES_EX(SUP_IOCTL_SEM_OP, SUP_IOCTL_SEM_OP_SIZE_IN, SUP_IOCTL_SEM_OP_SIZE_OUT);
-
-            /* execute */
-            switch (pReq->u.In.uType)
-            {
-                case SUP_SEM_TYPE_EVENT:
-                {
-                    SUPSEMEVENT hEvent = (SUPSEMEVENT)(uintptr_t)pReq->u.In.hSem;
-                    switch (pReq->u.In.uOp)
-                    {
-                        case SUPSEMOP_WAIT:
-                            pReq->Hdr.rc = SUPSemEventWaitNoResume(pSession, hEvent, pReq->u.In.cMillies);
-                            break;
-                        case SUPSEMOP_SIGNAL:
-                            pReq->Hdr.rc = SUPSemEventSignal(pSession, hEvent);
-                            break;
-                        case SUPSEMOP_CLOSE:
-                            pReq->Hdr.rc = SUPSemEventClose(pSession, hEvent);
-                            break;
-                        case SUPSEMOP_RESET:
-                        default:
-                            pReq->Hdr.rc = VERR_INVALID_FUNCTION;
-                            break;
-                    }
-                    break;
-                }
-
-                case SUP_SEM_TYPE_EVENT_MULTI:
-                {
-                    SUPSEMEVENTMULTI hEventMulti = (SUPSEMEVENTMULTI)(uintptr_t)pReq->u.In.hSem;
-                    switch (pReq->u.In.uOp)
-                    {
-                        case SUPSEMOP_WAIT:
-                            pReq->Hdr.rc = SUPSemEventMultiWaitNoResume(pSession, hEventMulti, pReq->u.In.cMillies);
-                            break;
-                        case SUPSEMOP_SIGNAL:
-                            pReq->Hdr.rc = SUPSemEventMultiSignal(pSession, hEventMulti);
-                            break;
-                        case SUPSEMOP_CLOSE:
-                            pReq->Hdr.rc = SUPSemEventMultiClose(pSession, hEventMulti);
-                            break;
-                        case SUPSEMOP_RESET:
-                            pReq->Hdr.rc = SUPSemEventMultiReset(pSession, hEventMulti);
-                            break;
-                        default:
-                            pReq->Hdr.rc = VERR_INVALID_FUNCTION;
-                            break;
-                    }
-                    break;
-                }
-
-                default:
-                    pReq->Hdr.rc = VERR_INVALID_PARAMETER;
-                    break;
-            }
-            VBOXDRV_SUPDRV_IOCTL_RETURN(pSession, uIOCtl, pReqHdr, VINF_SUCCESS, pReq->Hdr.rc);
-            return 0;
-        }
-
         case SUP_CTL_CODE_NO_SIZE(SUP_IOCTL_SEM_OP2):
         {
Index: trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h	(revision 34959)
+++ trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h	(revision 34972)
@@ -191,7 +191,7 @@
  *
  * @todo Pending work on next major version change:
- *          - Remove SUPSEMOP and SUPSEMCREATE.
- */
-#define SUPDRV_IOC_VERSION                              0x00150004
+ *          - None.
+ */
+#define SUPDRV_IOC_VERSION                              0x00160000
 
 /** SUP_IOCTL_COOKIE. */
@@ -295,5 +295,5 @@
             /** Image file name.
              * This can be used to load the image using a native loader. */
-            char            szFilename[196];
+            char            szFilename[260];
         } In;
         struct
@@ -1017,75 +1017,4 @@
 
 
-/** @name SUP_IOCTL_SEM_CREATE
- * Create a semaphore
- * @todo remove this interface with the next major version change.
- * @{
- */
-#define SUP_IOCTL_SEM_CREATE                            SUP_CTL_CODE_SIZE(24, SUP_IOCTL_SEM_CREATE_SIZE)
-#define SUP_IOCTL_SEM_CREATE_SIZE                       sizeof(SUPSEMCREATE)
-#define SUP_IOCTL_SEM_CREATE_SIZE_IN                    sizeof(SUPSEMCREATE)
-#define SUP_IOCTL_SEM_CREATE_SIZE_OUT                   sizeof(SUPSEMCREATE)
-typedef struct SUPSEMCREATE
-{
-    /** The header. */
-    SUPREQHDR               Hdr;
-    union
-    {
-        struct
-        {
-            /** The semaphore type. */
-            uint32_t        uType;
-        } In;
-        struct
-        {
-            /** The handle of the created semaphore. */
-            uint32_t        hSem;
-        } Out;
-    } u;
-} SUPSEMCREATE, *PSUPSEMCREATE;
-
-/** @} */
-
-
-/** @name SUP_IOCTL_SEM_OP
- * Semaphore operations.
- * @todo remove this interface with the next major version change.
- * @{
- */
-#define SUP_IOCTL_SEM_OP                                SUP_CTL_CODE_SIZE(25, SUP_IOCTL_SEM_OP_SIZE)
-#define SUP_IOCTL_SEM_OP_SIZE                           sizeof(SUPSEMOP)
-#define SUP_IOCTL_SEM_OP_SIZE_IN                        sizeof(SUPSEMOP)
-#define SUP_IOCTL_SEM_OP_SIZE_OUT                       sizeof(SUPREQHDR)
-typedef struct SUPSEMOP
-{
-    /** The header. */
-    SUPREQHDR               Hdr;
-    union
-    {
-        struct
-        {
-            /** The semaphore type. */
-            uint32_t        uType;
-            /** The semaphore handle. */
-            uint32_t        hSem;
-            /** The operation. */
-            uint32_t        uOp;
-            /** The number of milliseconds to wait if it's a wait operation. */
-            uint32_t        cMillies;
-        } In;
-    } u;
-} SUPSEMOP, *PSUPSEMOP;
-
-/** Wait for a number of milliseconds. */
-#define SUPSEMOP_WAIT       0
-/** Signal the semaphore. */
-#define SUPSEMOP_SIGNAL     1
-/** Reset the semaphore (only applicable to SUP_SEM_TYPE_EVENT_MULTI). */
-#define SUPSEMOP_RESET      2
-/** Close the semaphore handle. */
-#define SUPSEMOP_CLOSE      3
-
-/** @} */
-
 /** @name SUP_IOCTL_SEM_OP2
  * Semaphore operations.
@@ -1093,5 +1022,5 @@
  * @{
  */
-#define SUP_IOCTL_SEM_OP2                               SUP_CTL_CODE_SIZE(27, SUP_IOCTL_SEM_OP2_SIZE)
+#define SUP_IOCTL_SEM_OP2                               SUP_CTL_CODE_SIZE(24, SUP_IOCTL_SEM_OP2_SIZE)
 #define SUP_IOCTL_SEM_OP2_SIZE                          sizeof(SUPSEMOP2)
 #define SUP_IOCTL_SEM_OP2_SIZE_IN                       sizeof(SUPSEMOP2)
@@ -1151,5 +1080,5 @@
  * @{
  */
-#define SUP_IOCTL_SEM_OP3                               SUP_CTL_CODE_SIZE(28, SUP_IOCTL_SEM_OP3_SIZE)
+#define SUP_IOCTL_SEM_OP3                               SUP_CTL_CODE_SIZE(25, SUP_IOCTL_SEM_OP3_SIZE)
 #define SUP_IOCTL_SEM_OP3_SIZE                          sizeof(SUPSEMOP3)
 #define SUP_IOCTL_SEM_OP3_SIZE_IN                       sizeof(SUPSEMOP3)
Index: trunk/src/VBox/HostDrivers/Support/SUPLib.cpp
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPLib.cpp	(revision 34959)
+++ trunk/src/VBox/HostDrivers/Support/SUPLib.cpp	(revision 34972)
@@ -268,7 +268,7 @@
         strcpy(CookieReq.u.In.szMagic, SUPCOOKIE_MAGIC);
         CookieReq.u.In.u32ReqVersion = SUPDRV_IOC_VERSION;
-        const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x00150000
-                                   ?  0x00150004
-                                   : SUPDRV_IOC_VERSION & 0xffff0000;
+        const uint32_t uMinVersion = /*(SUPDRV_IOC_VERSION & 0xffff0000) == 0x00160000
+                                   ?  0x00160000
+                                   :*/ SUPDRV_IOC_VERSION & 0xffff0000;
         CookieReq.u.In.u32MinVersion = uMinVersion;
         rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_COOKIE, &CookieReq, SUP_IOCTL_COOKIE_SIZE);
