| 
					
				 | 
			
			
				@@ -53,6 +53,8 @@ std::string InstallService(PSTR pszServiceName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     char szPathTmp[MAX_PATH],szPath[MAX_PATH]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     SC_HANDLE schSCManager = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     SC_HANDLE schService = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SERVICE_DESCRIPTION sd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    LPTSTR szDesc = TEXT("ZeroTier network virtualization service."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (GetModuleFileName(NULL, szPathTmp, ARRAYSIZE(szPath)) == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,7 +79,7 @@ std::string InstallService(PSTR pszServiceName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         schSCManager,                   // SCManager database 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pszServiceName,                 // Name of service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pszDisplayName,                 // Name to display 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SERVICE_QUERY_STATUS,           // Desired access 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SERVICE_ALL_ACCESS,             // Desired access 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SERVICE_WIN32_OWN_PROCESS,      // Service type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dwStartType,                    // Service start type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SERVICE_ERROR_NORMAL,           // Error control type 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -94,6 +96,9 @@ std::string InstallService(PSTR pszServiceName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         goto Cleanup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Setup service description 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sd.lpDescription = szDesc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ChangeServiceConfig2(schService, SERVICE_CONFIG_DESCRIPTION, &sd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Cleanup: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // Centralized cleanup for all allocated resources. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (schSCManager) 
			 |