Skip to content

Commit 88a7098

Browse files
committed
[ServiceManager] Add service dependency fields
1 parent aca4ecc commit 88a7098

File tree

4 files changed

+364
-30
lines changed

4 files changed

+364
-30
lines changed

Elements/ServiceManagement/WindowsService.vb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@
3636
Public Property Type As ServiceType
3737
Public Property ErrorControl As ServiceErrorControl
3838
Public Property RequiredPrivileges As New List(Of NTSecurityPrivilegeConstant)
39+
Public Property Dependencies As String()
3940

40-
Public Sub New(name As String, displayName As String, description As String, objectName As String, imagePath As String, startType As ServiceStartType, delayedStart As Boolean, type As ServiceType, errorControl As ServiceErrorControl, ntPrivileges As List(Of NTSecurityPrivilegeConstant))
41+
Public Sub New(name As String, displayName As String, description As String, objectName As String, imagePath As String, startType As ServiceStartType, delayedStart As Boolean, type As ServiceType, errorControl As ServiceErrorControl, ntPrivileges As List(Of NTSecurityPrivilegeConstant), deps As String())
4142
Me.Name = name
4243
Me.DisplayName = displayName
4344
Me.Description = description
@@ -48,6 +49,7 @@
4849
Me.Type = type
4950
Me.ErrorControl = errorControl
5051
Me.RequiredPrivileges = ntPrivileges
52+
Me.Dependencies = deps
5153
End Sub
5254

5355
Public Function StartTypeToString() As String

Elements/ServiceManagement/WindowsServiceHelper.vb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,8 @@ Module WindowsServiceHelper
253253
serviceDelayedStart As Boolean = False,
254254
serviceType As WindowsService.ServiceType = WindowsService.ServiceType.Unknown,
255255
serviceErrorControl As WindowsService.ServiceErrorControl = WindowsService.ServiceErrorControl.Unknown,
256-
serviceRequiredPrivilegesString() As String = New String() {}
256+
serviceRequiredPrivilegesString() As String = New String() {},
257+
serviceDependencies() As String = New String() {}
257258
Using ServiceInfoRk As RegistryKey = Registry.LocalMachine.OpenSubKey(String.Format("zSYS\ControlSet{0}\Services\{1}", DefaultControlSet.ToString().PadLeft(3, "0"), ServiceName), False)
258259
' We explicitly tell that we want to grab the raw data without env var expansion because REG_EXPAND_SZ values
259260
' are still string values, but with unexpanded environment variables. If the variable exists in the target system,
@@ -283,6 +284,8 @@ Module WindowsServiceHelper
283284
serviceErrorControl = ServiceInfoRk.GetValue("ErrorControl", -1)
284285
' The required privileges property is a multi-value registry value, so we need an array
285286
serviceRequiredPrivilegesString = ServiceInfoRk.GetValue("RequiredPrivileges", New String() {})
287+
' Same goes for dependencies
288+
serviceDependencies = ServiceInfoRk.GetValue("DependOnService", New String() {})
286289

287290
Dim serviceRequiredPrivilegeList As New List(Of NTSecurityPrivilegeConstant)
288291

@@ -307,7 +310,8 @@ Module WindowsServiceHelper
307310
serviceDelayedStart,
308311
serviceType,
309312
serviceErrorControl,
310-
serviceRequiredPrivilegeList))
313+
serviceRequiredPrivilegeList,
314+
serviceDependencies))
311315
End Using
312316
Next
313317
Catch ex As Exception

0 commit comments

Comments
 (0)