VirtualBox

Changeset 108446 in vbox for trunk/src


Ignore:
Timestamp:
Mar 5, 2025 8:17:56 AM (2 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167820
Message:

Windows driver installation/VBoxDrvInst: Implemented 'service delete' sub command to delete a Windows service. bugref:10762

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/installation/VBoxDrvInst.cpp

    r108445 r108446  
    232232    VBOXDRVINST_SERVICE_OPT_STOP,
    233233    VBOXDRVINST_SERVICE_OPT_RESTART,
     234    VBOXDRVINST_SERVICE_OPT_DELETE,
    234235    VBOXDRVINST_SERVICE_OPT_WAIT,
    235236    VBOXDRVINST_SERVICE_OPT_NO_WAIT
     
    241242static const RTGETOPTDEF g_aCmdServiceOptions[] =
    242243{
     244    /* Sub commands. */
    243245    { "start",     VBOXDRVINST_SERVICE_OPT_START,   RTGETOPT_REQ_NOTHING },
    244246    { "stop",      VBOXDRVINST_SERVICE_OPT_STOP,    RTGETOPT_REQ_NOTHING },
    245247    { "restart",   VBOXDRVINST_SERVICE_OPT_RESTART, RTGETOPT_REQ_NOTHING },
     248    { "delete",    VBOXDRVINST_SERVICE_OPT_DELETE,  RTGETOPT_REQ_NOTHING },
     249    /* Parameters. */
    246250    { "--wait",    VBOXDRVINST_SERVICE_OPT_WAIT,    RTGETOPT_REQ_INT32 },
    247251    { "--no-wait", VBOXDRVINST_SERVICE_OPT_NO_WAIT, RTGETOPT_REQ_NOTHING }
     
    808812    switch (pOpt->iShort)
    809813    {
    810         case VBOXDRVINST_SERVICE_OPT_START:   return "Starts the service";
    811         case VBOXDRVINST_SERVICE_OPT_STOP:    return "Stops the service";
    812         case VBOXDRVINST_SERVICE_OPT_RESTART: return "Restarts the service";
    813         case VBOXDRVINST_SERVICE_OPT_WAIT:    return "Waits for the service to reach the desired state";
    814         case VBOXDRVINST_SERVICE_OPT_NO_WAIT: return "Skips waiting for the service to reach the desired state";
     814        case VBOXDRVINST_SERVICE_OPT_START:   return "Starts a service";
     815        case VBOXDRVINST_SERVICE_OPT_STOP:    return "Stops a service";
     816        case VBOXDRVINST_SERVICE_OPT_RESTART: return "Restarts a service";
     817        case VBOXDRVINST_SERVICE_OPT_DELETE:  return "Deletes a service";
     818        case VBOXDRVINST_SERVICE_OPT_WAIT:    return "Waits for a service to reach the desired state";
     819        case VBOXDRVINST_SERVICE_OPT_NO_WAIT: return "Skips waiting for a service to reach the desired state";
    815820
    816821        default:
     
    858863                    return RTMsgErrorExitFailure("Service control function already specified\n");
    859864                enmFn = VBOXWINDRVSVCFN_RESTART;
     865                break;
     866            }
     867
     868            case VBOXDRVINST_SERVICE_OPT_DELETE:
     869            {
     870                if (enmFn != VBOXWINDRVSVCFN_INVALID)
     871                    return RTMsgErrorExitFailure("Service control function already specified\n");
     872                enmFn = VBOXWINDRVSVCFN_DELETE;
    860873                break;
    861874            }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette