-/* $Id: timezone.c,v 1.5 2003/07/11 01:23:16 royce Exp $
+/* $Id: timezone.c,v 1.6 2003/10/16 12:45:09 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
-#include <internal/registry.h>
#include <ntos/time.h>
#define NDEBUG
NTSTATUS STDCALL
RtlQueryTimeZoneInformation(PTIME_ZONE_INFORMATION TimeZoneInformation)
{
- HANDLE KeyHandle;
RTL_QUERY_REGISTRY_TABLE QueryTable[8];
UNICODE_STRING StandardName;
UNICODE_STRING DaylightName;
NTSTATUS Status;
DPRINT("RtlQueryTimeZoneInformation()\n");
-
- Status = RtlpGetRegistryHandle(RTL_REGISTRY_CONTROL,
- L"TimeZoneInformation",
- TRUE,
- &KeyHandle);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("RtlpGetRegistryHandle failed (Status %x)\n", Status);
- return Status;
- }
RtlZeroMemory(QueryTable,
sizeof(QueryTable));
QueryTable[6].Flags = RTL_QUERY_REGISTRY_DIRECT;
QueryTable[6].EntryContext = &TimeZoneInformation->DaylightDate;
- Status = RtlQueryRegistryValues(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
+ Status = RtlQueryRegistryValues(RTL_REGISTRY_CONTROL,
+ L"TimeZoneInformation",
QueryTable,
NULL,
NULL);
- NtClose(KeyHandle);
return Status;
}
NTSTATUS STDCALL
RtlSetTimeZoneInformation(PTIME_ZONE_INFORMATION TimeZoneInformation)
{
- HANDLE KeyHandle;
ULONG Length;
NTSTATUS Status;
DPRINT("RtlSetTimeZoneInformation()\n");
- Status = RtlpGetRegistryHandle(RTL_REGISTRY_CONTROL,
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
L"TimeZoneInformation",
- TRUE,
- &KeyHandle);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("RtlpGetRegistryHandle failed (Status %x)\n", Status);
- return Status;
- }
-
- Status = RtlWriteRegistryValue(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
L"Bias",
REG_DWORD,
&TimeZoneInformation->Bias,
sizeof(LONG));
if (!NT_SUCCESS(Status))
{
- NtClose(KeyHandle);
return Status;
}
Length = (wcslen(TimeZoneInformation->StandardName) + 1) * sizeof(WCHAR);
- Status = RtlWriteRegistryValue(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
+ L"TimeZoneInformation",
L"Standard Name",
REG_SZ,
TimeZoneInformation->StandardName,
Length);
if (!NT_SUCCESS(Status))
{
- NtClose(KeyHandle);
return Status;
}
- Status = RtlWriteRegistryValue(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
+ L"TimeZoneInformation",
L"Standard Bias",
REG_DWORD,
&TimeZoneInformation->StandardBias,
sizeof(LONG));
if (!NT_SUCCESS(Status))
{
- NtClose(KeyHandle);
return Status;
}
- Status = RtlWriteRegistryValue(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
+ L"TimeZoneInformation",
L"Standard Start",
REG_BINARY,
&TimeZoneInformation->StandardDate,
sizeof(SYSTEMTIME));
if (!NT_SUCCESS(Status))
{
- NtClose(KeyHandle);
return Status;
}
Length = (wcslen(TimeZoneInformation->DaylightName) + 1) * sizeof(WCHAR);
- Status = RtlWriteRegistryValue(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
+ L"TimeZoneInformation",
L"Daylight Name",
REG_SZ,
TimeZoneInformation->DaylightName,
Length);
if (!NT_SUCCESS(Status))
{
- NtClose(KeyHandle);
return Status;
}
- Status = RtlWriteRegistryValue(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
+ L"TimeZoneInformation",
L"Daylight Bias",
REG_DWORD,
&TimeZoneInformation->DaylightBias,
sizeof(LONG));
if (!NT_SUCCESS(Status))
{
- NtClose(KeyHandle);
return Status;
}
- Status = RtlWriteRegistryValue(RTL_REGISTRY_HANDLE,
- (PWSTR)KeyHandle,
+ Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
+ L"TimeZoneInformation",
L"Daylight Start",
REG_BINARY,
&TimeZoneInformation->DaylightDate,
sizeof(SYSTEMTIME));
- NtClose(KeyHandle);
-
return Status;
}