mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[W32TIME] Improve w32time setup
- Remove w32time from hivesys.inf - Implement DllRegisterServer - Add DllUnregisterServer stub - Register w32time at the end of setup phase 2
This commit is contained in:
parent
6358c4ac9f
commit
3d8d88eaf9
10 changed files with 331 additions and 27 deletions
|
@ -4,9 +4,11 @@ spec2def(w32time.dll w32time.spec ADD_IMPORTLIB)
|
||||||
add_library(w32time MODULE
|
add_library(w32time MODULE
|
||||||
w32time.c
|
w32time.c
|
||||||
ntpclient.c
|
ntpclient.c
|
||||||
|
register.c
|
||||||
|
w32time.rc
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/w32time.def)
|
${CMAKE_CURRENT_BINARY_DIR}/w32time.def)
|
||||||
|
|
||||||
set_module_type(w32time win32dll UNICODE)
|
set_module_type(w32time win32dll UNICODE)
|
||||||
|
|
||||||
add_importlibs(w32time ws2_32 advapi32 msvcrt kernel32 ntdll)
|
add_importlibs(w32time ws2_32 advapi32 msvcrt user32 kernel32 ntdll)
|
||||||
add_cd_file(TARGET w32time DESTINATION reactos/system32 FOR all)
|
add_cd_file(TARGET w32time DESTINATION reactos/system32 FOR all)
|
||||||
|
|
7
base/services/w32time/lang/de-DE.rc
Normal file
7
base/services/w32time/lang/de-DE.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
BEGIN
|
||||||
|
IDS_DISPLAYNAME "Zeitgeberdienst"
|
||||||
|
IDS_DESCRIPTION "Verwaltet die Datum- und Uhrzeitsynchronisation auf allen Clients und Servern im Netzwerk."
|
||||||
|
END
|
7
base/services/w32time/lang/en-US.rc
Normal file
7
base/services/w32time/lang/en-US.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
BEGIN
|
||||||
|
IDS_DISPLAYNAME "Time Service"
|
||||||
|
IDS_DESCRIPTION "Maintains date and time synchronization on all clients and servers on the network."
|
||||||
|
END
|
286
base/services/w32time/register.c
Normal file
286
base/services/w32time/register.c
Normal file
|
@ -0,0 +1,286 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: ReactOS W32Time Service
|
||||||
|
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
|
||||||
|
* PURPOSE: Service Registration
|
||||||
|
* COPYRIGHT: Copyright 2021 Eric Kohl <ekohl@reactos.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "w32time.h"
|
||||||
|
#include <debug.h>
|
||||||
|
#include <strsafe.h>
|
||||||
|
|
||||||
|
#include "resource.h"
|
||||||
|
|
||||||
|
static
|
||||||
|
PWSTR
|
||||||
|
ReadString(
|
||||||
|
_In_ UINT uID)
|
||||||
|
{
|
||||||
|
HINSTANCE hInstance;
|
||||||
|
int nLength;
|
||||||
|
PWSTR pszString, pszPtr;
|
||||||
|
|
||||||
|
hInstance = GetModuleHandleW(L"w32time");
|
||||||
|
if (hInstance == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
nLength = LoadStringW(hInstance, uID, (LPWSTR)&pszPtr, 0);
|
||||||
|
if (nLength == 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
pszString = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (nLength + 1) * sizeof(WCHAR));
|
||||||
|
if (pszString == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
wcsncpy(pszString, pszPtr, nLength);
|
||||||
|
|
||||||
|
return pszString;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static
|
||||||
|
HRESULT
|
||||||
|
RegisterService(VOID)
|
||||||
|
{
|
||||||
|
SC_HANDLE hServiceManager = NULL;
|
||||||
|
SC_HANDLE hService = NULL;
|
||||||
|
HKEY hKey = NULL;
|
||||||
|
PWSTR pszValue;
|
||||||
|
PWSTR pszDisplayName = NULL, pszDescription = NULL;
|
||||||
|
DWORD dwDisposition, dwError;
|
||||||
|
SERVICE_DESCRIPTIONW ServiceDescription;
|
||||||
|
HRESULT hresult = S_OK;
|
||||||
|
|
||||||
|
DPRINT("RegisterService()\n");
|
||||||
|
|
||||||
|
hServiceManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
|
||||||
|
if (hServiceManager == NULL)
|
||||||
|
{
|
||||||
|
DPRINT1("OpenSCManager() failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
pszDisplayName = ReadString(IDS_DISPLAYNAME);
|
||||||
|
if (pszDisplayName == NULL)
|
||||||
|
{
|
||||||
|
DPRINT1("ReadString(IDS_DISPLAYNAME) failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
pszDescription = ReadString(IDS_DESCRIPTION);
|
||||||
|
if (pszDescription == NULL)
|
||||||
|
{
|
||||||
|
DPRINT1("ReadString(IDS_DESCRIPTION) failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
hService = CreateServiceW(hServiceManager,
|
||||||
|
L"W32Time",
|
||||||
|
pszDisplayName,
|
||||||
|
GENERIC_WRITE,
|
||||||
|
SERVICE_WIN32_SHARE_PROCESS,
|
||||||
|
SERVICE_AUTO_START,
|
||||||
|
SERVICE_ERROR_NORMAL,
|
||||||
|
L"%SystemRoot%\\system32\\svchost.exe -k netsvcs",
|
||||||
|
L"Time", NULL, NULL, L"LocalSystem", NULL);
|
||||||
|
if (hService == NULL)
|
||||||
|
{
|
||||||
|
DPRINT1("CreateService() failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
ServiceDescription.lpDescription = pszDescription;
|
||||||
|
if (ChangeServiceConfig2W(hService,
|
||||||
|
SERVICE_CONFIG_DESCRIPTION,
|
||||||
|
&ServiceDescription) == FALSE)
|
||||||
|
{
|
||||||
|
DPRINT1("ChangeServiceConfig2() failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
dwError = RegCreateKeyExW(HKEY_LOCAL_MACHINE,
|
||||||
|
L"System\\CurrentControlSet\\Services\\W32Time\\Parameters",
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_WRITE,
|
||||||
|
NULL,
|
||||||
|
&hKey,
|
||||||
|
&dwDisposition);
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT1("RegCreateKeyEx() failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
pszValue = L"%SystemRoot%\\system32\\w32time.dll";
|
||||||
|
dwError = RegSetValueExW(hKey,
|
||||||
|
L"ServiceDll",
|
||||||
|
0,
|
||||||
|
REG_EXPAND_SZ,
|
||||||
|
(LPBYTE)pszValue,
|
||||||
|
(wcslen(pszValue) + 1) * sizeof(WCHAR));
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT1("RegSetValueEx() failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
pszValue = L"SvchostEntry_W32Time";
|
||||||
|
dwError = RegSetValueExW(hKey,
|
||||||
|
L"ServiceMain",
|
||||||
|
0,
|
||||||
|
REG_SZ,
|
||||||
|
(LPBYTE)pszValue,
|
||||||
|
(wcslen(pszValue) + 1) * sizeof(WCHAR));
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT1("RegSetValueEx() failed!\n");
|
||||||
|
hresult = E_FAIL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
done:
|
||||||
|
if (hKey)
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
|
||||||
|
if (hService)
|
||||||
|
CloseServiceHandle(hService);
|
||||||
|
|
||||||
|
if (hServiceManager)
|
||||||
|
CloseServiceHandle(hServiceManager);
|
||||||
|
|
||||||
|
if (pszDescription)
|
||||||
|
HeapFree(GetProcessHeap(), 0, pszDescription);
|
||||||
|
|
||||||
|
if (pszDisplayName)
|
||||||
|
HeapFree(GetProcessHeap(), 0, pszDisplayName);
|
||||||
|
|
||||||
|
return hresult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static
|
||||||
|
HRESULT
|
||||||
|
SetParametersValues(VOID)
|
||||||
|
{
|
||||||
|
HKEY hKey = NULL;
|
||||||
|
PWSTR pszValue;
|
||||||
|
DWORD dwDisposition, dwError;
|
||||||
|
HRESULT hresult = S_OK;
|
||||||
|
|
||||||
|
dwError = RegCreateKeyExW(HKEY_LOCAL_MACHINE,
|
||||||
|
L"System\\CurrentControlSet\\Services\\W32Time\\Parameters",
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_WRITE,
|
||||||
|
NULL,
|
||||||
|
&hKey,
|
||||||
|
&dwDisposition);
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT1("RegCreateKeyEx() failed!\n");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
pszValue = L"NTP";
|
||||||
|
dwError = RegSetValueExW(hKey,
|
||||||
|
L"Type",
|
||||||
|
0,
|
||||||
|
REG_SZ,
|
||||||
|
(LPBYTE)pszValue,
|
||||||
|
(wcslen(pszValue) + 1) * sizeof(WCHAR));
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT1("RegSetValueEx() failed!\n");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
done:
|
||||||
|
if (hKey)
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
|
||||||
|
return hresult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static
|
||||||
|
HRESULT
|
||||||
|
SetNtpClientValues(VOID)
|
||||||
|
{
|
||||||
|
HKEY hKey = NULL;
|
||||||
|
DWORD dwValue;
|
||||||
|
DWORD dwDisposition, dwError;
|
||||||
|
HRESULT hresult = S_OK;
|
||||||
|
|
||||||
|
dwError = RegCreateKeyExW(HKEY_LOCAL_MACHINE,
|
||||||
|
L"System\\CurrentControlSet\\Services\\W32Time\\TimeProviders\\NtpClient",
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
REG_OPTION_NON_VOLATILE,
|
||||||
|
KEY_WRITE,
|
||||||
|
NULL,
|
||||||
|
&hKey,
|
||||||
|
&dwDisposition);
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT1("RegCreateKeyEx() failed!\n");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
dwValue = 0x00093a80;
|
||||||
|
dwError = RegSetValueExW(hKey,
|
||||||
|
L"SpecialPollInterval",
|
||||||
|
0,
|
||||||
|
REG_DWORD,
|
||||||
|
(LPBYTE)&dwValue,
|
||||||
|
sizeof(dwValue));
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT1("RegSetValueEx() failed!\n");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
done:
|
||||||
|
if (hKey)
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
|
||||||
|
return hresult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT
|
||||||
|
WINAPI
|
||||||
|
DllRegisterServer(VOID)
|
||||||
|
{
|
||||||
|
HRESULT hresult;
|
||||||
|
|
||||||
|
hresult = RegisterService();
|
||||||
|
if (FAILED(hresult))
|
||||||
|
return hresult;
|
||||||
|
|
||||||
|
hresult = SetParametersValues();
|
||||||
|
if (FAILED(hresult))
|
||||||
|
return hresult;
|
||||||
|
|
||||||
|
hresult = SetNtpClientValues();
|
||||||
|
|
||||||
|
return hresult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT
|
||||||
|
WINAPI
|
||||||
|
DllUnregisterServer(VOID)
|
||||||
|
{
|
||||||
|
DPRINT1("DllUnregisterServer()\n");
|
||||||
|
return S_OK;
|
||||||
|
}
|
4
base/services/w32time/resource.h
Normal file
4
base/services/w32time/resource.h
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define IDS_DISPLAYNAME 200
|
||||||
|
#define IDS_DESCRIPTION 201
|
|
@ -12,6 +12,7 @@
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <winsvc.h>
|
#include <winsvc.h>
|
||||||
|
#include <winuser.h>
|
||||||
|
|
||||||
#define MAX_VALUE_NAME 16383
|
#define MAX_VALUE_NAME 16383
|
||||||
#define NTPPORT 123
|
#define NTPPORT 123
|
||||||
|
|
20
base/services/w32time/w32time.rc
Normal file
20
base/services/w32time/w32time.rc
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#include <windef.h>
|
||||||
|
#include <winuser.h>
|
||||||
|
|
||||||
|
#include "resource.h"
|
||||||
|
|
||||||
|
#define REACTOS_VERSION_DLL
|
||||||
|
#define REACTOS_STR_FILE_DESCRIPTION "Time Service"
|
||||||
|
#define REACTOS_STR_INTERNAL_NAME "w32time"
|
||||||
|
#define REACTOS_STR_ORIGINAL_FILENAME "w32time.dll"
|
||||||
|
#include <reactos/version.rc>
|
||||||
|
|
||||||
|
/* UTF-8 */
|
||||||
|
#pragma code_page(65001)
|
||||||
|
|
||||||
|
#ifdef LANGUAGE_DE_DE
|
||||||
|
#include "lang/de-DE.rc"
|
||||||
|
#endif
|
||||||
|
#ifdef LANGUAGE_EN_US
|
||||||
|
#include "lang/en-US.rc"
|
||||||
|
#endif
|
|
@ -1,3 +1,5 @@
|
||||||
|
@ stdcall -private DllRegisterServer()
|
||||||
|
@ stdcall -private DllUnregisterServer()
|
||||||
6 stdcall SvchostEntry_W32Time(long ptr) W32TmServiceMain
|
6 stdcall SvchostEntry_W32Time(long ptr) W32TmServiceMain
|
||||||
18 stdcall W32TimeSyncNow(wstr long long)
|
18 stdcall W32TimeSyncNow(wstr long long)
|
||||||
21 stdcall W32TmServiceMain(long ptr)
|
21 stdcall W32TmServiceMain(long ptr)
|
||||||
|
|
|
@ -2072,20 +2072,6 @@ HKLM,"SYSTEM\CurrentControlSet\Services\WlanSvc","ObjectName",0x00000000,"LocalS
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\WlanSvc","Start",0x00010001,0x00000002
|
HKLM,"SYSTEM\CurrentControlSet\Services\WlanSvc","Start",0x00010001,0x00000002
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\WlanSvc","Type",0x00010001,0x00000110
|
HKLM,"SYSTEM\CurrentControlSet\Services\WlanSvc","Type",0x00010001,0x00000110
|
||||||
|
|
||||||
; W32TIME service
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","DisplayName",0x00000000,%W32TIME_SERVICE%
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","Description",0x00000000,%W32TIME_SERVICE_DESCRIPTION%
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","ErrorControl",0x00010001,0x00000001
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","Group",0x00000000,"Time"
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","ImagePath",0x00020000,"%SystemRoot%\system32\svchost.exe -k netsvcs"
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","ObjectName",0x00000000,"LocalSystem"
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","Start",0x00010001,0x00000002
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time","Type",0x00010001,0x00000020
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time\Parameters","ServiceDll",0x00020000,"%SystemRoot%\system32\w32time.dll"
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time\Parameters","ServiceMain",0x00000000,"SvchostEntry_W32Time"
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time\Parameters","Type",0x00010000,"NTP"
|
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient","SpecialPollInterval",0x00010001,0x00093a80
|
|
||||||
|
|
||||||
; Simple TCP services
|
; Simple TCP services
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\tcpsvcs","Description",0x00000000,%TCPSVCS_SERVICE_DECRIPTION%
|
HKLM,"SYSTEM\CurrentControlSet\Services\tcpsvcs","Description",0x00000000,%TCPSVCS_SERVICE_DECRIPTION%
|
||||||
HKLM,"SYSTEM\CurrentControlSet\Services\tcpsvcs","DisplayName",0x00000000,%TCPSVCS_SERVICE%
|
HKLM,"SYSTEM\CurrentControlSet\Services\tcpsvcs","DisplayName",0x00000000,%TCPSVCS_SERVICE%
|
||||||
|
@ -2317,9 +2303,6 @@ WINMGMT_SERVICE_DESCRIPTION="Provides interface to system management information
|
||||||
WLANSVC_SERVICE="WLAN Service"
|
WLANSVC_SERVICE="WLAN Service"
|
||||||
WLANSVC_SERVICE_DESCRIPTION="WLAN Service"
|
WLANSVC_SERVICE_DESCRIPTION="WLAN Service"
|
||||||
|
|
||||||
W32TIME_SERVICE="Time Service"
|
|
||||||
W32TIME_SERVICE_DESCRIPTION="ReactOS Time Service"
|
|
||||||
|
|
||||||
WORKSTATION_SERVICE="Workstation"
|
WORKSTATION_SERVICE="Workstation"
|
||||||
WORKSTATION_SERVICE_DESCRIPTION="Responsible for creating and maintaining network connections to servers."
|
WORKSTATION_SERVICE_DESCRIPTION="Responsible for creating and maintaining network connections to servers."
|
||||||
|
|
||||||
|
@ -2474,9 +2457,6 @@ WINMGMT_SERVICE_DESCRIPTION="Dostarcza interfejs w celu uzyskiwania dostępu do
|
||||||
WLANSVC_SERVICE="Usługa WLAN"
|
WLANSVC_SERVICE="Usługa WLAN"
|
||||||
WLANSVC_SERVICE_DESCRIPTION="Usługa WLAN"
|
WLANSVC_SERVICE_DESCRIPTION="Usługa WLAN"
|
||||||
|
|
||||||
W32TIME_SERVICE="Usługa Czas"
|
|
||||||
W32TIME_SERVICE_DESCRIPTION="Usługa Czas systemu ReactOS"
|
|
||||||
|
|
||||||
WORKSTATION_SERVICE="Stacja robocza"
|
WORKSTATION_SERVICE="Stacja robocza"
|
||||||
WORKSTATION_SERVICE_DESCRIPTION="Tworzy i zachowuje połączenia sieciowe klientów z serwerami."
|
WORKSTATION_SERVICE_DESCRIPTION="Tworzy i zachowuje połączenia sieciowe klientów z serwerami."
|
||||||
|
|
||||||
|
@ -2936,9 +2916,6 @@ WINMGMT_SERVICE_DESCRIPTION="Proporciona una interfaz para la gestión de la inf
|
||||||
WLANSVC_SERVICE="Servicio de WLAN"
|
WLANSVC_SERVICE="Servicio de WLAN"
|
||||||
WLANSVC_SERVICE_DESCRIPTION="Servicio de redes inalámbricas WLAN."
|
WLANSVC_SERVICE_DESCRIPTION="Servicio de redes inalámbricas WLAN."
|
||||||
|
|
||||||
W32TIME_SERVICE="Servicio de hora"
|
|
||||||
W32TIME_SERVICE_DESCRIPTION="Servicio de hora para ReactOS"
|
|
||||||
|
|
||||||
WORKSTATION_SERVICE="Estación de trabajo"
|
WORKSTATION_SERVICE="Estación de trabajo"
|
||||||
WORKSTATION_SERVICE_DESCRIPTION="Es el responsable de crear y mantener las conexiones de redes LAN a los servidores."
|
WORKSTATION_SERVICE_DESCRIPTION="Es el responsable de crear y mantener las conexiones de redes LAN a los servidores."
|
||||||
|
|
||||||
|
@ -3092,9 +3069,6 @@ WINMGMT_SERVICE_DESCRIPTION="Sistem yönetim bilgisine arayüz sağlar."
|
||||||
WLANSVC_SERVICE="WLAN Hizmeti"
|
WLANSVC_SERVICE="WLAN Hizmeti"
|
||||||
WLANSVC_SERVICE_DESCRIPTION="WLAN Hizmeti"
|
WLANSVC_SERVICE_DESCRIPTION="WLAN Hizmeti"
|
||||||
|
|
||||||
W32TIME_SERVICE="Zaman Hizmeti"
|
|
||||||
W32TIME_SERVICE_DESCRIPTION="ReactOS Zaman Hizmeti"
|
|
||||||
|
|
||||||
WORKSTATION_SERVICE="İş İstasyonu"
|
WORKSTATION_SERVICE="İş İstasyonu"
|
||||||
WORKSTATION_SERVICE_DESCRIPTION="Sunuculara ağ bağlantılarını oluşturmaktan ve yönetmekten sorumludur."
|
WORKSTATION_SERVICE_DESCRIPTION="Sunuculara ağ bağlantılarını oluşturmaktan ve yönetmekten sorumludur."
|
||||||
|
|
||||||
|
|
|
@ -113,6 +113,7 @@ AddReg=Classes
|
||||||
11,,stobject.dll,1
|
11,,stobject.dll,1
|
||||||
11,,urlmon.dll,3
|
11,,urlmon.dll,3
|
||||||
11,,vbscript.dll,1
|
11,,vbscript.dll,1
|
||||||
|
11,,w32time.dll,1
|
||||||
11,,windowscodecs.dll,1
|
11,,windowscodecs.dll,1
|
||||||
11,,winhttp.dll,1
|
11,,winhttp.dll,1
|
||||||
11,,wininet.dll,2
|
11,,wininet.dll,2
|
||||||
|
|
Loading…
Reference in a new issue