3.2.5.10 Service General Setting

Settings in Service General Setting (section 2.2.8) MUST be set by applying start up configuration and security descriptors on services for each setting.

If a ServiceName, StartupMode, or AclString value is not valid as specified in section 2.2.8, the client stops processing Service General Setting and logs an error.

Start up configuration MUST be applied to services by performing external behavior consistent with locally invoking RChangeServiceConfigW ([MS-SCMR] section 3.1.4.11) for each setting.

  • The hService MUST be set to service handle opened by performing external behavior consistent with locally invoking ROpenServiceW ([MS-SCMR] section 3.1.4.16) using the ServiceName of the setting.

  • The dwServiceType MUST be set to the service type retrieved by performing external behavior consistent with locally invoking RQueryServiceConfigW ([MS-SCMR] section 3.1.4.17).

  • The dwStartType MUST be set to the StartupMode of a setting in Service General Setting where the StartupMode are mapped to the dwStartType ([MS-SCMR] section 2.2.15) according to the following table.

    Group Policy: Security Protocol Extension

    Service Control Manager Remote Protocol

    Value of "2"

    SERVICE_AUTO_START ([MS-SCMR] section 2.2.15)

    Value of "3"

    SERVICE_DEMAND_START ([MS-SCMR] section 2.2.15)

    Value of "4"

    SERVICE_DISABLED ([MS-SCMR] section 2.2.15)

  • The dwErrorControl MUST be set to the error control retrieved by performing external behavior consistent with locally invoking RQueryServiceConfigW ([MS-SCMR] section 3.1.4.17).

  • The lpBinaryPathName MUST be set to the path name retrieved by performing external behavior consistent with locally invoking RQueryServiceConfigW ([MS-SCMR] section 3.1.4.17).

  • The lpLoadOrderGroup MUST be set to the service group for load ordering retrieved by performing external behavior consistent with locally invoking RQueryServiceConfigW ([MS-SCMR] section 3.1.4.17).

  • The lpdwTagId MUST be set to NULL.

  • The lpDependencies MUST be set to the dependencies retrieved by performing external behavior consistent with locally invoking RQueryServiceConfigW ([MS-SCMR] section 3.1.4.17).

  • The dwDependSize MUST be set to the number of dependencies retrieved by performing external behavior consistent with locally invoking RQueryServiceConfigW ([MS-SCMR] section 3.1.4.17).

  • The lpServiceStartName MUST be set to NULL.

  • The lpPassword MUST be set to NULL.

  • The dwPwSize MUST be set to 0.

  • The lpDisplayName MUST be set to the display name retrieved by performing external behavior consistent with locally invoking RQueryServiceConfigW ([MS-SCMR] section 3.1.4.17).

Security descriptors MUST be applied to services by performing the external behavior consistent with locally invoking RSetServiceObjectSecurity ([MS-SCMR] section 3.1.4.6) for each setting.

  • The hService MUST be set to a service handle opened by performing external behavior consistent with locally invoking ROpenServiceW ([MS-SCMR] section 3.1.4.16) using the ServiceName of the setting.

  • The dwSecurityInformation MUST be set to DACL_SECURITY_INFORMATION ([MS-SCMR] section 2.2.1.

  • The lpSecurityDescriptor MUST be set to the security descriptor in the AclString of the setting in the form specified in [MS-DTYP] section 2.4.6.

  • The cbBufSize MUST be set to Size, in bytes, of the buffer pointed to by the lpSecurityDescriptor parameter.