Windows Registry Knowledge Base: Services and drivers

# Services and drivers

**TODO this page currently contains rough notes, fine tune these**

Settings to load/run drivers and services are stored in the Services key:

```
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
```

Sub keys:

Name | Description
--- | ---
%NAME% | The driver or service sub key. Where %NAME% corresponds with the name of the driver or service.

## Name sub key

Sub keys:

Name | Description
--- | ---
Cache |
DeviceInRange |
Linkage |
Options |
Parameters |
Performance |
Security |
Settings |
StartOverride |
tracing |

Values:

Name | Data type | Description
--- | --- | ---
DependOnGroup | REG_MULTI_SZ | Other groups the device or service is dependent on.
DependOnService | REG_MULTI_SZ | Other services the device or service is dependent on.
Description | REG_SZ | Description.
DisplayName | REG_SZ, REG_MULTI_SZ | Display name.
DriverPackageId | |
ErrorControl | REG_DWORD | The level of error control.
FailureActions | |
Group | REG_SZ | Name of the group the device or service is part of.
ImagePath | REG_SZ | Path and filename of device or service executable file (or image).
ObjectName | REG_SZ | See section: ObjectName value
RequiredPrivileges | |
Start | REG_DWORD | The start control value.
ServiceSidType | |
Tag | REG_DWORD |
Type | REG_DWORD | The driver or service type.

### Parameters sub key

Sub keys:

Name | Description
--- | ---
PnpInterface |
Policy |
TriggerInfo |
WakeUp |
Wdf |

Values:

Name | Data type | Description
--- | --- | ---
AmdXataOptions | REG_DWORD | 
AMLIMaxCTObjs | REG_BINARY | 
APEIOSCGranted | REG_BINARY | 
AthDfuWaitInfinite | REG_DWORD | 
BusType | REG_DWORD | 
DebugFlags | REG_DWORD | 
IoTimeoutValue | REG_DWORD | 
MaintainServerList | REG_SZ | 
ServiceDll | REG_EXPAND_SZ | 
ServiceDllUnloadOnStop | REG_DWORD | 
ServiceMain | REG_SZ | 
WHEAOSCImplemented | REG_BINARY | 

### ErrorControl value

Value | Identifier | Description
--- | --- | ---
0x00000000 | Ignore |
0x00000001 | Normal |
0x00000002 | Severe |
0x00000003 | Critical |

### ObjectName value

The ObjectName value has a different meaning for different types of Driver or
Service Name sub keys.

* For a driver type the ObjectName value contains the Windows NT driver object name that the I/O Manager uses to load the device driver.
* For a service type the ObjectName value contains the account name under which the service will log on to run.

Windows Services shows this value as "LogOn As".

### Start value

Value | Identifier | Description
--- | --- | ---
0x00000000 | Boot | Driver or service controlled by the kernel that is loaded by the boot loader.
0x00000001 | System | Driver or service controlled by the I/O sub system that is loaded at kernel initialization.
0x00000002 | Automatic | Driver or service controlled by the Services Control Manager that is loaded at start up. Also referred to as: Auto load
0x00000003 | On demand | Driver or service controlled by the Services Control Manager that is loaded on demand. Also referred to as: Load on demand or Automatic (Delayed start)
0x00000004 | Disabled | Driver or service controlled by the Services Control Manager that is disabled.

Windows Services shows this value as "Startup Type".

### Type value

Value | Identifier | Description
--- | --- | ---
0x00000001 | | Kernel device driver
0x00000002 | | File system driver
0x00000004 | | A set of argument for an adapter
0x00000008 | | *Unknown, seen in combination Fs_Rec*
0x00000010 | | Stand-alone (self-contained) service
0x00000020 | | Shared service
0x00000100 | | *Unknown, seen in combination with 0x00000010 and 0x00000020. Goes back to Windows 2000 maybe to indicate a network service.*