Fact-checked by Grok 2 weeks ago

Service Control Manager

The Service Control Manager (SCM) is a fundamental component of the Microsoft Windows operating system that acts as a remote procedure call (RPC) server to manage services and device drivers. Introduced with Windows NT 3.1 in 1993, it is started automatically at system boot, maintains a database of installed services and drivers, enumerates them, starts them on demand or during initialization, tracks their running status, and transmits control requests to them. The SCM provides a unified and secure interface for service configuration, installation, and control, ensuring that services operate reliably within the system's security context. Services managed by the SCM are categorized into types such as service programs that execute specific tasks, configuration programs for installing or modifying services, and control programs for starting or stopping them. The SCM stores critical information for each service, including startup parameters, dependencies, and security descriptors that define access permissions, allowing administrators to tailor protections against unauthorized modifications or executions. For remote management, the SCM supports the Service Control Manager Remote Protocol (MS-SCMR), which enables clients to connect via RPC, query the service database, and issue commands like starting or stopping services on a target machine, with all operations serialized to maintain database consistency. This memory-resident database, which is recreated upon reboot, distinguishes between persistent registered services and transient active states, preventing direct external edits to avoid inconsistencies. In practice, the SCM integrates with tools like the Service Control (sc.exe) command-line utility, which mirrors its API functions for tasks such as querying service status or configuring recovery actions on failures. By centralizing control, the SCM enhances system stability and security, as it enforces privileges like SE_LOAD_DRIVER_PRIVILEGE for driver operations and restricts access based on user accounts or groups. Common issues, such as event IDs 7000 or 7026 indicating startup failures, are often resolved through SCM-mediated recovery settings that restart services or log errors. Overall, the SCM's design supports the modular architecture of Windows, allowing services to run in isolated sessions under the Local System account or other contexts while minimizing risks from malicious or faulty code.

Introduction

Definition and Role

The Service Control Manager (SCM) is a core component of the Windows NT operating system family, implemented as the special system process known as services.exe, which is responsible for starting, stopping, pausing, and otherwise interacting with Windows services and device drivers. This process runs with elevated privileges and serves as the central authority for service lifecycle operations, ensuring that essential system functions, such as networking and security, are available as needed. The SCM operates from system boot and handles both user-mode services and kernel-mode drivers, providing a standardized mechanism for their control across Windows versions from NT onward. In its primary role, the SCM maintains a comprehensive database of all installed services and driver services, enabling the tracking and configuration of these components within the operating system. It offers a unified interface through Windows APIs, such as those in the Win32 Service functions, allowing applications and administrators to query, enumerate, and control services programmatically. Additionally, the SCM functions as a remote procedure call (RPC) server, facilitating local and remote management requests to support distributed administration in enterprise environments. Through this infrastructure, the SCM oversees service states, including running, stopped, paused, and pending transitions, to maintain system stability and responsiveness. Administrators interact with the SCM using various built-in tools for service management, including the graphical Services.msc console for visual oversight and configuration, the command-line utility sc.exe for scripting and automation, and PowerShell cmdlets such as Get-Service, Start-Service, and Set-Service for advanced querying and control. These tools communicate directly with the SCM to perform operations like installing new services or modifying startup behaviors. The SCM distinguishes between user-mode services, which execute in the user space, and kernel-mode drivers, which operate at a lower privilege level closer to the hardware. User-mode services are categorized by type, such as SERVICE_WIN32_OWN_PROCESS for those running in dedicated processes or SERVICE_WIN32_SHARE_PROCESS for those hosted in shared containers like svchost.exe to optimize resource usage. In contrast, kernel-mode drivers, including types like SERVICE_KERNEL_DRIVER and SERVICE_FILE_SYSTEM_DRIVER, are loaded directly into the kernel address space under SCM oversight, allowing the manager to handle their loading, unloading, and dependency resolution without disrupting user-mode operations.

Historical Development

The Service Control Manager (SCM) was introduced in Windows NT 3.1 in 1993 as a fundamental element of the NT kernel architecture, designed to oversee the startup, shutdown, and configuration of background services that perform system-level tasks independently of user interactions. This component provided a unified mechanism for managing services such as the Alerter, Event Log, and Net Logon, accessible via the Control Panel's Services applet, which allowed administrators to set startup types (automatic, manual, or disabled), monitor status, and handle logon accounts. By centralizing service control, the SCM replaced fragmented approaches in prior systems, enabling reliable operation of processes like network sharing and event logging without reliance on interactive Win32 subsystems. With the release of Windows 2000, the SCM underwent significant evolution, incorporating enhanced dependency handling to ensure services launched in the proper sequence based on registry-defined prerequisites, such as those specified in DependOnService and DependOnGroup keys under HKLM\SYSTEM\CurrentControlSet\Services. This prevented startup failures from unmet dependencies and supported phased loading via service groups ordered in the registry. Additionally, deeper integration with Remote Procedure Call (RPC) mechanisms allowed for secure, remote service configuration and control, using named pipes like \Pipe\Ntsvcs and authenticated RPC transports, which facilitated interprocess communication across networked environments. These improvements, including support for shared-process hosting via svchost.exe, boosted scalability and reliability for enterprise deployments. Windows Vista in 2007 marked a major advancement with the addition of delayed auto-start services, a startup type that deferred non-critical service initialization until after core boot processes completed, thereby reducing overall system startup time while preserving dependency resolution and user experience. Complementing this, trigger-start services were introduced, enabling event-driven activation where services could register for specific system events—like network availability or device insertion—to start or stop dynamically, minimizing unnecessary resource consumption during idle periods. These features optimized performance in consumer and server scenarios by aligning service lifecycle with actual demand. Service hardening efforts in Windows Vista also included the implementation of Session 0 isolation, which segregated services into a non-interactive session (Session 0) to prevent legacy interactive services from displaying user interfaces in the primary desktop environment (Session 1 and higher), thereby enhancing security by limiting privilege escalation risks from elevated service contexts. This change enforced stricter boundaries between system services and user sessions, reducing vulnerabilities associated with services running at LocalSystem privileges.

Architecture

Core Components

The Service Control Manager (SCM) operates as the services.exe process, which is initiated by wininit.exe during system startup within Session 0, isolating it from interactive user sessions for security and stability. This process serves as the central RPC server, enabling remote procedure calls for service configuration and control, including inter-process communication via Local Procedure Call (LPC) ports and named pipes such as \Pipe\Ntsvcs for core control operations and \Pipe\Net\NtControlPipeX variants for network-related interactions. The SCM's RPC functionality ensures secure, unified management of services across local and remote systems, handling requests without direct exposure of service internals. Service hosting in Windows is divided into two primary models defined by the service type: standalone services running in their own process (SERVICE_WIN32_OWN_PROCESS), where each service executes independently, and shared services (SERVICE_WIN32_SHARE_PROCESS), which host multiple services within a single process to optimize resource usage. The shared model commonly utilizes svchost.exe, a generic host reserved for Windows services, with groups of services configured via registry entries under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost, allowing the SCM to launch grouped services efficiently under a common parameter set. This configuration promotes modularity, as svchost.exe instances can be tailored to specific service clusters, reducing overhead while maintaining isolation. To integrate with the SCM, a service process must employ the Service Control Dispatcher, invoked through the StartServiceCtrlDispatcher() function, which connects the main thread to the SCM and dispatches control requests. Within the service logic, the ServiceMain() entry point executes the core functionality, while RegisterServiceCtrlHandlerEx() registers a control handler to process SCM directives such as start, stop, or pause commands, enabling responsive lifecycle management. These mechanisms ensure services remain synchronized with SCM oversight, supporting reliable operation in both standalone and shared hosting environments.

Service Database and Configuration

The Service Control Manager (SCM) maintains its primary database of service information in the Windows registry under the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. This key contains subkeys named after each installed service or device driver, where configuration details are stored as values and subkeys. For example, the subkey for a service named "ExampleService" would be HKLM\SYSTEM\CurrentControlSet\Services\ExampleService, holding essential parameters that define the service's behavior and requirements. Key registry values within each service subkey include ImagePath, which specifies the full path to the executable file or binary for the service, such as C:\Windows\System32\svchost.exe -k netsvcs for shared services hosted by svchost.exe. The Type value indicates the service type using bitwise flags: 1 for kernel drivers, 2 for file system drivers, 4 for adapters, 16 (0x10) for Win32 services running in their own process (Win32OwnProcess), 32 (0x20) for Win32 services sharing a process (Win32ShareProcess), and 256 (0x100) for interactive services that can display user interface elements when combined with own or share process types. The Start value defines the startup behavior: 2 for automatic start at boot, 3 for manual (demand) start on request, and 4 for disabled services that do not start. Additionally, ErrorControl specifies error handling on startup failure: 0 to ignore the error and continue booting, 1 for normal logging with a possible user notification but continued boot, 2 for severe errors that log and reboot using the Last Known Good configuration, and 3 for critical errors that log and attempt recovery or halt the boot. Dependencies are managed through multi-string values DependOnService and DependOnGroup, which list required services or groups that must start before the dependent service. For instance, DependOnService might contain names like "RpcSs" for services relying on the Remote Procedure Call subsystem, while DependOnGroup references logical groups of services. Service group ordering, which sequences the loading of groups during initialization, is controlled by the multi-string value List under HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder, defining the boot-phase order such as "Boot File System" followed by "Base" and "Interactive". Services are installed and configured using the CreateService API, which opens the SCM database via a handle from OpenSCManager and creates a new registry subkey under HKLM\SYSTEM\CurrentControlSet\Services populated with the provided parameters like binary path, type, start mode, and dependencies. This API ensures the service entry is added to both the registry and the in-memory SCM database for consistent . For recovery, Windows maintains a Last Known Good (LKG) control set as a backup copy of the CurrentControlSet, capturing a verified working configuration of services and drivers from the previous successful boot; if a boot fails due to configuration issues, selecting LKG at startup restores this set to mitigate service-related problems without data loss.

Operations

System Startup and Initialization

The Service Control Manager (SCM) begins its role in the Windows boot process when the wininit.exe process launches services.exe, occurring after the Session Manager Subsystem (smss.exe) has performed initial system setup, including loading registry hives and preparing the environment for user-mode execution. This sequence ensures that core system structures, such as the service database in the registry under HKLM\SYSTEM\CurrentControlSet\Services, are accessible before SCM operations commence. Upon execution of services.exe, the SCM's primary initialization routine, SvcCtrlMain(), is invoked to configure essential components, including establishing the (RPC) server endpoint for and building an internal database of installed services from the registry. SvcCtrlMain() then calls ScAutoStartServices() to identify and launch all services marked with the AUTO_START type (value 2 in the Start registry key), processing them in phases based on predefined service groups to maintain orderly boot progression. These groups, defined in the registry's Group and GroupOrder values, allow critical services like those for networking or security to initialize in a logical , minimizing boot . Dependency resolution is integral to this startup phase, as ScAutoStartServices() examines each service's DependOnService (specific service dependencies) and DependOnGroup (group-based dependencies) multi-string registry values before attempting to start it. If dependencies are unmet, the SCM queues the service and monitors the status of prerequisites, only proceeding once they report as running, thereby preventing cascading failures during boot. Prior to user-mode service startup, the SCM handles the loading of system-start drivers (SERVICE_SYSTEM_START type, value 1), which are kernel-mode components required early in the boot; boot-start drivers (SERVICE_BOOT_START type, value 0) are instead loaded directly by the kernel loader before SCM activation. This distinction ensures hardware abstraction and essential drivers, such as those for storage, are available before higher-level services depend on them. To optimize overall boot performance, the SCM imposes a default 30-second timeout per service for reporting startup completion via its control handler; failure to respond within this period results in the service being marked as stopped, allowing the boot process to continue without stalling. Services configured with AUTO_START or other boot-relevant start types are prioritized in this mechanism to balance reliability and speed.

Service Lifecycle Management

The Control Manager (SCM) facilitates the runtime of services through a set of functions that allow programs to initiate operations such as starting, stopping, pausing, continuing, and interrogating services. To start a , a invokes the StartService function, which prompts the SCM to create a new process for the executable if it is not already running, and then calls the 's ServiceMain entry point to initialize it. For stopping a , the ControlService sends a SERVICE_CONTROL_STOP code to the 's registered handler, which the must process to perform cleanup and exit gracefully. Similarly, ControlService supports SERVICE_CONTROL_PAUSE and SERVICE_CONTROL_CONTINUE for temporarily halting and resuming operations, as well as SERVICE_CONTROL_INTERROGATE for querying the 's current state without altering it. These requests ensure that services can be managed dynamically without requiring system restarts, supporting ongoing operational flexibility in environments. Services maintain communication with the SCM by reporting their status updates using the SetServiceStatus or SetServiceStatusEx functions, which inform the SCM of state transitions such as SERVICE_START_PENDING (indicating initialization in progress), SERVICE_RUNNING (fully operational), or SERVICE_STOPPED (terminated). These functions also include checkpoint values to progress during time-consuming operations, allowing the SCM to timeouts and enforce service . For external , control programs can use the QueryServiceStatus function to retrieve the latest from the SCM, including the current , ID, and exit code, enabling administrators to verify service health in real time. The extended QueryServiceStatusEx variant provides additional like service-specific exit codes, further enhancing diagnostic capabilities. In cases of service failures, the SCM handles errors by logging events to the Windows Event Log, such as Event ID 7000, which records when a service fails to start due to timeouts or unresponsiveness, often triggered after the default 30-second wait period defined by the ServicesPipeTimeout registry value. Recovery actions are governed by the ErrorControl configuration setting in the service's registry entry under HKLM\SYSTEM\CurrentControlSet\Services, which can specify behaviors like ignoring the failure (0x0), logging an error and continuing boot (0x1), or initiating a system reboot for critical services (0x3). This mechanism ensures system stability by automating responses to faults, such as restarting the service or escalating to administrative intervention. Remote management of services extends these capabilities across networked machines via the SCM's implementation as a Remote Procedure Call (RPC) server, allowing control programs to connect to the SCM on a computer using functions like OpenSCManager with a remote machine name. The Service Control Manager Remote Protocol (MS-SCMR) defines the RPC for operations like starting or stopping services on remote systems, secured by authentication and access controls to prevent unauthorized manipulation. This enables centralized administration in enterprise environments, such as through tools like the Services MMC snap-in, without physical access to the host.

Advanced Features

Delayed Auto-Start Services

The delayed auto-start mechanism for services was introduced in in 2007 to enhance system boot performance by deferring the startup of non-essential services until after critical ones have loaded. This feature allows administrators to configure services with an "Automatic (Delayed Start)" type, which can be set using the command-line with sc config <ServiceName> start= delayed-auto. This configuration sets the service's Start value to 2 (SERVICE_AUTO_START) and adds a DelayedAutostart DWORD value of 1 in the registry entry under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServiceName>. Only services originally configured as AUTO_START (registry Start=2) are eligible for this mode, ensuring it applies solely to user-mode services that are not required for core system initialization. In implementation, the Service Control Manager (SCM) first processes all standard automatic-start services during boot, then queues delayed auto-start services for initiation after a default 120-second delay has elapsed since the last automatic service completes. This delay can be adjusted globally by creating or modifying the AutoStartDelay DWORD value (in seconds) under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control, allowing fine-tuning for specific system needs. Once the delay period ends, the SCM triggers these services either through an internal timer or in response to manual commands, respecting any declared dependencies to maintain operational integrity. The primary purpose of delayed auto-start is to shorten overall boot times by prioritizing essential services for immediate loading, thereby enabling faster user logon and system responsiveness without compromising functionality for deferred services. For example, non-critical services like print spoolers or certain network enhancers can be delayed, reducing contention during the initial startup phase when resources are limited. Delayed auto-start services can be monitored through the Windows Event Viewer under the System log for Service Control Manager entries, including Event ID 7025, which logs details on delayed initiations and potential timeouts. However, this mechanism has limitations: it is unsuitable for boot-critical or system-start services (e.g., those with Start=0 or Start=1), as delaying them could prevent core OS functionality. Improper configuration may also lead to dependency resolution issues, where a delayed service fails if it relies on another delayed service that has not yet started, necessitating careful dependency mapping during setup.

Device Driver Management

The Service Control Manager (SCM) treats device drivers as a specialized category of services, managing them through entries in the service database under the registry key HKLM\SYSTEM\CurrentControlSet\Services. Drivers are classified by specific types: kernel drivers (SERVICE_KERNEL_DRIVER, Type=1), file system drivers (SERVICE_FILE_SYSTEM_DRIVER, Type=2), and adapter drivers (SERVICE_ADAPTER, Type=4). These drivers are typically stored as .sys files in the %SystemRoot%\System32\Drivers directory and are enumerated by the SCM during system initialization to ensure proper loading based on their configuration. The loading process for device drivers varies by start type, with boot-start drivers (Start=0) loaded early in the boot sequence by the operating system boot loader (winload.exe), which maps them into memory via the NtLoadDriver before the SCM initializes. System-start drivers (Start=1) are loaded subsequently by the I/O Manager during initialization, while demand-start drivers (Start=3) are loaded on request via SCM APIs such as StartService. This ensures drivers are available before dependent user-mode services, with the SCM resolving dependencies from the service database to sequence loading appropriately—drivers generally precede user services if required. Control over device drivers through the SCM is more restricted than for user-mode services, limited primarily to loading and unloading operations via APIs like CreateService, StartService, and ControlService. Most drivers do not support pause or continue states, as these operations are incompatible with kernel-mode execution; instead, their behavior is monitored using tools like Driver Verifier to detect issues such as memory leaks or invalid accesses during runtime. Unloading a driver is performed via NtUnloadDriver, but this is rarely done outside controlled scenarios due to risks of system instability, such as dangling references or interrupted I/O operations. The SCM maintains for drivers in its database, allowing and basic querying through functions like EnumServicesStatus.

Security and Modern Enhancements

Access Control Mechanisms

The Service Control Manager (SCM) implements access control through lists (DACLs) associated with service objects in the , which define permissions for operations such as starting, stopping, or modifying service configurations. These DACLs specify access rights including SERVICE_START (to initiate a service), SERVICE_STOP (to halt a service), SERVICE_CHANGE_CONFIG (to alter service settings), and others like SERVICE_QUERY_CONFIG or SERVICE_ENUMERATE_DEPENDENTS, all enforced by the SCM prior to processing any request. Service control programs can retrieve and modify these DACLs using API functions like GetSecurityInfo and SetSecurityInfo to grant or revoke specific rights to trustees, ensuring granular control over who can manage individual services. To enable per-service access control without relying solely on shared accounts, the SCM supports Service Security Identifiers (SIDs) configured via the ServiceSidType parameter during service installation or modification. The available types include SERVICE_SID_TYPE_NONE (no SID assigned), SERVICE_SID_TYPE_RESTRICTED (SID added to the process token's restricted list for limited access), and SERVICE_SID_TYPE_UNRESTRICTED (SID added to the standard token groups for broader permissions within the service process). For example, a service named "ExampleService" receives an SID in the form NT SERVICE\ExampleService, which can be used in DACLs to authorize access to resources specific to that service, reducing the attack surface by isolating privileges. Services execute under designated RunAs accounts managed by the SCM, which determine their security context and require the "Log on as a service" user right for non-system accounts. Common built-in accounts include LocalSystem (with full local access but no network credentials as a computer account), NetworkService (limited local privileges and network access as the computer account), and LocalService (minimal local access only, treated as an anonymous user on the network). Virtual accounts, introduced for enhanced security, are machine-local and automatically managed by the SCM, combining the benefits of managed accounts with automatic password handling while still needing the "Log on as a service" right assigned via or local . The SCM provides auditing capabilities to monitor access attempts, logging events to the System event log for security review, such as failures due to invalid control requests. These logs capture details like the attempted operation, caller identity, and outcome, enabling detection of unauthorized access patterns when object access auditing is enabled in . To mitigate privilege escalation risks, the SCM validates the caller's against the service object's DACL before dispatching any control request, ensuring that only authorized principals can invoke sensitive operations even in (RPC) scenarios. This token-based validation prevents lower-privileged processes from coercing elevated actions through the SCM interface.

Changes in Windows 10 and 11

In (Creators Update), the Service Control Manager implemented service host refactoring for processes. On systems with more than 3.5 GB of , individual services hosted within svchost.exe are separated into dedicated process instances to enhance crash isolation and system reliability, preventing a single service failure from impacting others. This feature dynamically adjusts based on available memory, balancing performance and stability without requiring manual configuration. The trigger-start mechanism for services, which enables just-in-time loading based on system events, saw expanded applicability in and 11 through support for diverse trigger types. These include device interface arrivals (such as USB or HID device connections) and WMI event queries, allowing services to activate only when relevant conditions occur, thereby reducing idle resource consumption. Custom event tracing for Windows (ETW) providers further enable fine-tuned triggers, optimizing startup efficiency for modern workloads. Starting with , leverages AppContainer isolation to confine its scanning processes (e.g., MsMpEngCP.exe) within low-privilege environments, applying mitigations such as Data Execution Prevention (DEP), (ASLR), and Control Flow Guard (CFG) to restrict privileges and minimize tampering risks. Supported on and later, including , this AppContainer-based approach provides granular control over service boundaries without compromising functionality. Building on Session 0 isolation established in to separate services from user desktops and mitigate shatter attacks, and 11 further deprecate interactive services. The Interactive Services Detection (UI0Detect) service, which allowed limited desktop switching to Session 0, was removed in and 11, enforcing non-interactive operation for all services. This change, combined with stricter (IPC) restrictions, prevents unauthorized access to service windows and bolsters defenses against legacy vulnerabilities like shatter attacks, where attackers exploit to elevate privileges. Service management in and 11 benefited from refined cmdlets and user interface exposures. Core commands like Get-Service for querying service status and Restart-Service for controlled restarts operate with improved error handling and remote capabilities via Windows Management Framework updates (e.g., WMF 5.1 in ). Additionally, the Settings app now exposes toggles for select non-critical services, such as background apps and privacy-related ones, simplifying user-level management while reserving advanced controls for administrators through or the Services console.

References

  1. [1]
    Service control manager - Win32 apps - Microsoft Learn
    Feb 7, 2022 · The service control manager (SCM) is an RPC server started at system boot, maintaining service databases, starting services, and transmitting  ...
  2. [2]
    About Services - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The service control manager (SCM) maintains a database of installed services and driver services, and provides a unified and secure means of controlling them.
  3. [3]
    [MS-SCMR]: Overview - Microsoft Learn
    Aug 11, 2025 · The Service Control Manager Remote Protocol is a client/server protocol used for configuring and controlling service programs running on a remote computer.
  4. [4]
    Controlling a Service Using SC - Win32 apps | Microsoft Learn
    Mar 28, 2023 · The Windows SDK contains a command-line utility, Sc.exe, that can be used to control a service. Its commands correspond to the functions provided by the SCM.<|control11|><|separator|>
  5. [5]
    Several Service Control Manager Issues (Event ID's 7000, 7009, 7011)
    Describes a problem in which event ID 7000 or event ID 7026 may be logged after you start a computer that's running Windows. Netlogon event ID 5719 or Group ...
  6. [6]
    Get-Service (Microsoft.PowerShell.Management)
    The Get-Service cmdlet gets objects that represent the services on a computer, including running and stopped services.Missing: sc. | Show results with:sc.
  7. [7]
    Start-Service (Microsoft.PowerShell.Management)
    The Start-Service cmdlet sends a start message to the Windows Service Controller for each of the specified services.<|control11|><|separator|>
  8. [8]
    Service Programs - Win32 apps - Microsoft Learn
    Jan 7, 2021 · An example of a service program that does this is the generic service host process, Svchost.exe, which hosts internal Windows services. Note ...
  9. [9]
    SERVICE_STATUS_PROCESS (winsvc.h) - Win32 - Microsoft Learn
    Apr 1, 2021 · The service shares a process with other services. If the service type is either SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS, and ...
  10. [10]
    SERVICE_STATUS structure (winsvc.h) - Win32 - Microsoft Learn
    Apr 1, 2021 · The service is a device driver. SERVICE_WIN32_OWN_PROCESS; 0x00000010. The service runs in its own process. SERVICE_WIN32_SHARE_PROCESS ...
  11. [11]
    [PDF] System Guide - Bitsavers.org
    This introduction provides: • A description of Windows NT, including its benefits and a comparison to. Microsoft Windows for MS-DOS. • The Windows NT system ...
  12. [12]
    Under the Hood: Happy 10th Anniversary, Windows | Microsoft Learn
    Console mode processes and services for Windows didn't arrive until Windows NT 3.1 in 1993.
  13. [13]
    [PDF] Microsoft Windows Internals, Fourth Edition
    Windows 2000 took three and a half years to produce and was the most tested and tuned version of Windows NT technology produced at the time. Win- dows 2000 ...
  14. [14]
    [DOC] windows-services.docx - Microsoft Download Center
    This white paper provides an overview of the changes to the services model that were introduced beginning with Windows Vista. It also provides some best ...
  15. [15]
    SERVICE_DELAYED_AUTO_ST...
    Apr 1, 2021 · The service control manager (SCM) supports delayed auto-start services to improve system performance at boot time without affecting the user experience.
  16. [16]
    Service Trigger Events - Win32 apps | Microsoft Learn
    Jan 7, 2021 · A service can register to be started or stopped when a trigger event occurs. This eliminates the need for services to start when the system starts.
  17. [17]
    Credentials Processes in Windows Authentication - Microsoft Learn
    Jun 30, 2025 · Session 0 hosts system services and other critical processes ... introduced in Windows Server 2008 R2 and Windows 7. Credential ...
  18. [18]
    StartServiceCtrlDispatcherA function (winsvc.h) - Win32 apps
    Feb 9, 2023 · Connects the main thread of a service process to the service control manager, which causes the thread to be the service control dispatcher ...
  19. [19]
    Service Entry Point - Win32 apps - Microsoft Learn
    Jan 7, 2021 · If the service type is SERVICE_WIN32_SHARE_PROCESS and there is common initialization for all services in the program, you can perform the ...
  20. [20]
    RegisterServiceCtrlHandlerExA function (winsvc.h) - Win32 apps
    Feb 8, 2023 · The RegisterServiceCtrlHandlerEx function must be called before the first SetServiceStatus call because RegisterServiceCtrlHandlerEx returns ...
  21. [21]
    HKLM\SYSTEM\CurrentControlSet\Services Registry Tree
    Oct 9, 2024 · The HKLM\SYSTEM\CurrentControlSet\Services registry tree stores information about each service on the system. Each driver has a key of the form HKLM\SYSTEM\ ...Missing: database | Show results with:database
  22. [22]
    CreateServiceA function (winsvc.h) - Win32 apps - Microsoft Learn
    Jul 26, 2022 · For more information, see Service Programs. If you specify either SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS, and the service ...
  23. [23]
    Change method of the Win32_BaseService class - Microsoft Learn
    Jan 6, 2021 · Kernel Driver (1). File System Driver (2). Adapter (4). Recognizer Driver (8). Own Process (16). Share Process (32). (256). Interactive Process.
  24. [24]
    [MS-SCMR]: RChangeServiceConfigW (Opnum 11) | Microsoft Learn
    Apr 23, 2024 · If the client passes NULL for lpDependencies, the server MUST keep the existing DependOnService and DependOnGroup values. If the client passes ...<|separator|>
  25. [25]
    sc.exe config | Microsoft Learn
    Feb 3, 2023 · Modifies the value of a service's entries in the registry and in the Service Control Manager database.
  26. [26]
    Booting Last Known Good changes hosts file to old backup.
    Apr 7, 2025 · Instead, changes are made to one control set, and if Windows cannot boot successfully, you can reboot using the other, pre-change control set.
  27. [27]
    Troubleshooting Windows Startup and Shutdown Problems
    Sep 15, 2012 · This chapter, from Windows Internals, Part 2, 6th Edition, describes the steps required to boot Windows and the options that can affect system startup.
  28. [28]
    Services | Microsoft Windows Internals (4th Edition) - Flylib.com
    Windows services consist of three components: a service application, a service control program (SCP), and the service control manager (SCM). ... Pipe\Ntsvcs ...
  29. [29]
    File System Filter Load Order - Windows drivers - Microsoft Learn
    Sep 25, 2024 · A complete, ordered list of load order ... ServiceGroupOrder subkey of the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control registry key.
  30. [30]
    A slow service does not start due to time-out error in Windows
    Jan 15, 2025 · This article provides a workaround to an issue where a slow service does not start due to time-out error in Windows.
  31. [31]
    StartServiceA function (winsvc.h) - Win32 apps - Microsoft Learn
    Feb 8, 2023 · A handle to the service. This handle is returned by the OpenService or CreateService function, and it must have the SERVICE_START access right.
  32. [32]
    Service ServiceMain Function - Win32 apps - Microsoft Learn
    Jan 7, 2021 · When a service control program requests that a new service run, the Service Control Manager (SCM) starts the service and sends a start request to the control ...
  33. [33]
    ControlService function (winsvc.h) - Win32 apps | Microsoft Learn
    Jul 26, 2022 · The ControlService function asks the Service Control Manager (SCM) to send the requested control code to the service.Syntax · Parameters
  34. [34]
    SetServiceStatus function (winsvc.h) - Win32 apps | Microsoft Learn
    Oct 12, 2021 · A ServiceMain function first calls the RegisterServiceCtrlHandlerEx function to get the service's SERVICE_STATUS_HANDLE. Then it immediately ...
  35. [35]
    QueryServiceStatus function (winsvc.h) - Win32 apps | Microsoft Learn
    Feb 22, 2024 · The QueryServiceStatus function returns the most recent service status information reported to the service control manager. If the service just ...
  36. [36]
    QueryServiceStatusEx function (winsvc.h) - Win32 - Microsoft Learn
    Feb 22, 2024 · The QueryServiceStatusEx function returns the most recent service status information reported to the service control manager.
  37. [37]
    ServiceInstaller.DelayedAutoStart Property (System.ServiceProcess)
    Gets or sets a value that indicates whether the service should be delayed from starting until other automatically started services are running.
  38. [38]
    Modify Automatic (Delayed start) windows service thresholds
    Feb 24, 2016 · To increase the default delay of 120 seconds, right click the registry key and add new key AutoStartDelay (DWORD (32-bit).
  39. [39]
    Windows Services Startup Types Explained
    after Automatic services have started.What is a service's Startup... · Automatic (Delayed Start) · Intermission: What does...
  40. [40]
    Solved: WDSServer service will not start - Experts Exchange
    Jun 29, 2010 · For more information, review the system event log. Event ID: 7025. Source: Service Control Manager Event The Windows deployment Server ...
  41. [41]
    "Automatic" vs "Automatic (Delayed start)" - Stack Overflow
    Jun 13, 2012 · In short, services set to Automatic will start during the boot process, while services set to start as Delayed will start shortly after boot.How to delay the start of a specific service in Windows Services?Registry Entry for Automatic (Delayed Start) on WindowsMore results from stackoverflow.com
  42. [42]
    CreateServiceW function (winsvc.h) - Win32 apps - Microsoft Learn
    Jul 26, 2022 · A service started by the service control manager when a process calls the StartService function. ... If the service type is SERVICE_KERNEL_DRIVER ...
  43. [43]
    Windows Security Log Event ID 4697 - A service was installed in the ...
    Event ID 4697 indicates a new service was installed in the system, often by the local system (SYSTEM) for native Windows components.Missing: Microsoft documentation
  44. [44]
    Specifying Driver Load Order - Windows - Microsoft Learn
    Feb 4, 2022 · The service control manager processes the service database information with respect to the services' DependOnGroup and DependOnServices.Missing: DependOnService | Show results with:DependOnService
  45. [45]
    Mastering Windows Kernel Driver Loading - Infosec Institute
    Apr 12, 2013 · In the article, we'll see different methods of interacting with the SCM: by using OSR Driver Loader, sc.exe and of course by using the Win32 API functions.
  46. [46]
    NtLoadDriver - NtDoc
    The NtLoadDriver function loads a driver specified by the DriverServiceName parameter. \param DriverServiceName A pointer to a UNICODE_STRING structure.
  47. [47]
    Service Security and Access Rights - Win32 apps | Microsoft Learn
    Jan 7, 2021 · The Windows security model enables you to control access to the service control manager (SCM) and service objects.
  48. [48]
    Modifying the DACL for a Service - Win32 apps | Microsoft Learn
    Jan 7, 2021 · In this article​​ A service control program can create or modify the DACL associated with a service to control access. To retrieve the DACL ...
  49. [49]
    SERVICE_SID_INFO (winsvc.h) - Win32 apps | Microsoft Learn
    Feb 22, 2024 · This type includes SERVICE_SID_TYPE_UNRESTRICTED. The service SID is also added to the restricted SID list of the process token. Three ...Syntax · Members
  50. [50]
    Service User Accounts - Win32 apps | Microsoft Learn
    Jan 7, 2021 · Each service executes in the security context of a user account. The user name and password of an account are specified by the CreateService function.
  51. [51]
    LocalSystem Account - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The LocalSystem account is a predefined local account used by the service control manager. This account is not recognized by the security subsystem.<|separator|>
  52. [52]
    Log on as a service - Windows 10 - Microsoft Learn
    Apr 18, 2017 · By definition, the Network Service account has the Log on as a service user right. This right isn't granted through the Group Policy setting.
  53. [53]
    4697(S) A service was installed in the system. - Windows 10
    Sep 6, 2021 · The service account parameter is only populated if the service type is a "Win32 Own Process" or "Win32 Share Process" (displayed as "User Mode ...
  54. [54]
    Service host grouping in Windows 10 | Microsoft Learn
    Feb 23, 2023 · Service host grouping in Windows 10 organizes services into related groups, each running in a separate instance of the Service Host process, ...
  55. [55]
    Run Microsoft Defender Antivirus in a sandbox environment
    Sep 29, 2025 · This article describes how to run Microsoft Defender Antivirus in a sandbox environment for enhanced protection against tampering.Enable Sandboxing For... · Faqs · How Is The Content Process...
  56. [56]
    Interactive Services Removed On Windows 10, 11, Server 2019, 2022
    Jul 8, 2024 · The Interactive Services Detection Service (UI0Detect) will no longer be present. This means you can no longer switch desktop to Session 0.
  57. [57]
    Interactive Services - Win32 apps | Microsoft Learn
    Jan 7, 2021 · All services run in Terminal Services session 0. Therefore, if an interactive service displays a user interface, it is visible only to the user ...Missing: isolation | Show results with:isolation
  58. [58]
    Restart-Service (Microsoft.PowerShell.Management)
    The Restart-Service cmdlet sends a stop message and then a start message to the Windows Service Controller for a specified service.Missing: improvements | Show results with:improvements
  59. [59]
    How to manage system services on Windows 11
    Jul 10, 2024 · Windows 11 includes multiple ways to start, stop, enable, or disable services using the Services app, Task Manager, PowerShell, and Command Prompt.