ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
November 2007
----- 2025 -----
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
20 participants
888 discussions
Start a n
N
ew thread
[fireball] 30680: - Fix prototype of NtLoadKeyEx. - Refactor CmiLoadHives using new config routines instead of deprecated cm routines. - Stop using deprecated CmiScanKeyForValue (delete regfile.c as a result). - Add code for parallel hive loading to speed up boot process, but don't yet fully use it due to changes required in linking hives. - Add code for new hive linking process (CmpCreateLinkNode/CmpDoOpen). Not yet used to avoid too many changes in one patch. - Add new code in CmiLoadHives to
by fireball@svn.reactos.org
Author: fireball Date: Thu Nov 22 21:38:32 2007 New Revision: 30680 URL:
http://svn.reactos.org/svn/reactos?rev=30680&view=rev
Log: - Fix prototype of NtLoadKeyEx. - Refactor CmiLoadHives using new config routines instead of deprecated cm routines. - Stop using deprecated CmiScanKeyForValue (delete regfile.c as a result). - Add code for parallel hive loading to speed up boot process, but don't yet fully use it due to changes required in linking hives. - Add code for new hive linking process (CmpCreateLinkNode/CmpDoOpen). Not yet used to avoid too many changes in one patch. - Add new code in CmiLoadHives to deal with updated linking process when it becomes used. - Implement NtLoadKey2 to cal NtLoadKeyEx. - Implement NtLoadKeyEx as a new config routine, using CmLoadKey, move out of Cm. - Add some more code in CmpInitializeSystemHive to deal with SYSTEM hive creation during setup, once hive linking is refactored. - Implement a new command except for flushing -- open: CmpCmdHiveOpen. Used by CmLoadKey. - Add support for impersonating the SYSTEM account if the hive can't be open in the current client security context. - Fill out CmpMachineHiveList, to be used in parallel hive loading. Removed: trunk/reactos/ntoskrnl/cm/regfile.c Modified: trunk/reactos/include/ndk/cmfuncs.h trunk/reactos/ntoskrnl/cm/ntfunc.c trunk/reactos/ntoskrnl/cm/registry.c trunk/reactos/ntoskrnl/cm/regobj.c trunk/reactos/ntoskrnl/config/cm.h trunk/reactos/ntoskrnl/config/cmapi.c trunk/reactos/ntoskrnl/config/cmdata.c trunk/reactos/ntoskrnl/config/cmlazy.c trunk/reactos/ntoskrnl/config/cmparse.c trunk/reactos/ntoskrnl/config/cmsysini.c trunk/reactos/ntoskrnl/config/ntapi.c trunk/reactos/ntoskrnl/ntoskrnl.rbuild trunk/reactos/ntoskrnl/sysfuncs.lst Modified: trunk/reactos/include/ndk/cmfuncs.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/cmfuncs.h?rev=…
============================================================================== --- trunk/reactos/include/ndk/cmfuncs.h (original) +++ trunk/reactos/include/ndk/cmfuncs.h Thu Nov 22 21:38:32 2007 @@ -139,10 +139,7 @@ IN POBJECT_ATTRIBUTES TargetKey, IN POBJECT_ATTRIBUTES SourceFile, IN ULONG Flags, - IN HANDLE TrustClassKey, - IN HANDLE Event, - IN ACCESS_MASK DesiredAccess, - OUT PHANDLE RootHandle + IN HANDLE TrustClassKey ); NTSTATUS Modified: trunk/reactos/ntoskrnl/cm/ntfunc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/ntfunc.c?rev=3…
============================================================================== --- trunk/reactos/ntoskrnl/cm/ntfunc.c (original) +++ trunk/reactos/ntoskrnl/cm/ntfunc.c Thu Nov 22 21:38:32 2007 @@ -578,65 +578,25 @@ return Status; } -/* - * NOTE: - * KeyObjectAttributes->RootDirectory specifies the handle to the parent key and - * KeyObjectAttributes->Name specifies the name of the key to load. - * Flags can be 0 or REG_NO_LAZY_FLUSH. - */ -NTSTATUS -NTAPI -NtLoadKey2 (IN POBJECT_ATTRIBUTES KeyObjectAttributes, - IN POBJECT_ATTRIBUTES FileObjectAttributes, - IN ULONG Flags) -{ - NTSTATUS Status; - PAGED_CODE(); - DPRINT ("NtLoadKey2() called\n"); - -#if 0 - if (!SeSinglePrivilegeCheck (SeRestorePrivilege, ExGetPreviousMode ())) - return STATUS_PRIVILEGE_NOT_HELD; -#endif - - /* Acquire hive lock */ - KeEnterCriticalRegion(); - ExAcquireResourceExclusiveLite(&CmpRegistryLock, TRUE); - - Status = CmiLoadHive (KeyObjectAttributes, - FileObjectAttributes->ObjectName, - Flags); - if (!NT_SUCCESS (Status)) - { - DPRINT1 ("CmiLoadHive() failed (Status %lx)\n", Status); - } - - /* Release hive lock */ - ExReleaseResourceLite(&CmpRegistryLock); - KeLeaveCriticalRegion(); - - return Status; -} - NTSTATUS NTAPI NtInitializeRegistry (IN USHORT Flag) { NTSTATUS Status; - + PAGED_CODE(); - + if (CmiRegistryInitialized == TRUE) return STATUS_ACCESS_DENIED; /* Save boot log file */ IopSaveBootLogToFile(); - + Status = CmiInitHives (Flag); - + CmpCmdInit(Flag); CmiRegistryInitialized = TRUE; - + return Status; } Removed: trunk/reactos/ntoskrnl/cm/regfile.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/regfile.c?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/cm/regfile.c (original) +++ trunk/reactos/ntoskrnl/cm/regfile.c (removed) @@ -1,84 +1,0 @@ -/* - * PROJECT: ReactOS Kernel - * COPYRIGHT: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/cm/regfile.c - * PURPOSE: Registry file manipulation routines - * - * PROGRAMMERS: Casper Hornstrup - * Eric Kohl - * Filip Navara - */ - -#include <ntoskrnl.h> -#define NDEBUG -#include <internal/debug.h> -#include "cm.h" - -/* LOCAL MACROS *************************************************************/ - -#define ABS_VALUE(V) (((V) < 0) ? -(V) : (V)) -#define REG_DATA_SIZE_MASK 0x7FFFFFFF -#define REG_DATA_IN_OFFSET 0x80000000 - -/* FUNCTIONS ****************************************************************/ - -NTSTATUS -CmiLoadHive(IN POBJECT_ATTRIBUTES KeyObjectAttributes, - IN PCUNICODE_STRING FileName, - IN ULONG Flags) -{ - PCMHIVE Hive = NULL; - NTSTATUS Status; - BOOLEAN Allocate = TRUE; - - DPRINT ("CmiLoadHive(Filename %wZ)\n", FileName); - - if (Flags & ~REG_NO_LAZY_FLUSH) return STATUS_INVALID_PARAMETER; - - Status = CmpInitHiveFromFile(FileName, - (Flags & REG_NO_LAZY_FLUSH) ? HIVE_NOLAZYFLUSH : 0, - &Hive, - &Allocate, - 0); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmpInitHiveFromFile() failed (Status %lx)\n", Status); - if (Hive) ExFreePool(Hive); - return Status; - } - - Status = CmiConnectHive(KeyObjectAttributes, Hive); - if (!NT_SUCCESS(Status)) - { - DPRINT1 ("CmiConnectHive() failed (Status %lx)\n", Status); - // CmiRemoveRegistryHive (Hive); - } - - DPRINT ("CmiLoadHive() done\n"); - return Status; -} - -NTSTATUS -CmiScanKeyForValue(IN PCMHIVE RegistryHive, - IN PCM_KEY_NODE KeyCell, - IN PUNICODE_STRING ValueName, - OUT PCM_KEY_VALUE *ValueCell, - OUT HCELL_INDEX *ValueCellOffset) -{ - HCELL_INDEX CellIndex; - - /* Assume failure */ - *ValueCell = NULL; - if (ValueCellOffset) *ValueCellOffset = HCELL_NIL; - - /* Call newer Cm API */ - CellIndex = CmpFindValueByName(&RegistryHive->Hive, KeyCell, ValueName); - if (CellIndex == HCELL_NIL) return STATUS_OBJECT_NAME_NOT_FOUND; - - /* Otherwise, get the cell data back too */ - if (ValueCellOffset) *ValueCellOffset = CellIndex; - *ValueCell = (PCM_KEY_VALUE)HvGetCell(&RegistryHive->Hive, CellIndex); - return STATUS_SUCCESS; -} - -/* EOF */ Modified: trunk/reactos/ntoskrnl/cm/registry.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/registry.c?rev…
============================================================================== --- trunk/reactos/ntoskrnl/cm/registry.c (original) +++ trunk/reactos/ntoskrnl/cm/registry.c Thu Nov 22 21:38:32 2007 @@ -328,6 +328,8 @@ ULONG BufferSize; ULONG ResultSize; PWSTR EndPtr; + PCMHIVE CmHive; + BOOLEAN Allocate = TRUE; DPRINT("CmiInitHives() called\n"); @@ -379,138 +381,172 @@ wcscpy(ConfigPath, L"\\SystemRoot"); } wcscat(ConfigPath, L"\\system32\\config"); - DPRINT("ConfigPath: %S\n", ConfigPath); - EndPtr = ConfigPath + wcslen(ConfigPath); - /* FIXME: Save boot log */ - + /* Setup the file name for the SECURITY hive */ + wcscpy(EndPtr, REG_SEC_FILE_NAME); + RtlInitUnicodeString(&FileName, ConfigPath); + DPRINT ("ConfigPath: %S\n", ConfigPath); + + /* Load the hive */ + Status = CmpInitHiveFromFile(&FileName, + 0, + &CmHive, + &Allocate, + 0); + + /* Setup the key name for the SECURITY hive */ + RtlInitUnicodeString(&KeyName, REG_SEC_KEY_NAME); + + Status = CmpLinkHiveToMaster(&KeyName, + NULL, + CmHive, + FALSE, + NULL); + + /* Connect the SOFTWARE hive */ + wcscpy(EndPtr, REG_SOFTWARE_FILE_NAME); + RtlInitUnicodeString(&FileName, ConfigPath); + DPRINT ("ConfigPath: %S\n", ConfigPath); + + /* Load the hive */ + Status = CmpInitHiveFromFile(&FileName, + 0, + &CmHive, + &Allocate, + 0); + + /* Setup the key name for the SECURITY hive */ + RtlInitUnicodeString (&KeyName, REG_SOFTWARE_KEY_NAME); + + Status = CmpLinkHiveToMaster(&KeyName, + NULL, + CmHive, + FALSE, + NULL); + /* Connect the SYSTEM hive only if it has been created */ if (SetupBoot == TRUE) { wcscpy(EndPtr, REG_SYSTEM_FILE_NAME); + RtlInitUnicodeString(&FileName, ConfigPath); DPRINT ("ConfigPath: %S\n", ConfigPath); - - RtlInitUnicodeString (&KeyName, - REG_SYSTEM_KEY_NAME); - InitializeObjectAttributes(&ObjectAttributes, - &KeyName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - - RtlInitUnicodeString (&FileName, - ConfigPath); - Status = CmiLoadHive (&ObjectAttributes, - &FileName, - 0); - if (!NT_SUCCESS(Status)) +#if 0 + HANDLE PrimaryHandle, LogHandle; + ULONG PrimaryDisposition, SecondaryDisposition; + ULONG ClusterSize, Length; + + /* Build the file name */ + wcscpy(EndPtr, REG_SYSTEM_FILE_NAME); + RtlInitUnicodeString(&FileName, ConfigPath); + DPRINT ("ConfigPath: %S\n", ConfigPath); + + /* Hive already exists */ + CmHive = CmpMachineHiveList[3].CmHive; + + /* Open the hive file and log */ + Status = CmpOpenHiveFiles(&FileName, + L".LOG", + &PrimaryHandle, + &LogHandle, + &PrimaryDisposition, + &SecondaryDisposition, + TRUE, + TRUE, + FALSE, + &ClusterSize); + if (!(NT_SUCCESS(Status)) || !(LogHandle)) { - DPRINT1 ("CmiLoadHive() failed (Status %lx)\n", Status); - return Status; + /* Bugcheck */ + KeBugCheck(BAD_SYSTEM_CONFIG_INFO); } + + /* Save the file handles */ + CmHive->FileHandles[HFILE_TYPE_LOG] = LogHandle; + CmHive->FileHandles[HFILE_TYPE_PRIMARY] = PrimaryHandle; + + /* Allow lazy flushing since the handles are there */ + ASSERT(CmHive->Hive.HiveFlags & HIVE_NOLAZYFLUSH); + CmHive->Hive.HiveFlags &= ~HIVE_NOLAZYFLUSH; + + /* Get the real size of the hive */ + Length = CmHive->Hive.Storage[Stable].Length + HBLOCK_SIZE; + + /* Check if the cluster size doesn't match */ + if (CmHive->Hive.Cluster != ClusterSize) ASSERT(FALSE); + + /* Set the file size */ + if (!CmpFileSetSize((PHHIVE)CmHive, HFILE_TYPE_PRIMARY, Length, Length)) + { + /* This shouldn't fail */ + ASSERT(FALSE); + } + + /* Setup the key name for the SECURITY hive */ + RtlInitUnicodeString (&KeyName, REG_SYSTEM_KEY_NAME); +#else + /* Load the hive */ + Status = CmpInitHiveFromFile(&FileName, + 0, + &CmHive, + &Allocate, + 0); + + /* Setup the key name for the SECURITY hive */ + RtlInitUnicodeString (&KeyName, REG_SYSTEM_KEY_NAME); + + Status = CmpLinkHiveToMaster(&KeyName, + NULL, + CmHive, + FALSE, + NULL); Status = CmiInitControlSetLink (); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiInitControlSetLink() failed (Status %lx)\n", Status); - return(Status); - } - } - - /* Connect the SOFTWARE hive */ - wcscpy(EndPtr, REG_SOFTWARE_FILE_NAME); - RtlInitUnicodeString (&FileName, - ConfigPath); +#endif + } + + /* Connect the DEFAULT hive */ + wcscpy(EndPtr, REG_DEFAULT_USER_FILE_NAME); + RtlInitUnicodeString(&FileName, ConfigPath); DPRINT ("ConfigPath: %S\n", ConfigPath); - RtlInitUnicodeString (&KeyName, - REG_SOFTWARE_KEY_NAME); - InitializeObjectAttributes(&ObjectAttributes, - &KeyName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - - Status = CmiLoadHive (&ObjectAttributes, - &FileName, - 0); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiInitializeHive() failed (Status %lx)\n", Status); - return(Status); - } + /* Load the hive */ + Status = CmpInitHiveFromFile(&FileName, + 0, + &CmHive, + &Allocate, + 0); + + /* Setup the key name for the SECURITY hive */ + RtlInitUnicodeString (&KeyName, REG_DEFAULT_USER_KEY_NAME); + + Status = CmpLinkHiveToMaster(&KeyName, + NULL, + CmHive, + FALSE, + NULL); /* Connect the SAM hive */ wcscpy(EndPtr, REG_SAM_FILE_NAME); - RtlInitUnicodeString (&FileName, - ConfigPath); + RtlInitUnicodeString(&FileName, ConfigPath); DPRINT ("ConfigPath: %S\n", ConfigPath); - - RtlInitUnicodeString (&KeyName, - REG_SAM_KEY_NAME); - InitializeObjectAttributes(&ObjectAttributes, - &KeyName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - Status = CmiLoadHive (&ObjectAttributes, - &FileName, - 0); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiInitializeHive() failed (Status %lx)\n", Status); - return(Status); - } - - /* Connect the SECURITY hive */ - wcscpy(EndPtr, REG_SEC_FILE_NAME); - RtlInitUnicodeString (&FileName, - ConfigPath); - DPRINT ("ConfigPath: %S\n", ConfigPath); - - RtlInitUnicodeString (&KeyName, - REG_SEC_KEY_NAME); - InitializeObjectAttributes(&ObjectAttributes, - &KeyName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - Status = CmiLoadHive (&ObjectAttributes, - &FileName, - 0); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiInitializeHive() failed (Status %lx)\n", Status); - return(Status); - } - - /* Connect the DEFAULT hive */ - wcscpy(EndPtr, REG_DEFAULT_USER_FILE_NAME); - RtlInitUnicodeString (&FileName, - ConfigPath); - DPRINT ("ConfigPath: %S\n", ConfigPath); - - RtlInitUnicodeString (&KeyName, - REG_DEFAULT_USER_KEY_NAME); - InitializeObjectAttributes(&ObjectAttributes, - &KeyName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - Status = CmiLoadHive (&ObjectAttributes, - &FileName, - 0); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiInitializeHive() failed (Status %lx)\n", Status); - return(Status); - } - - DPRINT("CmiInitHives() done\n"); - - return(STATUS_SUCCESS); + + /* Load the hive */ + Status = CmpInitHiveFromFile(&FileName, + 0, + &CmHive, + &Allocate, + 0); + + /* Setup the key name for the SECURITY hive */ + RtlInitUnicodeString(&KeyName, REG_SAM_KEY_NAME); + Status = CmpLinkHiveToMaster(&KeyName, + NULL, + CmHive, + FALSE, + NULL); + return Status; } VOID Modified: trunk/reactos/ntoskrnl/cm/regobj.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/regobj.c?rev=3…
============================================================================== --- trunk/reactos/ntoskrnl/cm/regobj.c (original) +++ trunk/reactos/ntoskrnl/cm/regobj.c Thu Nov 22 21:38:32 2007 @@ -838,22 +838,20 @@ UNICODE_STRING LinkName = RTL_CONSTANT_STRING(L"SymbolicLinkValue"); PCM_KEY_VALUE ValueCell; PVOID DataCell; - NTSTATUS Status; + HCELL_INDEX Cell; DPRINT("CmiGetLinkTarget() called\n"); - /* Get Value block of interest */ - Status = CmiScanKeyForValue(RegistryHive, - KeyCell, - &LinkName, - &ValueCell, - NULL); - if (!NT_SUCCESS(Status)) - { - DPRINT1("CmiScanKeyForValue() failed (Status %lx)\n", Status); - return(Status); - } - + /* Find the cell */ + Cell = CmpFindValueByName(&RegistryHive->Hive, KeyCell, &LinkName); + if (Cell == HCELL_NIL) + { + DPRINT1("CmiScanKeyForValue() failed\n"); + return STATUS_OBJECT_NAME_NOT_FOUND; + } + + /* Get the cell data */ + ValueCell = (PCM_KEY_VALUE)HvGetCell(&RegistryHive->Hive, Cell); if (ValueCell->Type != REG_LINK) { DPRINT1("Type != REG_LINK\n!"); Modified: trunk/reactos/ntoskrnl/config/cm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cm.h?rev=3…
============================================================================== --- trunk/reactos/ntoskrnl/config/cm.h (original) +++ trunk/reactos/ntoskrnl/config/cm.h Thu Nov 22 21:38:32 2007 @@ -86,11 +86,16 @@ #define MAXIMUM_CACHED_DATA 2 * PAGE_SIZE // +// Hives to load on startup +// +#define CM_NUMBER_OF_MACHINE_HIVES 6 + +// // Number of items that can fit inside an Allocation Page // #define CM_KCBS_PER_PAGE \ PAGE_SIZE / sizeof(CM_KEY_CONTROL_BLOCK) -#define CM_DELAYS_PER_PAGE \ +#define CM_DELAYS_PER_PAGE \ PAGE_SIZE / sizeof(CM_DELAYED_CLOSE_ENTRY) // @@ -429,9 +434,8 @@ // typedef struct _HIVE_LIST_ENTRY { - PWCHAR FileName; - PWCHAR BaseName; - PWCHAR RegRootName; + PWSTR Name; + PWSTR BaseName; PCMHIVE CmHive; ULONG HHiveFlags; ULONG CmHiveFlags; @@ -439,7 +443,6 @@ BOOLEAN ThreadFinished; BOOLEAN ThreadStarted; BOOLEAN Allocate; - BOOLEAN WinPERequired; } HIVE_LIST_ENTRY, *PHIVE_LIST_ENTRY; // @@ -759,6 +762,12 @@ IN ULONG CheckFlags ); +VOID +NTAPI +CmpInitializeHiveList( + IN USHORT Flag +); + // // Registry Utility Functions // @@ -956,7 +965,7 @@ ); // -// Flush Routines +// Command Routines (Flush, Open, Close, Init); // BOOLEAN NTAPI @@ -974,6 +983,16 @@ NTAPI CmpCmdInit( IN BOOLEAN SetupBoot +); + +NTSTATUS +NTAPI +CmpCmdHiveOpen( + IN POBJECT_ATTRIBUTES FileAttributes, + IN PSECURITY_CLIENT_CONTEXT ImpersonationContext, + IN OUT PBOOLEAN Allocate, + OUT PCMHIVE *NewHive, + IN ULONG CheckFlags ); VOID @@ -1351,7 +1370,7 @@ extern ULONG CmpConfigurationAreaSize; extern PCM_FULL_RESOURCE_DESCRIPTOR CmpConfigurationData; extern UNICODE_STRING CmTypeName[]; -extern HIVE_LIST_ENTRY CmpMachineHiveList[5]; +extern HIVE_LIST_ENTRY CmpMachineHiveList[]; extern UNICODE_STRING CmSymbolicLinkValueName; extern UNICODE_STRING CmpSystemStartOptions; extern UNICODE_STRING CmpLoadOptions; Modified: trunk/reactos/ntoskrnl/config/cmapi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmapi.c?re…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmapi.c (original) +++ trunk/reactos/ntoskrnl/config/cmapi.c Thu Nov 22 21:38:32 2007 @@ -12,9 +12,6 @@ #include "cm.h" #define NDEBUG #include "debug.h" - -NTSTATUS -CmiFlushRegistryHive(PCMHIVE RegistryHive); /* FUNCTIONS *****************************************************************/ @@ -892,7 +889,7 @@ Info->KeyFullInformation.MaxNameLen = Node->MaxNameLen; Info->KeyFullInformation.MaxClassLen = Node->MaxClassLen; Info->KeyFullInformation.MaxValueNameLen = Node->MaxValueNameLen; - Info->KeyFullInformation.MaxValueDataLen = Node->MaxValueDataLen; + Info->KeyFullInformation.MaxValueDataLen = Node->MaxValueDataLen; /* Check if we have a class */ if (Node->ClassLength > 0) @@ -1202,3 +1199,121 @@ /* Return the status */ return Status; } + +NTSTATUS +NTAPI +CmLoadKey(IN POBJECT_ATTRIBUTES TargetKey, + IN POBJECT_ATTRIBUTES SourceFile, + IN ULONG Flags, + IN PKEY_OBJECT KeyBody) +{ + SECURITY_QUALITY_OF_SERVICE ServiceQos; + SECURITY_CLIENT_CONTEXT ClientSecurityContext; + HANDLE KeyHandle; + BOOLEAN Allocate = TRUE; + PCMHIVE CmHive; + NTSTATUS Status; + + /* Check if we have a trust key */ + if (KeyBody) + { + /* Fail */ + DPRINT1("Trusted classes not yet supported\n"); + return STATUS_NOT_IMPLEMENTED; + } + + /* Build a service QoS for a security context */ + ServiceQos.Length = sizeof(SECURITY_QUALITY_OF_SERVICE); + ServiceQos.ImpersonationLevel = SecurityImpersonation; + ServiceQos.ContextTrackingMode = SECURITY_DYNAMIC_TRACKING; + ServiceQos.EffectiveOnly = TRUE; + Status = SeCreateClientSecurity(PsGetCurrentThread(), + &ServiceQos, + FALSE, + &ClientSecurityContext); + if (!NT_SUCCESS(Status)) + { + /* Fail */ + DPRINT1("Security context failed\n"); + return Status; + } + + /* Open the target key */ + Status = ZwOpenKey(&KeyHandle, KEY_READ, TargetKey); + if (!NT_SUCCESS(Status)) KeyHandle = NULL; + + /* Open the hive */ + Status = CmpCmdHiveOpen(SourceFile, + &ClientSecurityContext, + &Allocate, + &CmHive, + 0); + + /* Get rid of the security context */ + SeDeleteClientSecurity(&ClientSecurityContext); + + /* See if we failed */ + if (!NT_SUCCESS(Status)) + { + /* See if the target already existed */ + if (KeyHandle) + { + /* Lock the registry */ + CmpLockRegistryExclusive(); + + /* FIXME: Check if we are already loaded */ + + /* Release the registry */ + CmpUnlockRegistry(); + } + + /* Close the key handle if we had one */ + if (KeyHandle) ZwClose(KeyHandle); + DPRINT1("Failed: %lx\n", Status); + return Status; + } + + /* Lock the registry shared */ + //CmpLockRegistry(); + + /* Lock the hive to this thread */ + CmHive->Hive.HiveFlags |= HIVE_IS_UNLOADING; + CmHive->CreatorOwner = KeGetCurrentThread(); + + /* Set flag */ + if (Flags & REG_NO_LAZY_FLUSH) CmHive->Hive.HiveFlags |= HIVE_NOLAZYFLUSH; + + /* Link the hive */ + Status = CmpLinkHiveToMaster(TargetKey->ObjectName, + TargetKey->RootDirectory, + CmHive, + FALSE, + TargetKey->SecurityDescriptor); + if (NT_SUCCESS(Status)) + { + /* FIXME: Add to HiveList key */ + + /* Sync the hive if necessary */ + if (Allocate) + { + /* Sync it */ + HvSyncHive(&CmHive->Hive); + } + + /* Release the hive */ + CmHive->Hive.HiveFlags &= ~HIVE_IS_UNLOADING; + CmHive->CreatorOwner = NULL; + } + else + { + /* FIXME: TODO */ + + } + + /* Unlock the registry */ + //CmpUnlockRegistry(); + + /* Close handle and return */ + if (KeyHandle) ZwClose(KeyHandle); + return Status; +} Modified: trunk/reactos/ntoskrnl/config/cmdata.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmdata.c?r…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmdata.c (original) +++ trunk/reactos/ntoskrnl/config/cmdata.c Thu Nov 22 21:38:32 2007 @@ -38,7 +38,16 @@ EX_PUSH_LOCK CmpHiveListHeadLock, CmpLoadHiveLock; -HIVE_LIST_ENTRY CmpMachineHiveList[5]; +HIVE_LIST_ENTRY CmpMachineHiveList[] = +{ + { L"HARDWARE", L"MACHINE\\", NULL, HIVE_VOLATILE , 0 , NULL, FALSE, FALSE, FALSE}, + { L"SECURITY", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, + { L"SOFTWARE", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, + { L"SYSTEM", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, + { L"DEFAULT", L"USER\\.DEFAULT", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, + { L"SAM", L"MACHINE\\", NULL, HIVE_NOLAZYFLUSH , 0 , NULL, FALSE, FALSE, FALSE}, + { NULL, NULL, 0, 0 , 0 , NULL, FALSE, FALSE, FALSE} +}; UNICODE_STRING CmSymbolicLinkValueName = RTL_CONSTANT_STRING(L"SymbolicLinkValue"); Modified: trunk/reactos/ntoskrnl/config/cmlazy.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmlazy.c?r…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmlazy.c (original) +++ trunk/reactos/ntoskrnl/config/cmlazy.c Thu Nov 22 21:38:32 2007 @@ -238,6 +238,56 @@ /* Testing: Force Lazy Flushing */ CmpHoldLazyFlush = FALSE; + + /* Setup the hive list */ + CmpInitializeHiveList(SetupBoot); +} + +NTSTATUS +NTAPI +CmpCmdHiveOpen(IN POBJECT_ATTRIBUTES FileAttributes, + IN PSECURITY_CLIENT_CONTEXT ImpersonationContext, + IN OUT PBOOLEAN Allocate, + OUT PCMHIVE *NewHive, + IN ULONG CheckFlags) +{ + PUNICODE_STRING FileName; + NTSTATUS Status; + PAGED_CODE(); + + /* Open the file in the current security context */ + FileName = FileAttributes->ObjectName; + Status = CmpInitHiveFromFile(FileName, + 0, + NewHive, + Allocate, + CheckFlags); + if (((Status == STATUS_ACCESS_DENIED) || + (Status == STATUS_NO_SUCH_USER) || + (Status == STATUS_WRONG_PASSWORD) || + (Status == STATUS_ACCOUNT_EXPIRED) || + (Status == STATUS_ACCOUNT_DISABLED) || + (Status == STATUS_ACCOUNT_RESTRICTION)) && + (ImpersonationContext)) + { + /* We failed due to an account/security error, impersonate SYSTEM */ + Status = SeImpersonateClientEx(ImpersonationContext, NULL); + if (NT_SUCCESS(Status)) + { + /* Now try again */ + Status = CmpInitHiveFromFile(FileName, + 0, + NewHive, + Allocate, + CheckFlags); + + /* Restore impersonation token */ + PsRevertToSelf(); + } + } + + /* Return status of open attempt */ + return Status; } VOID Modified: trunk/reactos/ntoskrnl/config/cmparse.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmparse.c?…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmparse.c (original) +++ trunk/reactos/ntoskrnl/config/cmparse.c Thu Nov 22 21:38:32 2007 @@ -416,3 +416,299 @@ ExReleasePushLock((PVOID)&((PCMHIVE)Hive)->FlusherLock); return Status; } + +NTSTATUS +NTAPI +CmpDoOpen(IN PHHIVE Hive, + IN HCELL_INDEX Cell, + IN PCM_KEY_NODE Node, + IN PACCESS_STATE AccessState, + IN KPROCESSOR_MODE AccessMode, + IN ULONG Attributes, + IN PCM_PARSE_CONTEXT Context OPTIONAL, + IN ULONG ControlFlags, + IN OUT PCM_KEY_CONTROL_BLOCK *CachedKcb, + IN PUNICODE_STRING KeyName, + OUT PVOID *Object) +{ + NTSTATUS Status; + PKEY_OBJECT KeyBody = NULL; + PCM_KEY_CONTROL_BLOCK Kcb = NULL; + + /* Make sure the hive isn't locked */ + if ((Hive->HiveFlags & HIVE_IS_UNLOADING) && + (((PCMHIVE)Hive)->CreatorOwner != KeGetCurrentThread())) + { + /* It is, don't touch it */ + return STATUS_OBJECT_NAME_NOT_FOUND; + } + + /* If we have a KCB, make sure it's locked */ + ASSERT(CmpIsKcbLockedExclusive(*CachedKcb)); + + /* Create the KCB */ + Kcb = CmpCreateKeyControlBlock(Hive, Cell, Node, *CachedKcb, 0, KeyName); + if (!Kcb) return STATUS_INSUFFICIENT_RESOURCES; + + /* Make sure it's also locked, and set the pointer */ + ASSERT(CmpIsKcbLockedExclusive(Kcb)); + *CachedKcb = Kcb; + + /* Allocate the key object */ + Status = ObCreateObject(AccessMode, + CmpKeyObjectType, + NULL, + AccessMode, + NULL, + sizeof(KEY_OBJECT), + 0, + 0, + Object); + if (NT_SUCCESS(Status)) + { + /* Get the key body and fill it out */ + KeyBody = (PKEY_OBJECT)(*Object); + KeyBody->KeyControlBlock = Kcb; + KeyBody->SubKeyCounts = 0; + KeyBody->SubKeys = NULL; + KeyBody->SizeOfSubKeys = 0; + InsertTailList(&CmiKeyObjectListHead, &KeyBody->KeyBodyList); + } + else + { + /* Failed, dereference the KCB */ + CmpDereferenceKeyControlBlockWithLock(Kcb, FALSE); + } + + /* Return status */ + return Status; +} + +/* Remove calls to CmCreateRootNode once this is used! */ +NTSTATUS +NTAPI +CmpCreateLinkNode(IN PHHIVE Hive, + IN HCELL_INDEX Cell, + IN PACCESS_STATE AccessState, + IN UNICODE_STRING Name, + IN KPROCESSOR_MODE AccessMode, + IN ULONG CreateOptions, + IN PCM_PARSE_CONTEXT Context, + IN PCM_KEY_CONTROL_BLOCK ParentKcb, + OUT PVOID *Object) +{ + NTSTATUS Status; + HCELL_INDEX KeyCell, LinkCell, ChildCell; + PKEY_OBJECT KeyBody; + LARGE_INTEGER TimeStamp; + PCM_KEY_NODE KeyNode; + PCM_KEY_CONTROL_BLOCK Kcb = ParentKcb; + + /* Link nodes only allowed on the master */ + if (Hive != &CmiVolatileHive->Hive) + { + /* Fail */ + DPRINT1("Invalid link node attempt\n"); + return STATUS_ACCESS_DENIED; + } + + /* Acquire the flusher locks */ + ExAcquirePushLockShared((PVOID)&((PCMHIVE)Hive)->FlusherLock); + ExAcquirePushLockShared((PVOID)&((PCMHIVE)Context->ChildHive.KeyHive)->FlusherLock); + + /* Check if the parent is being deleted */ + if (ParentKcb->Delete) + { + /* It is, quit */ + ASSERT(FALSE); + Status = STATUS_OBJECT_NAME_NOT_FOUND; + goto Exit; + } + + /* Allocate a link node */ + LinkCell = HvAllocateCell(Hive, + FIELD_OFFSET(CM_KEY_NODE, Name) + + CmpNameSize(Hive, &Name), + Stable, + HCELL_NIL); + if (LinkCell == HCELL_NIL) + { + /* Fail */ + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Exit; + } + + /* Get the key cell */ + KeyCell = Context->ChildHive.KeyCell; + if (KeyCell != HCELL_NIL) + { + /* Hive exists! */ + ChildCell = KeyCell; + + /* Get the node data */ + KeyNode = (PCM_KEY_NODE)HvGetCell(Context->ChildHive.KeyHive, ChildCell); + if (!KeyNode) + { + /* Fail */ + ASSERT(FALSE); + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Exit; + } + + /* Fill out the data */ + KeyNode->Parent = LinkCell; + KeyNode->Flags |= KEY_HIVE_ENTRY | KEY_NO_DELETE; + HvReleaseCell(Context->ChildHive.KeyHive, ChildCell); + + /* Now open the key cell */ + KeyNode = (PCM_KEY_NODE)HvGetCell(Context->ChildHive.KeyHive, KeyCell); + if (!KeyNode) + { + /* Fail */ + ASSERT(FALSE); + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Exit; + } + + /* Open the parent */ + Status = CmpDoOpen(Context->ChildHive.KeyHive, + KeyCell, + KeyNode, + AccessState, + AccessMode, + CreateOptions, + NULL, + 0, + &Kcb, + &Name, + Object); + HvReleaseCell(Context->ChildHive.KeyHive, KeyCell); + } + else + { + /* Do the actual create operation */ + Status = CmpDoCreateChild(Context->ChildHive.KeyHive, + Cell, + NULL, + AccessState, + &Name, + AccessMode, + &Context->Class, + ParentKcb, + KEY_HIVE_ENTRY | KEY_NO_DELETE, + &ChildCell, + Object); + if (NT_SUCCESS(Status)) + { + /* Setup root pointer */ + Context->ChildHive.KeyHive->BaseBlock->RootCell = ChildCell; + } + } + + /* Check if open or create suceeded */ + if (NT_SUCCESS(Status)) + { + /* Mark the cell dirty */ + HvMarkCellDirty(Context->ChildHive.KeyHive, ChildCell, FALSE); + + /* Get the key node */ + KeyNode = HvGetCell(Context->ChildHive.KeyHive, ChildCell); + if (!KeyNode) + { + /* Fail */ + ASSERT(FALSE); + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Exit; + } + + /* Release it */ + HvReleaseCell(Context->ChildHive.KeyHive, ChildCell); + + /* Set the parent adn flags */ + KeyNode->Parent = LinkCell; + KeyNode->Flags |= KEY_HIVE_ENTRY | KEY_NO_DELETE; + + /* Get the link node */ + KeyNode = HvGetCell(Hive, LinkCell); + if (!KeyNode) + { + /* Fail */ + ASSERT(FALSE); + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Exit; + } + + /* Set it up */ + KeyNode->Signature = CM_LINK_NODE_SIGNATURE; + KeyNode->Flags = KEY_HIVE_EXIT | KEY_NO_DELETE; + KeyNode->Parent = Cell; + KeyNode->NameLength = CmpCopyName(Hive, KeyNode->Name, &Name); + if (KeyNode->NameLength < Name.Length) KeyNode->Flags |= KEY_COMP_NAME; + KeQuerySystemTime(&TimeStamp); + KeyNode->LastWriteTime = TimeStamp; + + /* Clear out the rest */ + KeyNode->SubKeyCounts[Stable] = 0; + KeyNode->SubKeyCounts[Volatile] = 0; + KeyNode->SubKeyLists[Stable] = HCELL_NIL; + KeyNode->SubKeyLists[Volatile] = HCELL_NIL; + KeyNode->ValueList.Count = 0; + KeyNode->ValueList.List = HCELL_NIL; + KeyNode->ClassLength = 0; + + /* Reference the root node */ + //KeyNode->ChildHiveReference.KeyHive = Context->ChildHive.KeyHive; + //KeyNode->ChildHiveReference.KeyCell = ChildCell; + HvReleaseCell(Hive, LinkCell); + + /* Get the parent node */ + KeyNode = HvGetCell(Hive, Cell); + if (!KeyNode) + { + /* Fail */ + ASSERT(FALSE); + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Exit; + } + + /* Now add the subkey */ + if (!CmpAddSubKey(Hive, Cell, LinkCell)) + { + /* Failure! We don't handle this yet! */ + ASSERT(FALSE); + } + + /* Get the key body */ + KeyBody = (PKEY_OBJECT)*Object; + + /* Sanity checks */ + ASSERT(KeyBody->KeyControlBlock->ParentKcb->KeyCell == Cell); + ASSERT(KeyBody->KeyControlBlock->ParentKcb->KeyHive == Hive); + //ASSERT(KeyBody->KeyControlBlock->ParentKcb->KcbMaxNameLen == KeyNode->MaxNameLen); + + /* Update the timestamp */ + KeQuerySystemTime(&TimeStamp); + KeyNode->LastWriteTime = TimeStamp; + + /* Check if we need to update name maximum */ + if (KeyNode->MaxNameLen < Name.Length) + { + /* Do it */ + KeyNode->MaxNameLen = Name.Length; + KeyBody->KeyControlBlock->ParentKcb->KcbMaxNameLen = Name.Length; + } + + /* Check if we need toupdate class length maximum */ + if (KeyNode->MaxClassLen < Context->Class.Length) + { + /* Update it */ + KeyNode->MaxClassLen = Context->Class.Length; + } + } + +Exit: + /* Release the flusher locks and return status */ + ExReleasePushLock((PVOID)&((PCMHIVE)Context->ChildHive.KeyHive)->FlusherLock); + ExReleasePushLock((PVOID)&((PCMHIVE)Hive)->FlusherLock); + return Status; +} Modified: trunk/reactos/ntoskrnl/config/cmsysini.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmsysini.c…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmsysini.c (original) +++ trunk/reactos/ntoskrnl/config/cmsysini.c Thu Nov 22 21:38:32 2007 @@ -15,6 +15,8 @@ KGUARDED_MUTEX CmpSelfHealQueueLock; LIST_ENTRY CmpSelfHealQueueListHead; +KEVENT CmpLoadWorkerEvent; +LONG CmpLoadWorkerIncrement; PEPROCESS CmpSystemProcess; BOOLEAN HvShutdownComplete; PVOID CmpRegistryLockCallerCaller, CmpRegistryLockCaller; @@ -496,11 +498,11 @@ } else { + /* Create it */ #if 0 - /* Create it */ - Status = CmpInitializeHive((PCMHIVE*)&SystemHive, + Status = CmpInitializeHive(&SystemHive, HINIT_CREATE, - HIVE_NOLAZYFLUSH, + 0, //HIVE_NOLAZYFLUSH, HFILE_TYPE_LOG, NULL, NULL, @@ -509,8 +511,10 @@ &HiveName, 0); if (!NT_SUCCESS(Status)) return FALSE; + + /* Set the hive filename */ + RtlCreateUnicodeString(&SystemHive->FileFullPath, SYSTEM_REG_FILE); #endif - /* Tell CmpLinkHiveToMaster to allocate a hive */ Allocate = TRUE; } @@ -746,6 +750,314 @@ return TRUE; } +VOID +NTAPI +CmpLoadHiveThread(IN PVOID StartContext) +{ + WCHAR FileBuffer[MAX_PATH], RegBuffer[MAX_PATH]; + UNICODE_STRING TempName, FileName, RegName; + ULONG FileStart, RegStart, i, ErrorResponse, ClusterSize, WorkerCount; + ULONG PrimaryDisposition, SecondaryDisposition, Length; + PCMHIVE CmHive; + HANDLE PrimaryHandle, LogHandle; + NTSTATUS Status = STATUS_SUCCESS; + PVOID ErrorParameters; + PAGED_CODE(); + + /* Get the hive index, make sure it makes sense */ + i = (ULONG)StartContext; + ASSERT(CmpMachineHiveList[i].Name != NULL); + DPRINT1("[HiveLoad] Parallel Thread: %d\n", i); + + /* We were started */ + CmpMachineHiveList[i].ThreadStarted = TRUE; + + /* Build the file name and registry name strings */ + RtlInitEmptyUnicodeString(&FileName, FileBuffer, MAX_PATH); + RtlInitEmptyUnicodeString(&RegName, RegBuffer, MAX_PATH); + + /* Now build the system root path */ + RtlInitUnicodeString(&TempName, L"\\SystemRoot\\System32\\Config\\"); + RtlAppendStringToString((PSTRING)&FileName, (PSTRING)&TempName); + FileStart = FileName.Length; + + /* And build the registry root path */ + RtlInitUnicodeString(&TempName, L"\\REGISTRY\\"); + RtlAppendStringToString((PSTRING)&RegName, (PSTRING)&TempName); + RegStart = RegName.Length; + + /* Build the base name */ + RegName.Length = RegStart; + RtlInitUnicodeString(&TempName, CmpMachineHiveList[i].BaseName); + RtlAppendStringToString((PSTRING)&RegName, (PSTRING)&TempName); + + /* Check if this is a child of the root */ + if (RegName.Buffer[RegName.Length / sizeof(WCHAR) - 1] == '\\') + { + /* Then setup the whole name */ + RtlInitUnicodeString(&TempName, CmpMachineHiveList[i].Name); + RtlAppendStringToString((PSTRING)&RegName, (PSTRING)&TempName); + } + + /* Now Add tge rest if the file name */ + RtlInitUnicodeString(&TempName, CmpMachineHiveList[i].Name); + FileName.Length = FileStart; + RtlAppendStringToString((PSTRING)&FileName, (PSTRING)&TempName); + if (!CmpMachineHiveList[i].CmHive) + { + /* We need to allocate a ne whive structure */ + CmpMachineHiveList[i].Allocate = TRUE; + + /* Load the hive file */ + DPRINT1("[HiveLoad]: Load from file %wZ\n", &FileName); + CmpMachineHiveList[i].CmHive2 = (PVOID)0xBAADBEEF; + goto Later; + Status = CmpInitHiveFromFile(&FileName, + CmpMachineHiveList[i].HHiveFlags, + &CmHive, + &CmpMachineHiveList[i].Allocate, + 0); + if (!(NT_SUCCESS(Status)) || !(CmHive->FileHandles[HFILE_TYPE_LOG])) + { + /* We failed or couldn't get a log file, raise a hard error */ + ErrorParameters = &FileName; + NtRaiseHardError(STATUS_CANNOT_LOAD_REGISTRY_FILE, + 1, + 1, + (PULONG_PTR)&ErrorParameters, + OptionOk, + &ErrorResponse); + } + + /* Set the hive flags and newly allocated hive pointer */ + CmHive->Flags = CmpMachineHiveList[i].CmHiveFlags; + CmpMachineHiveList[i].CmHive2 = CmHive; + } + else + { + /* We already have a hive, is it volatile? */ + CmHive = CmpMachineHiveList[i].CmHive; + if (!(CmHive->Hive.HiveFlags & HIVE_VOLATILE)) + { + DPRINT1("[HiveLoad]: Open from file %wZ\n", &FileName); + CmpMachineHiveList[i].CmHive2 = CmHive; + goto Later; + + /* It's now, open the hive file and log */ + Status = CmpOpenHiveFiles(&FileName, + L".LOG", + &PrimaryHandle, + &LogHandle, + &PrimaryDisposition, + &SecondaryDisposition, + TRUE, + TRUE, + FALSE, + &ClusterSize); + if (!(NT_SUCCESS(Status)) || !(LogHandle)) + { + /* Couldn't open the hive or its log file, raise a hard error */ + ErrorParameters = &FileName; + NtRaiseHardError(STATUS_CANNOT_LOAD_REGISTRY_FILE, + 1, + 1, + (PULONG_PTR)&ErrorParameters, + OptionOk, + &ErrorResponse); + + /* And bugcheck for posterity's sake */ + KeBugCheckEx(BAD_SYSTEM_CONFIG_INFO, 9, 0, i, Status); + } + + /* Save the file handles. This should remove our sync hacks */ + CmHive->FileHandles[HFILE_TYPE_LOG] = LogHandle; + CmHive->FileHandles[HFILE_TYPE_PRIMARY] = PrimaryHandle; + + /* Allow lazy flushing since the handles are there -- remove sync hacks */ + ASSERT(CmHive->Hive.HiveFlags & HIVE_NOLAZYFLUSH); + CmHive->Hive.HiveFlags &= ~HIVE_NOLAZYFLUSH; + + /* Get the real size of the hive */ + Length = CmHive->Hive.Storage[Stable].Length + HBLOCK_SIZE; + + /* Check if the cluster size doesn't match */ + if (CmHive->Hive.Cluster != ClusterSize) ASSERT(FALSE); + + /* Set the file size */ + if (!CmpFileSetSize((PHHIVE)CmHive, HFILE_TYPE_PRIMARY, Length, Length)) + { + /* This shouldn't fail */ + ASSERT(FALSE); + } + + /* Another thing we don't support is NTLDR-recovery */ + if (CmHive->Hive.BaseBlock->BootRecover) ASSERT(FALSE); + + /* Finally, set our allocated hive to the same hive we've had */ + CmpMachineHiveList[i].CmHive2 = CmHive; + ASSERT(CmpMachineHiveList[i].CmHive == CmpMachineHiveList[i].CmHive2); + } + } + + /* We're done */ +Later: + CmpMachineHiveList[i].ThreadFinished = TRUE; + + /* Check if we're the last worker */ + WorkerCount = InterlockedIncrement(&CmpLoadWorkerIncrement); + if (WorkerCount == CM_NUMBER_OF_MACHINE_HIVES) + + { + /* Signal the event */ + KeSetEvent(&CmpLoadWorkerEvent, 0, FALSE); + } + + /* Kill the thread */ + PsTerminateSystemThread(Status); +} + +VOID +NTAPI +CmpInitializeHiveList(IN USHORT Flag) +{ + WCHAR FileBuffer[MAX_PATH], RegBuffer[MAX_PATH]; + UNICODE_STRING TempName, FileName, RegName; + HANDLE Thread; + NTSTATUS Status; + ULONG FileStart, RegStart, i; + PSECURITY_DESCRIPTOR SecurityDescriptor; + PAGED_CODE(); + + /* Allow writing for now */ + CmpNoWrite = FALSE; + + /* Build the file name and registry name strings */ + RtlInitEmptyUnicodeString(&FileName, FileBuffer, MAX_PATH); + RtlInitEmptyUnicodeString(&RegName, RegBuffer, MAX_PATH); + + /* Now build the system root path */ + RtlInitUnicodeString(&TempName, L"\\SystemRoot\\System32\\Config\\"); + RtlAppendStringToString((PSTRING)&FileName, (PSTRING)&TempName); + FileStart = FileName.Length; + + /* And build the registry root path */ + RtlInitUnicodeString(&TempName, L"\\REGISTRY\\"); + RtlAppendStringToString((PSTRING)&RegName, (PSTRING)&TempName); + RegStart = RegName.Length; + + /* Setup the event to synchronize workers */ + KeInitializeEvent(&CmpLoadWorkerEvent, SynchronizationEvent, FALSE); + + /* Enter special boot condition */ + CmpSpecialBootCondition = TRUE; + + /* Create the SD for the root hives */ + SecurityDescriptor = CmpHiveRootSecurityDescriptor(); + + /* Loop every hive we care about */ + for (i = 0; i < CM_NUMBER_OF_MACHINE_HIVES; i++) + { + /* Make sure the list is setup */ + ASSERT(CmpMachineHiveList[i].Name != NULL); + + /* Create a thread to handle this hive */ + Status = PsCreateSystemThread(&Thread, + THREAD_ALL_ACCESS, + NULL, + 0, + NULL, + CmpLoadHiveThread, + (PVOID)i); + if (NT_SUCCESS(Status)) + { + /* We don't care about the handle -- the thread self-terminates */ + ZwClose(Thread); + } + else + { + /* Can't imagine this happening */ + KeBugCheckEx(BAD_SYSTEM_CONFIG_INFO, 9, 3, i, Status); + } + } + + /* Make sure we've reached the end of the list */ + ASSERT(CmpMachineHiveList[i].Name == NULL); + + /* Wait for hive loading to finish */ + KeWaitForSingleObject(&CmpLoadWorkerEvent, + Executive, + KernelMode, + FALSE, + NULL); + + /* Exit the special boot condition and make sure all workers completed */ + CmpSpecialBootCondition = FALSE; + ASSERT(CmpLoadWorkerIncrement == CM_NUMBER_OF_MACHINE_HIVES); + + /* Loop hives again */ + for (i = 0; i < CM_NUMBER_OF_MACHINE_HIVES; i++) + { + /* Make sure the thread ran and finished */ + ASSERT(CmpMachineHiveList[i].ThreadFinished == TRUE); + ASSERT(CmpMachineHiveList[i].ThreadStarted == TRUE); + + /* Check if this was a new hive */ + if (!CmpMachineHiveList[i].CmHive) + { + /* Make sure we allocated something */ + ASSERT(CmpMachineHiveList[i].CmHive2 != NULL); + + /* Build the base name */ + RegName.Length = RegStart; + RtlInitUnicodeString(&TempName, CmpMachineHiveList[i].BaseName); + RtlAppendStringToString((PSTRING)&RegName, (PSTRING)&TempName); + + /* Check if this is a child of the root */ + if (RegName.Buffer[RegName.Length / sizeof(WCHAR) - 1] == '\\') + { + /* Then setup the whole name */ + RtlInitUnicodeString(&TempName, CmpMachineHiveList[i].Name); + RtlAppendStringToString((PSTRING)&RegName, (PSTRING)&TempName); + } + + /* Now link the hive to its master */ + DPRINT1("[HiveLoad]: Link %wZ\n", &RegName); +#if 0 + Status = CmpLinkHiveToMaster(&RegName, + NULL, + CmpMachineHiveList[i].CmHive2, + CmpMachineHiveList[i].Allocate, + SecurityDescriptor); + if (Status != STATUS_SUCCESS) + { + /* Linking needs to work */ + KeBugCheckEx(CONFIG_LIST_FAILED, 11, Status, i, (ULONG_PTR)&RegName); + } + + /* Check if we had to allocate a new hive */ + if (CmpMachineHiveList[i].Allocate) + { + /* Sync the new hive */ + HvSyncHive((PHHIVE)(CmpMachineHiveList[i].CmHive2)); + } +#endif + } + + /* Check if we created a new hive */ + if (CmpMachineHiveList[i].CmHive2) + { + /* TODO: Add to HiveList key */ + } + } + + /* Get rid of the SD */ + ExFreePool(SecurityDescriptor); + + /* FIXME: Link SECURITY to SAM */ + + /* FIXME: Link S-1-5-18 to .Default */ +} + BOOLEAN NTAPI CmInitSystem1(VOID) Modified: trunk/reactos/ntoskrnl/config/ntapi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/ntapi.c?re…
============================================================================== --- trunk/reactos/ntoskrnl/config/ntapi.c (original) +++ trunk/reactos/ntoskrnl/config/ntapi.c Thu Nov 22 21:38:32 2007 @@ -494,16 +494,69 @@ NTSTATUS NTAPI +NtLoadKey2(IN POBJECT_ATTRIBUTES KeyObjectAttributes, + IN POBJECT_ATTRIBUTES FileObjectAttributes, + IN ULONG Flags) +{ + return NtLoadKeyEx(KeyObjectAttributes, FileObjectAttributes, Flags, NULL); +} + +NTSTATUS +NTAPI +CmLoadKey(IN POBJECT_ATTRIBUTES TargetKey, + IN POBJECT_ATTRIBUTES SourceFile, + IN ULONG Flags, + IN PKEY_OBJECT KeyBody); + +NTSTATUS +NTAPI NtLoadKeyEx(IN POBJECT_ATTRIBUTES TargetKey, IN POBJECT_ATTRIBUTES SourceFile, IN ULONG Flags, - IN HANDLE TrustClassKey, - IN HANDLE Event, - IN ACCESS_MASK DesiredAccess, - OUT PHANDLE RootHandle) -{ - UNIMPLEMENTED; - return STATUS_NOT_IMPLEMENTED; + IN HANDLE TrustClassKey) +{ + NTSTATUS Status; + KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); + PKEY_OBJECT KeyBody = NULL; + PAGED_CODE(); + + /* Validate flags */ + if (Flags & ~REG_NO_LAZY_FLUSH) return STATUS_INVALID_PARAMETER; + + /* Validate privilege */ + if (!SeSinglePrivilegeCheck(SeRestorePrivilege, PreviousMode)) + { + /* Fail */ + DPRINT1("Restore Privilege missing!\n"); + //return STATUS_PRIVILEGE_NOT_HELD; + } + + /* Block APCs */ + KeEnterCriticalRegion(); + + /* Check if we have a trust class */ + if (TrustClassKey) + { + /* Reference it */ + Status = ObReferenceObjectByHandle(TrustClassKey, + 0, + CmpKeyObjectType, + PreviousMode, + (PVOID *)&KeyBody, + NULL); + } + + /* Call the internal API */ + Status = CmLoadKey(TargetKey, SourceFile, Flags, KeyBody); + + /* Dereference the trust key, if any */ + if (KeyBody) ObDereferenceObject(KeyBody); + + /* Bring back APCs */ + KeLeaveCriticalRegion(); + + /* Return status */ + return Status; } NTSTATUS Modified: trunk/reactos/ntoskrnl/ntoskrnl.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.rbuild?r…
============================================================================== --- trunk/reactos/ntoskrnl/ntoskrnl.rbuild (original) +++ trunk/reactos/ntoskrnl/ntoskrnl.rbuild Thu Nov 22 21:38:32 2007 @@ -140,7 +140,6 @@ </directory> <directory name="cm"> <file>ntfunc.c</file> - <file>regfile.c</file> <file>registry.c</file> <file>regobj.c</file> </directory> Modified: trunk/reactos/ntoskrnl/sysfuncs.lst URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/sysfuncs.lst?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/sysfuncs.lst (original) +++ trunk/reactos/ntoskrnl/sysfuncs.lst Thu Nov 22 21:38:32 2007 @@ -101,7 +101,7 @@ NtLoadDriver 1 NtLoadKey 2 NtLoadKey2 3 -NtLoadKeyEx 7 +NtLoadKeyEx 4 NtLockFile 10 NtLockProductActivationKeys 2 NtLockRegistryKey 1
17 years, 1 month
1
0
0
0
[fireball] 30679: Igor Koshpaev <tumans@nm.ru> - More fixes for rasapi32's russian translation.
by fireball@svn.reactos.org
Author: fireball Date: Thu Nov 22 21:22:28 2007 New Revision: 30679 URL:
http://svn.reactos.org/svn/reactos?rev=30679&view=rev
Log: Igor Koshpaev <tumans(a)nm.ru> - More fixes for rasapi32's russian translation. Modified: trunk/reactos/dll/win32/rasapi32/lang/ru-RU.rc Modified: trunk/reactos/dll/win32/rasapi32/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasapi32/lang/ru…
============================================================================== --- trunk/reactos/dll/win32/rasapi32/lang/ru-RU.rc (original) +++ trunk/reactos/dll/win32/rasapi32/lang/ru-RU.rc Thu Nov 22 21:22:28 2007 @@ -22,12 +22,12 @@ 4112 "%1(%2!d!) : '%3' : îæèäàåòñÿ '('" 4113 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü öåëî÷èñëåííûì" 4114 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü ñòðîêîâûì" - 4115 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü áóëåâûì" + 4115 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü áóëåâñêèì" 4116 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü öåëî÷èñëåííûì èëè ñòðîêîâûì" 4117 "%1(%2!d!) : '%3' : íåñîîòâåòñòâèå òèïîâ" 4118 "%1(%2!d!) : '%3' : èäåíòèôèêàòîð óæå îïðåäåëåí" 4119 "%1(%2!d!) : '%3' : èäåíòèôèêàòîð íå îïðåäåëåí" 4120 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü òèïîì ìåòêè" 4121 "%1(%2!d!) : äåëåíèå íà íîëü" - 4122 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü öåëî÷èñëåííûì, ñòðîêîâûì èëè áóëåâûì" + 4122 "%1(%2!d!) : '%3' : òèï äîëæåí áûòü öåëî÷èñëåííûì, ñòðîêîâûì èëè áóëåâñêèì" END
17 years, 1 month
1
0
0
0
[fireball] 30678: Dmitry Chapyshev <lentind@yandex.ru> - Fix russian translation in shell32 and rasapi32. - Add rasdlg.dll ("Wine-style").
by fireball@svn.reactos.org
Author: fireball Date: Thu Nov 22 21:04:21 2007 New Revision: 30678 URL:
http://svn.reactos.org/svn/reactos?rev=30678&view=rev
Log: Dmitry Chapyshev <lentind(a)yandex.ru> - Fix russian translation in shell32 and rasapi32. - Add rasdlg.dll ("Wine-style"). Added: trunk/reactos/dll/win32/rasdlg/ trunk/reactos/dll/win32/rasdlg/lang/ trunk/reactos/dll/win32/rasdlg/lang/en-US.rc (with props) trunk/reactos/dll/win32/rasdlg/rasdlg.c (with props) trunk/reactos/dll/win32/rasdlg/rasdlg.rbuild (with props) trunk/reactos/dll/win32/rasdlg/rasdlg.rc (with props) trunk/reactos/dll/win32/rasdlg/rasdlg.spec (with props) trunk/reactos/dll/win32/rasdlg/res/ trunk/reactos/dll/win32/rasdlg/res/bitmaps/ trunk/reactos/dll/win32/rasdlg/res/bitmaps/100.bmp (with props) trunk/reactos/dll/win32/rasdlg/res/bitmaps/101.bmp (with props) trunk/reactos/dll/win32/rasdlg/res/bitmaps/102.bmp (with props) trunk/reactos/dll/win32/rasdlg/res/bitmaps/1678.bmp (with props) trunk/reactos/dll/win32/rasdlg/res/icons/ trunk/reactos/dll/win32/rasdlg/res/icons/134.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/135.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/144.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/145.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/15102.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/50.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/51.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/52.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/53.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/54.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/55.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/56.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/562.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/563.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/57.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/58.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/59.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/60.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/61.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/62.ico (with props) trunk/reactos/dll/win32/rasdlg/res/icons/63.ico (with props) trunk/reactos/dll/win32/rasdlg/resource.h (with props) Modified: trunk/reactos/baseaddress.rbuild trunk/reactos/dll/win32/rasapi32/lang/ru-RU.rc trunk/reactos/dll/win32/shell32/lang/ru-RU.rc trunk/reactos/dll/win32/win32.rbuild [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/reactos/baseaddress.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/baseaddress.rbuild?rev=306…
Modified: trunk/reactos/dll/win32/rasapi32/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasapi32/lang/ru…
Added: trunk/reactos/dll/win32/rasdlg/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/lang/en-U…
Added: trunk/reactos/dll/win32/rasdlg/rasdlg.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/rasdlg.c?…
Added: trunk/reactos/dll/win32/rasdlg/rasdlg.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/rasdlg.rb…
Added: trunk/reactos/dll/win32/rasdlg/rasdlg.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/rasdlg.rc…
Added: trunk/reactos/dll/win32/rasdlg/rasdlg.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/rasdlg.sp…
Added: trunk/reactos/dll/win32/rasdlg/res/bitmaps/100.bmp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/bitma…
Added: trunk/reactos/dll/win32/rasdlg/res/bitmaps/101.bmp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/bitma…
Added: trunk/reactos/dll/win32/rasdlg/res/bitmaps/102.bmp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/bitma…
Added: trunk/reactos/dll/win32/rasdlg/res/bitmaps/1678.bmp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/bitma…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/134.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/135.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/144.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/145.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/15102.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/50.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/51.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/52.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/53.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/54.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/55.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/56.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/562.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/563.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/57.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/58.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/59.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/60.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/61.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/62.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/res/icons/63.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/res/icons…
Added: trunk/reactos/dll/win32/rasdlg/resource.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rasdlg/resource.…
Modified: trunk/reactos/dll/win32/shell32/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ru-…
Modified: trunk/reactos/dll/win32/win32.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/win32.rbuild?rev…
17 years, 1 month
1
0
0
0
[fireball] 30677: Dmitry Chapyshev <lentind@yandex.ru> - Icons cleanup/fixes (remove 4bit images, etc).
by fireball@svn.reactos.org
Author: fireball Date: Thu Nov 22 20:52:42 2007 New Revision: 30677 URL:
http://svn.reactos.org/svn/reactos?rev=30677&view=rev
Log: Dmitry Chapyshev <lentind(a)yandex.ru> - Icons cleanup/fixes (remove 4bit images, etc). Modified: trunk/reactos/base/shell/explorer/res/apps.ico trunk/reactos/base/shell/explorer/res/documents.ico trunk/reactos/base/shell/explorer/res/explorer.ico trunk/reactos/base/shell/explorer/res/folder.ico trunk/reactos/base/shell/explorer/res/reactos.ico trunk/reactos/base/shell/explorer/res/ros-big.ico trunk/reactos/base/shell/explorer/res/startmenu.ico Modified: trunk/reactos/base/shell/explorer/res/apps.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/res/ap…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/shell/explorer/res/documents.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/res/do…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/shell/explorer/res/explorer.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/res/ex…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/shell/explorer/res/folder.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/res/fo…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/shell/explorer/res/reactos.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/res/re…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/shell/explorer/res/ros-big.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/res/ro…
============================================================================== Binary files - no diff available. Modified: trunk/reactos/base/shell/explorer/res/startmenu.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/res/st…
============================================================================== Binary files - no diff available.
17 years, 1 month
1
0
0
0
[dreimer] 30676: Last missing German RC File. :-)
by dreimer@svn.reactos.org
Author: dreimer Date: Thu Nov 22 18:46:10 2007 New Revision: 30676 URL:
http://svn.reactos.org/svn/reactos?rev=30676&view=rev
Log: Last missing German RC File. :-) Added: trunk/rosapps/sysutils/systeminfo/lang/de-DE.rc (with props) Modified: trunk/rosapps/sysutils/systeminfo/rsrc.rc Added: trunk/rosapps/sysutils/systeminfo/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/sysutils/systeminfo/lang/d…
============================================================================== --- trunk/rosapps/sysutils/systeminfo/lang/de-DE.rc (added) +++ trunk/rosapps/sysutils/systeminfo/lang/de-DE.rc Thu Nov 22 18:46:10 2007 @@ -1,0 +1,62 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +{ + +IDS_USAGE, "SYSTEMINFO [/S System [/U Benutzername [/P [Passwort]]]] [/FO Format] [/NH]\n\n\ +Beschreibung:\n\ + Mit diesem Programm wird die Betriebssystemkonfiguration für\n\ + einen lokalen Computer angezeigt.\n\n\ +Parameterliste:\n\ + /S System Bestimmt das Remotesystem mit dem die Verbindung\n\ + hergestellt werden soll.\n\n\ + /U [Domäne\]Benutzer Bestimmt den Benutzerkontext unter dem\n\ + der Befehl ausgeführt werden soll.\n\n\ + /P [Passwort] Bestimmt das Kennwort für den zugewiesenen\n\ + Benutzerkontext. Bei Auslassung, wird dieses\n\ + angefordert.\n\n\ + /FO Format Bestimmt das Format in dem die Ausgabe\n\ + angezeigt werden soll.\n\ + Gültige Werte: TABLE, LIST, CSV.\n\n\ + /NH Bestimmt, dass der Spalten-Header in der\n\ + Ausgabe nicht angezeigt werden soll.\n\ + Nur für Formate TABLE und CSV.\n\n\ + /? Zeigt die Hilfemeldung an.\n\n\ +Beispiele:\n\ + SYSTEMINFO\n\ + SYSTEMINFO /?\n\ + SYSTEMINFO /S system\n\ + SYSTEMINFO /S system /U Benutzer\n\ + SYSTEMINFO /S system /U Domäne\\Benutzer /P Passwort /FO TABLE\n\ + SYSTEMINFO /S system /FO LIST\n\ + SYSTEMINFO /S system /FO CSV /NH\n" + +IDS_OS_NAME, "OS Name: %s\n" +IDS_OS_VERSION, "OS Version: %d.%d.%d %s" +IDS_OS_BUILD, " Build %s\n" +IDS_OS_BUILD_TYPE, "OS Build Typ: %s\n" +IDS_REG_OWNER, "Registrierter Benutzer: %s\n" +IDS_REG_ORG, "Registrierte Organisation: %s\n" +IDS_PRODUCT_ID, "Produkt ID: %s\n" +IDS_INST_DATE, "Installationsdatum: %s, " +IDS_INST_TIME, "%s\n" +IDS_SYS_TYPE_UNKNOWN, "Systemtyp: Unbekannt\n" +IDS_SYS_TYPE_X86, "Systemtyp: X86-based PC\n" +IDS_SYS_TYPE_IA64, "Systemtyp: IA64-based PC\n" +IDS_SYS_TYPE_AMD64, "Systemtyp: AMD64-based PC\n" +IDS_PROCESSORS, "Prozessor(en): %u Prozessor(en) Installiert.\n" +IDS_ROS_DIR, "ReactOS Verzeichnis: %s\n" +IDS_SYS_DIR, "System Verzeichnis: %s\n" +IDS_BOOT_DEV, "Startgerät: %s\n" +IDS_SYS_LOCALE, "Systemgebietsschema: %s\n" +IDS_INPUT_LOCALE, "Eingabegebietsschema: %s\n" +IDS_TOTAL_PHYS_MEM, "Gesamter Physikalischer Speicher: %ld MB (%ld KB)\n" +IDS_AVAIL_PHISICAL_MEM, "Verfügbarer Physikalischer Speicher: %ld MB (%ld KB)\n" +IDS_VIRT_MEM_MAX, "Auslagerungsdatei: Max Größe: %ld MB (%ld KB)\n" +IDS_VIRT_MEM_AVAIL, "Auslagerungsdatei: Verfügbar: %ld MB (%ld KB)\n" +IDS_VIRT_MEM_INUSE, "Auslagerungsdatei: In Verwendung: %ld MB (%ld KB)\n" +IDS_HOST_NAME, "Domäne: %s\n" +IDS_PAGEFILE_LOC, "Auslagerungsdateipfad(e) %s" +IDS_TIME_ZONE, "Zeitzone: %s\n" + +} Propchange: trunk/rosapps/sysutils/systeminfo/lang/de-DE.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/rosapps/sysutils/systeminfo/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/sysutils/systeminfo/rsrc.r…
============================================================================== --- trunk/rosapps/sysutils/systeminfo/rsrc.rc (original) +++ trunk/rosapps/sysutils/systeminfo/rsrc.rc Thu Nov 22 18:46:10 2007 @@ -1,5 +1,6 @@ #include <windows.h> #include "resource.h" +#include "lang/de-DE.rc" #include "lang/en-US.rc" #include "lang/fr-FR.rc"
17 years, 1 month
1
0
0
0
[dreimer] 30675: Two more German translations by me, myself and my humble personality. One for modemui.dll and one for appwiz.cpl.
by dreimer@svn.reactos.org
Author: dreimer Date: Thu Nov 22 18:15:14 2007 New Revision: 30675 URL:
http://svn.reactos.org/svn/reactos?rev=30675&view=rev
Log: Two more German translations by me, myself and my humble personality. One for modemui.dll and one for appwiz.cpl. Added: trunk/reactos/dll/cpl/appwiz/lang/de-DE.rc (with props) trunk/reactos/dll/win32/modemui/lang/de-DE.rc (with props) Modified: trunk/reactos/dll/cpl/appwiz/rsrc.rc trunk/reactos/dll/win32/modemui/modemui.rc Added: trunk/reactos/dll/cpl/appwiz/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/appwiz/lang/de-DE.…
============================================================================== --- trunk/reactos/dll/cpl/appwiz/lang/de-DE.rc (added) +++ trunk/reactos/dll/cpl/appwiz/lang/de-DE.rc Thu Nov 22 18:15:14 2007 @@ -1,0 +1,169 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDR_POPUP_APP MENU +BEGIN + POPUP "popup" + BEGIN + MENUITEM "Ändern/&Entfernen",ID_APP_MODIFYREMOVE + MENUITEM "&Informationen", ID_APP_INFORMATION + END +END + +IDR_POPUP_UPD MENU +BEGIN + POPUP "popup" + BEGIN + MENUITEM "&Entfernen", ID_UPD_REMOVE + MENUITEM "&Informationen", ID_UPD_INFORMATION + END +END + +IDD_PROPPAGEINSTALL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Programme ändern oder entfernen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,6,16,16 + LTEXT "Die folgende Software kann automatisch entfernt werden. Wählen Sie das Programm aus der Liste aus und klicken Sie auf Ändern/Entfernen, um es zu entfernen oder um installierte Komponenten zu ändern.",-1,36,7,PROPSHEETWIDTH-48,22 + LTEXT "Finden:",-1,PROPSHEETPADDING,33,30,8 + EDITTEXT IDC_FIND_EDIT, PROPSHEETPADDING+30, 30, 180, 14, WS_VISIBLE | WS_TABSTOP + LTEXT "Ansehen:",-1,250,33,30,8 + COMBOBOX IDC_VIEW_COMBO, 280, 30, 94, 80, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + CONTROL "", IDC_SOFTWARELIST, "SysListView32", LVS_REPORT | LVS_SORTASCENDING | LVS_AUTOARRANGE | LVS_SINGLESEL, PROPSHEETPADDING, 50, PROPSHEETWIDTH-12, 155, WS_EX_CLIENTEDGE + PUSHBUTTON "Ändern/Entfernen", IDC_ADDREMOVE, PROPSHEETPADDING, 210, 80, 14, WS_DISABLED + PUSHBUTTON "&Informationen", IDC_INFO_BUTTON, PROPSHEETPADDING+85, 210, 80, 14, WS_DISABLED +END + +IDD_PROPPAGEUPDATES DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Updates entfernen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_UPDATES,-1,PROPSHEETPADDING,6,16,16 + LTEXT "Die folgenden Updates können automatisch entfernt werden. Um ein Update zu entfernen, wählen Sie es von der Liste und wählen Sie Entfernen.",-1,36,7,PROPSHEETWIDTH-48,22 + LTEXT "Finden:",-1,PROPSHEETPADDING,33,30,8 + EDITTEXT IDC_UPD_FIND_EDIT, PROPSHEETPADDING+30, 30, 180, 14, WS_VISIBLE | WS_TABSTOP + LTEXT "Ansehen:",-1,250,33,30,8 + COMBOBOX IDC_UPD_VIEW_COMBO, 280, 30, 94, 80, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + CONTROL "", IDC_UPDATESLIST, "SysListView32", LVS_REPORT | LVS_SORTASCENDING | LVS_AUTOARRANGE | LVS_SINGLESEL, PROPSHEETPADDING, 50, PROPSHEETWIDTH-12, 155, WS_EX_CLIENTEDGE + PUSHBUTTON "&Entfernen", IDC_UPD_REMOVE, PROPSHEETPADDING, 210, 80, 14, WS_DISABLED + PUSHBUTTON "&Informationen", IDC_UPD_INFO_BUTTON, PROPSHEETPADDING+85, 210, 80, 14, WS_DISABLED +END + +IDD_PROPPAGEADD DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Neue Programme hinzufügen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_CPLSYSTEM,-1,PROPSHEETPADDING,10,32,32 + LTEXT "Um neue Programme zu installieren, wählen Sie Installieren.",-1,36,11,PROPSHEETWIDTH-48,8 + PUSHBUTTON "&Installieren...", IDC_INSTALL, PROPSHEETWIDTH-(90), 46, 80, 14 + LTEXT "", -1, PROPSHEETPADDING, 70, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN + ICON IDI_DOWNLOADICO,-1,PROPSHEETPADDING,80,32,32 + LTEXT "Um neue Programme herunterzuladen und zu installieren, wählen Sie Download.",-1,36,83,PROPSHEETWIDTH-48,17 + PUSHBUTTON "&Download", IDC_ADD_DOWNLOAD_BUTTON, PROPSHEETWIDTH-(90), 125, 80, 14, WS_DISABLED + LTEXT "", -1, PROPSHEETPADDING, 150, PROPSHEETWIDTH-12, 1, NOT WS_GROUP | SS_SUNKEN + ICON IDI_APPINETICO,-1,PROPSHEETPADDING,160,32,32 + LTEXT "Drücken Sie Im Internet suchen, um nach neuen verfügbaren Anwendungen im Internet zu suchen.",-1,36,161,PROPSHEETWIDTH-48,17 + PUSHBUTTON "&Einstellungen...", IDC_ADD_PROP_BUTTON, PROPSHEETWIDTH-(175), 205, 80, 14, WS_DISABLED + PUSHBUTTON "&Im Internet suchen", IDC_ADD_FIND_BUTTON, PROPSHEETWIDTH-(90), 205, 80, 14, WS_DISABLED +END + +IDD_PROPPAGEROSSETUP DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_REACTOS,-1,PROPSHEETPADDING,6,16,16 + LTEXT "",-1,36,7,PROPSHEETWIDTH-48,22 +END + +IDD_FIRSTPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Verknüpfung erstellen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Text1", -1, 115, 15, 160, 24 + LTEXT "Text2", -1, 115, 35, 160, 17 +END + +IDD_SUBMIT_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Verknüpfung erstellen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Text1",-1,10,0,225,40 + LTEXT "Text2",-1,10,40,120,20 + LTEXT "Text3",-1,10,55,120,20 +END + +IDD_SHORTCUT_LOCATION DIALOGEX 0, 0, 340, 200 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Verknüpfung erstellen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Mit diesem Assistenten können Sie Verknüpfungen mit lokalen oder vernetzten Programmen, Dateien, Ordnern, Computern oder Internetadressen erstellen.", -1, 120, 15, 200, 30 + LTEXT "&Geben Sie den Speicherort des Elements ein:", -1, 120, 50, 150, 10 + EDITTEXT IDC_SHORTCUT_LOCATION, 120, 65, 150, 15, ES_LEFT + PUSHBUTTON "&Durchsuchen...", IDC_SHORTCUT_BROWSE, 272, 65, 55, 15, ES_LEFT + LTEXT "Klicken Sie auf Weiter, um fortzufahren.", -1, 120, 97, 162, 10 +END + +IDD_SHORTCUT_FINISH DIALOGEX 0, 0, 340, 200 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Programmbezeichnung auswählen" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "&Geben Sie den Namen für die Verknüpfung ein:", -1, 120, 15, 150, 10 + EDITTEXT IDC_SHORTCUT_NAME, 120, 35, 150, 15, ES_LEFT + LTEXT "Klicken Sie auf Fertig stellen, um die Verknüpfung zu erstellen.", -1, 118, 97, 178, 17 +END + +IDD_INFORMATION DIALOG 5, 100, 269, 218 +STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Informationen" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDS_INFO_DISPNAME, PROPSHEETPADDING, 6, 258, 15, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Registrierter Eigentümer:", -1, PROPSHEETPADDING, 27, 97, 8 + EDITTEXT IDS_INFO_REGOWNER, PROPSHEETPADDING+97, 25, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Produkt ID:", -1, PROPSHEETPADDING, 44, 97, 8 + EDITTEXT IDS_INFO_PRODUCTID, PROPSHEETPADDING+97, 42, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Herausgeber:", -1, PROPSHEETPADDING, 61, 97, 8 + EDITTEXT IDS_INFO_PUBLISHER, PROPSHEETPADDING+97, 59, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Version:", -1, PROPSHEETPADDING, 78, 97, 8 + EDITTEXT IDS_INFO_VERSION, PROPSHEETPADDING+97, 76, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Kontakt:", -1, PROPSHEETPADDING, 95, 97, 8 + EDITTEXT IDS_INFO_CONTACT, PROPSHEETPADDING+97, 93, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Supportinformationen:", -1, PROPSHEETPADDING, 112, 97, 8 + EDITTEXT IDS_INFO_SUPPORTINFO, PROPSHEETPADDING+97, 110, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Supportrufnummer:", -1, PROPSHEETPADDING, 129, 97, 8 + EDITTEXT IDS_INFO_SUPPORTPHONE, PROPSHEETPADDING+97, 127, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Produktupdates:", -1, PROPSHEETPADDING, 146, 97, 8 + EDITTEXT IDS_INFO_PRODUCT_UPDATES, PROPSHEETPADDING+97, 144, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Readme:", -1, PROPSHEETPADDING, 163, 97, 8 + EDITTEXT IDS_INFO_README, PROPSHEETPADDING+97, 161, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Kommentare:", -1, PROPSHEETPADDING, 180, 97, 8 + EDITTEXT IDS_INFO_COMMENTS, PROPSHEETPADDING+97, 178, 160, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + PUSHBUTTON "&Schliessen", IDCANCEL, 212, 198, 50, 14 +END + +STRINGTABLE +BEGIN + IDS_CPLSYSTEMNAME "Programme Hinzufügen/Entfernen" + IDS_CPLSYSTEMDESCRIPTION "Installiert Programme und erstellt Verknüpfungen." + IDS_ERROR "Fehler" + IDS_UNABLEREAD_UNINSTSTR "UninstallString konnte nicht geöffnet werden. Dieser Eintrag ist entweder ungültig oder wurde von einem MSI Installer erstellt." + IDS_UNABLEOPEN_UNINSTKEY "Uninstall Key konnte nicht geöffnet werden" + IDS_APPLIST "Derzeit installierte Programme" + IDS_UPDATESLIST "Derzeit installierte Updates" + IDS_LARGEICONS "Große Symbole" + IDS_LIST "Liste" + IDS_DETAILS "Details" + IDS_CREATE_SHORTCUT "Verknüpfung erstellen" + IDS_ERROR_NOT_FOUND "Die Datei %s konnte nicht gefunden werden." + IDS_UNABLEREAD_INFORMATION "Information Keys konnten nicht geöffnet werden" + IDS_NO_INFORMATION "Keine Informationen" + IDS_NONE_APP "Keine Anwendungen installiert." + IDS_NONE_UPD "Keine Updates installiert." +END Propchange: trunk/reactos/dll/cpl/appwiz/lang/de-DE.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/dll/cpl/appwiz/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/appwiz/rsrc.rc?rev…
============================================================================== --- trunk/reactos/dll/cpl/appwiz/rsrc.rc (original) +++ trunk/reactos/dll/cpl/appwiz/rsrc.rc Thu Nov 22 18:15:14 2007 @@ -1,6 +1,7 @@ #include "resource.h" #include <windows.h> +#include "lang/de-DE.rc" #include "lang/en-US.rc" #include "lang/fr-FR.rc" #include "lang/ru-RU.rc" Added: trunk/reactos/dll/win32/modemui/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/modemui/lang/de-…
============================================================================== --- trunk/reactos/dll/win32/modemui/lang/de-DE.rc (added) +++ trunk/reactos/dll/win32/modemui/lang/de-DE.rc Thu Nov 22 18:15:14 2007 @@ -1,0 +1,613 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDM_MENU MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "&Duplizieren...", 0 + MENUITEM "&Entfernen", 1 + MENUITEM "&Log anzeigen", 2 + MENUITEM SEPARATOR + MENUITEM "E&igenschaften", 3 + MENUITEM "Eigenschaften &kopieren", 4 + MENUITEM "Eigenschaften ü&bernehmen", 5 + END +END + +IDD_ADVANCED DIALOG 17, 12, 238, 210 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Erweitert" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Weitere Einstellungen", 1018, 6, 6, 225, 70 + LTEXT "Weitere &Initialisierungsbefehle:", 1011, 16, 20, 143, 8 + EDITTEXT 1016, 16, 31, 205, 13, ES_AUTOHSCROLL + LTEXT "Auf &Kreditkartensignal:", 1007, 16, 55, 109, 8, NOT WS_VISIBLE + EDITTEXT 1008, 133, 52, 26, 12, ES_RIGHT | NOT WS_VISIBLE | WS_GROUP + CONTROL "", 1009, "MSCTLS_UPDOWN32", NOT WS_VISIBLE | WS_BORDER | WS_GROUP | 0x00000036, 159, 52, 12, 12 + LTEXT "Sekuden warten", 1010, 165, 54, 60, 8, NOT WS_VISIBLE + GROUPBOX "&Länder-/Regionauswahl", 1012, 6, 80, 225, 75 + COMBOBOX 1013, 18, 99, 203, 50, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP + PUSHBUTTON "&Port Einstellungen...", 1100, 107, 170, 125, 14 + DEFPUSHBUTTON "&Standardeinstellungen ändern...", 3, 107, 188, 125, 14 +END + +IDD_GENERAL DIALOG 0, 0, 238, 210 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Allgemein" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Port:", 1018, 9, 8, 32, 10 + LTEXT "COM Port", 1095, 48, 8, 181, 10 + GROUPBOX "&Lautstärke", 1029, 10, 21, 218, 48 + CONTROL "", 1032, "MSCTLS_TRACKBAR32", WS_GROUP | WS_TABSTOP | 0x00000001, 84, 40, 66, 20 + RTEXT "Leise", 1045, 56, 40, 22, 8 + LTEXT "Laut", 1001, 155, 40, 25, 11 + GROUPBOX "&Maximale Übertragungsrate", 1031, 10, 78, 218, 46 + COMBOBOX 1036, 18, 100, 202, 69, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + GROUPBOX "Wähloptionen", 1060, 10, 133, 218, 51 + AUTOCHECKBOX "Vor dem Wählen auf &Freizeichen warten", 1003, 27, 157, 174, 10 +END + +IDD_DISTINCTIVE_RING DIALOG 0, 0, 238, 210 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Verschiedene Rufsignale" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "", 1068, 10, 7, 218, 145 + AUTOCHECKBOX "&Telefonleitung verfügt über verschiedene Rufsignale", 1069, 20, 7, 184, 10 + CTEXT "Rufsignalfolge", -1, 84, 21, 70, 8 + CTEXT "Art des Anrufs", -1, 159, 21, 63, 8 + LTEXT "&Primäre Adresse:", 1070, 20, 41, 62, 8 + COMBOBOX 1073, 84, 37, 71, 61, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | NOT WS_TABSTOP + COMBOBOX 1082, 160, 37, 62, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "Adresse &1:", 1071, 20, 59, 62, 8 + COMBOBOX 1074, 84, 55, 71, 61, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | NOT WS_TABSTOP + COMBOBOX 1083, 160, 55, 62, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "Adresse &2:", 1072, 20, 77, 62, 8 + COMBOBOX 1075, 84, 73, 71, 61, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | NOT WS_TABSTOP + COMBOBOX 1084, 160, 73, 62, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "Adresse &3:", 1076, 20, 95, 62, 8 + COMBOBOX 1077, 84, 91, 71, 61, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | NOT WS_TABSTOP + COMBOBOX 1085, 160, 91, 62, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "&Vorrangige Anrufer:", 1078, 20, 112, 62, 8 + COMBOBOX 1079, 84, 109, 71, 61, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | NOT WS_TABSTOP + COMBOBOX 1086, 160, 109, 62, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "&Rückruf:", 1080, 20, 131, 62, 8 + COMBOBOX 1081, 84, 127, 71, 61, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | NOT WS_TABSTOP + COMBOBOX 1087, 160, 127, 62, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP +END + +IDD_DISTINCTIVE_RING_2 DIALOG 0, 0, 238, 210 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Verschiedene Rufsignale" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "", 1068, 10, 7, 218, 87 + AUTOCHECKBOX "&Telefonleitung verfügt über verschiedene Rufsignale", 1069, 19, 7, 177, 10 + CTEXT "Rufsignalfolge", -1, 20, 21, 74, 8 + CTEXT "Art des Anrufs", -1, 96, 21, 65, 8 + LTEXT "&Einfaches klingeln:", 1088, 20, 37, 65, 8 + COMBOBOX 1091, 96, 37, 65, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "&Doppeltes klingeln:", 1089, 20, 57, 65, 8 + COMBOBOX 1092, 96, 55, 65, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + LTEXT "D&reifaches klingeln:", 1090, 20, 76, 65, 8 + COMBOBOX 1093, 96, 73, 65, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP +END + +IDD_DIAGNOSTICS DIALOG 0, 0, 238, 215 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Diagnose" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", 1042, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000084D, 19, 18, 200, 58 + CONTROL "", 1041, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000084D, 19, 84, 200, 58 + PUSHBUTTON "&Modem abfragen", 1096, 138, 149, 75, 14 + AUTOCHECKBOX "&Log mitschneiden", 1020, 18, 187, 98, 10 + PUSHBUTTON "L&og ansehen", 1094, 138, 184, 75, 14, WS_DISABLED + GROUPBOX "Modeminformation", 1047, 10, 6, 217, 164 + GROUPBOX "Logging", -1, 10, 173, 217, 32 +END + +IDD_PLEASE_WAIT DIALOG 0, 0, 195, 72 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "Bitte warten..." +FONT 8, "MS Shell Dlg" +BEGIN + ICON 5100, -1, 9, 7, 20, 20 + LTEXT "Verbindung mit Modem wird hergestellt. Dies kann ein paar Sekunden dauern.", -1, 42, 7, 146, 28 + DEFPUSHBUTTON "Abbrechen", 2, 72, 52, 50, 14 +END + +IDD_GENERAL_2 DIALOG 0, 0, 238, 210 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Allgemein" +FONT 8, "MS Shell Dlg" +BEGIN + AUTOCHECKBOX "&Vermittlungsunterstütztes (manuelles) Wählen", 1002, 19, 22, 155, 10 + AUTOCHECKBOX "&Trennen nach Leerlauf von:", 1042, 19, 38, 143, 10 + EDITTEXT 1043, 168, 35, 25, 13, ES_AUTOHSCROLL | ES_NUMBER + LTEXT "&Wählvorgang abbrechen nach:", -1, 19, 56, 147, 10 + EDITTEXT 1040, 168, 54, 25, 13, ES_AUTOHSCROLL | ES_NUMBER + RTEXT "Ü&bertragungsrate:", 1034, 16, 102, 93, 8 + COMBOBOX 1036, 114, 100, 84, 69, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + RTEXT "D&atenprotokoll:", 1032, 16, 122, 93, 8 + COMBOBOX 1037, 114, 119, 84, 69, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + RTEXT "&Komprimierung:", 1035, 16, 139, 93, 8 + COMBOBOX 1099, 114, 137, 84, 69, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + RTEXT "&Flusssteuerung:", 1027, 16, 157, 93, 8 + COMBOBOX 1031, 114, 155, 84, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + GROUPBOX "Anrufeinstellungen", 1060, 11, 7, 217, 66 + LTEXT "min", 1044, 195, 38, 22, 8 + LTEXT "sec", 1041, 195, 56, 22, 8 + GROUPBOX "Datenverbindungseinstellungen", -1, 11, 82, 217, 94 +END + +IDD_ADVANCED_2 DIALOG 17, 12, 238, 210 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Erweitert" +FONT 8, "MS Shell Dlg" +BEGIN + AUTOCHECKBOX "Terminalfenster &vor dem Wählen einblenden", 1000, 20, 21, 200, 10 + AUTOCHECKBOX "Terminalfenster &nach dem Wählen einblenden", 1001, 20, 38, 200, 10 + RTEXT "&Datenbits:", 1024, 18, 79, 93, 8 + COMBOBOX 1025, 114, 77, 106, 61, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + RTEXT "&Parität:", 1026, 18, 97, 93, 8 + COMBOBOX 1028, 114, 95, 106, 60, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + RTEXT "&Stopbits:", 1029, 18, 115, 93, 8 + COMBOBOX 1030, 114, 113, 106, 45, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + RTEXT "&Modulation:", 1045, 18, 133, 93, 8 + COMBOBOX 1038, 114, 131, 106, 69, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + GROUPBOX "Terminalfenster", 1004, 10, 7, 217, 49 + GROUPBOX "Hardwareeinstellungen", 1005, 10, 64, 217, 89 +END + +IDD_ISDN DIALOG 0, 0, 238, 210 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "ISDN" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Switch &Typ", -1, 11, 6, 217, 39 + COMBOBOX 1104, 17, 20, 204, 69, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP + GROUPBOX "&Erste Nummer", -1, 11, 50, 217, 50 + EDITTEXT 1017, 33, 62, 188, 13, ES_AUTOHSCROLL | ES_NUMBER + LTEXT "S&PID/EAZ:", 1027, 34, 83, 67, 8 + EDITTEXT 1107, 104, 79, 117, 13, ES_AUTOHSCROLL | ES_NUMBER + GROUPBOX "&Zweite Nummer", -1, 11, 105, 217, 49 + EDITTEXT 1018, 33, 114, 189, 13, ES_AUTOHSCROLL | ES_NUMBER + LTEXT "SPI&D/EAZ:", 1028, 35, 135, 68, 8 + EDITTEXT 1108, 105, 132, 117, 13, ES_AUTOHSCROLL | ES_NUMBER +END + +IDD_PLEASE_WAIT_2 DIALOG 0, 0, 195, 72 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "Bitte warten..." +FONT 8, "MS Shell Dlg" +BEGIN + ICON 5100, -1, 9, 7, 20, 20 + LTEXT "Landes-/Regionsinformationen werden an Modem gesendet.", -1, 42, 7, 146, 28 +END + +IDD_WARNING DIALOG 0, 0, 360, 105 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION +CAPTION "Warnung" +FONT 8, "MS Shell Dlg" +BEGIN + AUTOCHECKBOX "Diese Meldung nicht mehr anzeigen", 1109, 17, 73, 125, 10 + DEFPUSHBUTTON "OK", 1, 302, 84, 50, 14 + LTEXT "Einige Modems können Initialisierungszeichenfolgen dieser Länge nicht verarbeiten.", -1, 50, 27, 304, 8 + LTEXT "Nähere Informationen können Sie von dem Modemhersteller erhalten.", -1, 50, 41, 304, 8 + ICON 5100, -1, 15, 14, 20, 20 + LTEXT "Die eingegebene Modeminitialisierungs-Zeichenfolge ist länger als 57 Zeichen.", -1, 50, 14, 304, 8 +END + +IDD_MODEMS DIALOG 0, 0, 252, 218 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION +CAPTION "Modems" +FONT 8, "MS Shell Dlg" +BEGIN + ICON 5100, 1057, 6, 7, 20, 20 + LTEXT "Folgende &Modems sind installiert:", -1, 44, 12, 203, 9 + CONTROL "", 113, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x00000849, 7, 32, 238, 158, WS_EX_CLIENTEDGE + PUSHBUTTON "&Hinzufügen...", 110, 56, 198, 60, 14 + PUSHBUTTON "&Entfernen", 112, 121, 198, 60, 14 + PUSHBUTTON "E&igenschaften", 109, 185, 198, 60, 14 +END + +IDD_PLEASE_WAIT_3 DIALOG 0, 0, 195, 72 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "Bitte warten..." +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Stop", 2, 74, 53, 50, 14 + ICON 5100, -1, 9, 7, 20, 20 + LTEXT "Entferne ausgewähltes", -1, 40, 8, 151, 8 + LTEXT "Modem", 1005, 40, 16, 151, 25 +END + +STRINGTABLE +BEGIN + 180 "Serieller RS-232 Port" + 181 "Externes Modem" + 182 "Internes Modem" + 183 "PCMCIA Modem" + 184 "Parallel Modem" + 185 "Parallel Port" + 200 "110" + 201 "1200" + 202 "2400" + 203 "4800" + 204 "9600" + 206 "19200" + 207 "38400" + 210 "115200" + 211 "57600" + 216 "300" + 220 "230400" + 221 "460800" + 222 "921600" + 240 "4" + 241 "5" + 242 "6" + 243 "7" + 244 "8" + 250 "Gerade" + 251 "Ungerade" + 252 "Keine" + 253 "Markierung" + 254 "Leerzeichen" + 255 "1" + 256 "1,5" + 257 "2" + 260 "Xon / Xoff" + 261 "Hardware" + 262 "Keine" + 263 "An" + 264 "Leise" + 265 "V.23 (Minitel)" + 266 "Standard" + 267 "Non-standard (Bell, HST)" + 270 "&An Log anfügen" + 300 "Nicht festgelegt" + 301 "Daten" + 302 "Fax" + 303 "Sprache" + 304 "Kein" + 320 "Landes-/Regionseinstellung wurde aktualisiert." + 340 "Modem" + 341 "Modemeinstellungen" + 342 "Modemadresse" + 400 "Landes-/Regionseinstellung wurde nicht aktualisiert." + 401 "Einige Modems können Initialisierungsbefehle, die länger als 57 Zeichen sind, nicht verarbeiten.\n\nNähere Informationen können Sie von dem Modemhersteller erhalten." + 402 "Warnung" + 460 "Es ist nicht genügend Arbeitsspeicher verfügbar, um das allgemeine Eigenschaftenfenster anzuzeigen.\nSchließen Sie einige Dateien, und wiederholen Sie den Vorgang." + 461 "Es ist nicht genügend Arbeitsspeicher verfügbar, um das Eigenschaftenfenster für Modemeinstellungen anzuzeigen.\nSchließen Sie einige Dateien, und wiederholen Sie den Vorgang." + 463 "Jede Anrufadresse muss auf \"Automatisch\" gesetzt oder einem eindeutigen Rufsignal zugeordnet werden.\n\nÄndern Sie die doppelt vergebene Rufsignale in andere." + 465 "Standard EC" + 466 "Erzwungenes EC" + 467 "Mobil" + 468 "Deaktiviert" + 469 "Aktiviert" + 470 "Deaktiviert" + 480 "AUTO (1 Kan.)" + 481 "AUTO (2 Kan.)" + 482 "PPP (56K)" + 483 "PPP (64K)" + 484 "PPP (112K)" + 485 "PPP (112K,PAP)" + 486 "PPP (112K,CHAP)" + 487 "PPP (112K,MSCHAP)" + 488 "PPP (128K)" + 489 "PPP (128K,PAP)" + 490 "PPP (128K,CHAP)" + 491 "PPP (128K,MSCHAP)" + 500 "V.120 (64K)" + 501 "V.120 (56K)" + 502 "V.120 (112K)" + 503 "V.120 (128K)" + 504 "X.75 (64K)" + 505 "X.75 (128K)" + 506 "X.75 (T.70)" + 507 "X.75 (BTX)" + 508 "V.110 (1.2K)" + 509 "V.110 (2.4K)" + 510 "V.110 (4.8K)" + 511 "V.110 (9.6K)" + 512 "V.110 (12.0K)" + 513 "V.110 (14.4K)" + 514 "V.110 (19.2K)" + 515 "V.110 (28.8K)" + 516 "V.110 (38.4K)" + 517 "V.110 (57.6K)" + 518 "Analog (V.34/V.90)" + 550 "ESS5 (AT&T) (Nordamerika)" + 551 "AT&T Point to Multipoint" + 552 "Nationales ISDN 1 (Nordamerika)" + 553 "Northern Telecom DMS 100 (NT1)" + 554 "NTT INS64 (Japan)" + 555 "Europäisches ISDN (DSS1)" + 556 "Deutsch National (1TR6) (selten verwendet)" + 557 "Französisch National (VN3) (selten verwendet)" + 558 "Belgisch National (selten verwendet)" + 559 "Australisch National (selten verwendet)" + 560 "Unbekanntes Vermittlungsprotokoll" + 570 "Die ISDN-Konfiguration für dieses Modem ist\nnoch nicht vollständig.\n\nFüllen Sie die Informationen in der Registerkarte\n\"ISDN\" aus, bevor Sie das Modem verwenden." + 600 "PPP (56K,GSM)" + 601 "PPP (64K,GSM)" + 602 "V.120 (64K,GSM)" + 604 "V.110 (1.2K,GSM)" + 605 "V.110 (2.4K,GSM)" + 606 "V.110 (4.8K,GSM)" + 607 "V.110 (9.6K,GSM)" + 608 "V.110 (12.0K,GSM)" + 609 "V.110 (14.4K,GSM)" + 610 "V.110 (19.2K,GSM)" + 611 "V.110 (28.8K,GSM)" + 612 "V.110 (38.4K,GSM)" + 613 "V.110 (57.6K,GSM)" + 614 "Analog RLP" + 615 "Analog NRLP" + 616 "GPRS" + 617 "PIAFS - eingehend" + 618 "PIAFS - ausgehend" + 700 "Aktuellen TAPI Standort verwenden" + 2006 "Zugewiesen zu" + 2007 "Nicht vorhanden" + 2008 "Nicht Funktionsfähig" + 2009 "Neustart erforderlich" + 2010 "Der Computer muss neu gestartet werden, um die Modeminstallation abzuschließen.\n\nSoll der Computer jetzt neu gestartet werden?" + 2011 "Das Modem ist nicht korrekt installiert." + 2012 "Unbekannter Anschluss" + 3000 "Modem Setup" + 3018 "Modems" + 3019 "Installiert ein neues Modem und ändert Modemeigenschaften." + 3053 "Die Modemeigenschaften können nicht angezeigt werden, da das Modem nicht verfügbar ist.\n\nStarten Sie das System neu und wiederholen Sie den Vorgang." + 3054 "Modemeigenschaften" + 3060 "Sind Sie sicher, dass die ausgewählten Modems vom System gelöscht werden sollen?" + 3061 "Das Modem '%1' konnte nicht von %2 entfernt werden." + 3062 "Modem" + 3069 "Es steht nicht genügend Arbeitspeicher zur Verfügung, um die Modemsteuerung zu öffnen.\n\nSchließen Sie andere Programme und wiederholen Sie den Vorgang." + 3073 "Sie müssen Systemadministrator sein, um ein Modem installieren zu können." + 3074 "Es sind keine Modems installiert. Sie müssen Systemadministrator sein, um ein Modem installieren zu können." + 3076 "Die neuen Einstellungen werden erst nach dem Neustart des Computers wirksam.\n\nSoll der Computer jetzt neu gestartet werden?" + 3077 "Netzwerkeinstellungsänderungen" + 3200 "300 Baud" + 3201 "1200 Baud" + 3202 "2400 Baud" + 3203 "9600 Baud" + 3204 "19.2K Baud" + 3205 "38.4K Baud" + 3206 "57.6K Baud" + 3207 "Keine Antwort" + 3212 "Befehl" + 3213 "Antwort" + 3214 "Der Anschluss, an den das Modem angeschlossen ist, konnte nicht geöffnet werden. Dies kann durch einen Hardwarekonflikt verursacht worden sein. Überprüfen Sie mit Hilfe des Geräte-Managers, das alle Geräte korrekt funktionieren." + 3215 "Der vom Modem verwendete Anschluss ist momentan von einer anderen Anwendung geöffnet. Beenden Sie alle Anwendungen, die diesen Anschluss zurzeit verwenden könnten." + 3218 "OpenComm" + 3221 "115K Baud" + 3222 "Aktualisierung" + 3223 "Fehler" + 3233 "Erfolgreich" + 3236 "Das Modem hat nicht reagiert. Stellen Sie sicher, dass es ordnungsgemäß angeschlossen und eingeschaltet ist. Handelt es sich um ein internes Modem, so überprüfen Sie, ob der Interrupt für den Anschluss korrekt eingestellt ist." + 3237 "BEFEHL NICHT UNTERSTÜTZT" + 3238 "Feld" + 3239 "Wert" + 3240 " Standardeinstellungen" + 3241 " Verbindungseinstellungen" + 6144 "Japan" + 6145 "Albanien" + 6146 "Algerien" + 6147 "Amerikanisch-Samoa" + 6148 "Deutschland (Landescode 04)" + 6149 "Anguilla" + 6150 "Antigua und Barbuda" + 6151 "Argentinien" + 6152 "Ascension" + 6153 "Australien" + 6154 "Österreich" + 6155 "Bahamas" + 6156 "Bahrain" + 6157 "Bangladesch" + 6158 "Barbados" + 6159 "Belgien" + 6160 "Belize" + 6161 "Benin" + 6162 "Bermuda" + 6163 "Bhutan" + 6164 "Bolivien" + 6165 "Botsuana" + 6166 "Brasilien" + 6167 "Landes-/Regionalcode (23)" + 6168 "Britisches Territorium im Indischen Ozean" + 6169 "Britische Jungferninseln" + 6170 "Brunei" + 6171 "Bulgarien" + 6172 "Myanmar" + 6173 "Burundi" + 6174 "Belarus" + 6175 "Kamerun" + 6176 "Kanada" + 6177 "Kap Verde" + 6178 "Kaimaninseln" + 6179 "Zentralafrikanische Republik" + 6180 "Tschad" + 6181 "Chile" + 6182 "China" + 6183 "Kolumbien" + 6184 "Komoren" + 6185 "Kongo" + 6186 "Cookinseln" + 6187 "Costa Rica" + 6188 "Kuba" + 6189 "Zypern" + 6190 "Tschechische Republik" + 6191 "Kambodscha" + 6192 "Nordkorea" + 6193 "Dänemark" + 6194 "Djibouti" + 6195 "Dominikanische Republik" + 6196 "Dominica" + 6197 "Ecuador" + 6198 "Ägypten" + 6199 "El Salvador" + 6200 "Äquatorialguinea" + 6201 "Äthiopien" + 6202 "Falklandinseln (Malwinen)" + 6203 "Fidschi" + 6204 "Finnland" + 6205 "Frankreich" + 6206 "Französisch-Polynesien" + 6207 "Landes-/Regionalcode (63)" + 6208 "Gabun" + 6209 "Gambia" + 6210 "Deutschland (Landescode 66)" + 6211 "Angola" + 6212 "Ghana" + 6213 "Gibraltar" + 6214 "Griechenland" + 6215 "Grenada " + 6216 "Guam" + 6217 "Guatemala" + 6218 "Guernsey" + 6219 "Guinea" + 6220 "Guinea-Bissau" + 6221 "Guyana" + 6222 "Haiti" + 6223 "Honduras" + 6224 "Hongkong SAR" + 6225 "Ungarn" + 6226 "Island" + 6227 "Indien" + 6228 "Indonesien" + 6229 "Iran" + 6230 "Irak" + 6231 "Irland" + 6232 "Israel" + 6233 "Italien" + 6234 "Côte d'Ivoire" + 6235 "Jamaika" + 6236 "Afghanistan" + 6237 "Jersey" + 6238 "Jordanien" + 6239 "Kenia" + 6240 "Kiribati" + 6241 "Korea" + 6242 "Kuwait" + 6243 "Laos" + 6244 "Libanon" + 6245 "Lesotho" + 6246 "Liberia" + 6247 "Libyen" + 6248 "Liechtenstein" + 6249 "Luxemburg" + 6250 "Macao SAR" + 6251 "Madagaskar" + 6252 "Malaysia" + 6253 "Malawi" + 6254 "Malediven" + 6255 "Mali" + 6256 "Malta" + 6257 "Mauretanien" + 6258 "Mauritius" + 6259 "Mexiko" + 6260 "Monaco" + 6261 "Mongolei" + 6262 "Montserrat" + 6263 "Marokko" + 6264 "Mosambik" + 6265 "Nauru" + 6266 "Nepal" + 6267 "Niederlande" + 6268 "Niederländische Antillen" + 6269 "Neukaledonien" + 6270 "Neuseeland" + 6271 "Nicaragua" + 6272 "Niger" + 6273 "Nigeria" + 6274 "Norwegen" + 6275 "Oman" + 6276 "Pakistan" + 6277 "Panama" + 6278 "Papua-Neuguinea" + 6279 "Paraguay" + 6280 "Peru" + 6281 "Philippinen" + 6282 "Polen" + 6283 "Portugal" + 6284 "Puerto Rico" + 6285 "Katar" + 6286 "Rumänien" + 6287 "Ruanda" + 6288 "St. Kitts und Nevis" + 6289 "Landes-/Regionalcode (145)" + 6290 "St. Helena" + 6291 "St. Lucia" + 6292 "San Marino" + 6293 "Landes-/Regionalcode (148)" + 6294 "São Tomé und Príncipe" + 6295 "St. Vincent und die Grenadinen" + 6296 "Saudi-Arabien" + 6297 "Senegal" + 6298 "Seychellen" + 6299 "Sierra Leone" + 6300 "Singapur" + 6301 "Salomonen" + 6302 "Somalia" + 6303 "Südafrika" + 6304 "Spanien" + 6305 "Sri Lanka" + 6306 "Sudan" + 6307 "Surinam" + 6308 "Swasiland" + 6309 "Schweden" + 6310 "Schweiz" + 6311 "Syrien" + 6312 "Tansania" + 6313 "Thailand" + 6314 "Togo" + 6315 "Tonga" + 6316 "Trinidad und Tobago" + 6317 "Tunesien" + 6318 "Türkei" + 6319 "Turks- und Caicosinseln" + 6320 "Tuvalu" + 6321 "Uganda" + 6322 "Ukraine" + 6323 "Vereinigte Arabische Emirate" + 6324 "Vereinigtes Königreich" + 6325 "Vereinigte Staaten" + 6326 "Burkina Faso" + 6327 "Uruguay" + 6328 "Landes-/Regionalcode (184)" + 6329 "Vanuatu" + 6330 "Vatikanstadt" + 6331 "Venezuela" + 6332 "Vietnam" + 6333 "Wallis und Futuna" + 6334 "Samoa" + 6335 "Jemen" + 6336 "Jemen" + 6337 "Landes-/Regionalcode (193)" + 6338 "Demokratische Republik Kongo" + 6339 "Sambia" + 6340 "Simbabwe" + 6501 "Moldau" + 6502 "Estland" + 6503 "Litauen" + 6504 "Armenien" + 6505 "Georgien" + 6506 "Aserbaidschan" + 6507 "Turkmenistan" + 6508 "Usbekistan" + 6509 "Kasachstan" + 6510 "Tadschikistan" + 6511 "Kirgisistan" + 6512 "Lettland" + 6513 "Russische Föderation" + 6600 "Kroatien" + 6601 "Slowenien" + 6602 "Mazedonien, ehemalige jugoslawische Republik" + 6603 "Bosnien und Herzegowina" + 6604 "Serbien und Montenegro" + 20013 "Hardware ID" +END Propchange: trunk/reactos/dll/win32/modemui/lang/de-DE.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/dll/win32/modemui/modemui.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/modemui/modemui.…
============================================================================== --- trunk/reactos/dll/win32/modemui/modemui.rc (original) +++ trunk/reactos/dll/win32/modemui/modemui.rc Thu Nov 22 18:15:14 2007 @@ -14,5 +14,6 @@ IDI_702 ICON "res/702.ico" IDI_703 ICON "res/703.ico" +#include "lang/de-DE.rc" #include "lang/en-US.rc" #include "lang/uk-UA.rc"
17 years, 1 month
1
0
0
0
[tkreuzer] 30674: rbuild files use tab indentation
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu Nov 22 18:12:39 2007 New Revision: 30674 URL:
http://svn.reactos.org/svn/reactos?rev=30674&view=rev
Log: rbuild files use tab indentation Modified: trunk/reactos/dll/win32/gdi32/gdi32.rbuild Modified: trunk/reactos/dll/win32/gdi32/gdi32.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/gdi32.rbui…
============================================================================== --- trunk/reactos/dll/win32/gdi32/gdi32.rbuild (original) +++ trunk/reactos/dll/win32/gdi32/gdi32.rbuild Thu Nov 22 18:12:39 2007 @@ -9,7 +9,7 @@ <library>kernel32</library> <library>advapi32</library> <library>win32ksys</library> - <library>pseh</library> + <library>pseh</library> <directory name="include"> <pch>precomp.h</pch>
17 years, 1 month
1
0
0
0
[cwittich] 30673: fix msvc build
by cwittich@svn.reactos.org
Author: cwittich Date: Thu Nov 22 17:28:21 2007 New Revision: 30673 URL:
http://svn.reactos.org/svn/reactos?rev=30673&view=rev
Log: fix msvc build Modified: trunk/reactos/lib/fslib/vfatlib/vfatlib.h trunk/reactos/lib/fslib/vfatxlib/vfatxlib.h Modified: trunk/reactos/lib/fslib/vfatlib/vfatlib.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatlib/vfatlib.…
============================================================================== --- trunk/reactos/lib/fslib/vfatlib/vfatlib.h (original) +++ trunk/reactos/lib/fslib/vfatlib/vfatlib.h Thu Nov 22 17:28:21 2007 @@ -12,6 +12,7 @@ #define SECTORSIZE 512 +#include <pshpack1.h> typedef struct _FAT16_BOOT_SECTOR { unsigned char magic0; // 0 @@ -38,7 +39,7 @@ unsigned char SysType[8]; // 54 unsigned char Res2[446]; // 62 unsigned long Signature1; // 508 -} __attribute__((packed)) FAT16_BOOT_SECTOR, *PFAT16_BOOT_SECTOR; +} FAT16_BOOT_SECTOR, *PFAT16_BOOT_SECTOR; typedef struct _FAT32_BOOT_SECTOR @@ -74,7 +75,7 @@ unsigned char SysType[8]; // 82 unsigned char Res2[418]; // 90 unsigned long Signature1; // 508 -} __attribute__((packed)) FAT32_BOOT_SECTOR, *PFAT32_BOOT_SECTOR; +} FAT32_BOOT_SECTOR, *PFAT32_BOOT_SECTOR; typedef struct _FAT32_FSINFO { @@ -85,8 +86,8 @@ unsigned long NextFree; // 492 unsigned long Res2[3]; // 496 unsigned long TrailSig; // 508 -} __attribute__((packed)) FAT32_FSINFO, *PFAT32_FSINFO; - +} FAT32_FSINFO, *PFAT32_FSINFO; +#include <poppack.h> typedef struct _FORMAT_CONTEXT { Modified: trunk/reactos/lib/fslib/vfatxlib/vfatxlib.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatxlib/vfatxli…
============================================================================== --- trunk/reactos/lib/fslib/vfatxlib/vfatxlib.h (original) +++ trunk/reactos/lib/fslib/vfatxlib/vfatxlib.h Thu Nov 22 17:28:21 2007 @@ -9,6 +9,7 @@ #include <ndk/ntndk.h> #include <fmifs/fmifs.h> +#include <pshpack1.h> typedef struct _FATX_BOOT_SECTOR { unsigned char SysType[4]; // 0 @@ -17,8 +18,8 @@ unsigned short FATCount; // 12 unsigned long Unknown; // 14 unsigned char Unused[4078]; // 18 -} __attribute__((packed)) FATX_BOOT_SECTOR, *PFATX_BOOT_SECTOR; - +} FATX_BOOT_SECTOR, *PFATX_BOOT_SECTOR; +#include <poppack.h> typedef struct _FORMAT_CONTEXT {
17 years, 1 month
1
0
0
0
[cwittich] 30672: fix memory corruption
by cwittich@svn.reactos.org
Author: cwittich Date: Thu Nov 22 17:06:12 2007 New Revision: 30672 URL:
http://svn.reactos.org/svn/reactos?rev=30672&view=rev
Log: fix memory corruption Modified: trunk/reactos/drivers/input/i8042prt/keyboard.c Modified: trunk/reactos/drivers/input/i8042prt/keyboard.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/input/i8042prt/key…
============================================================================== --- trunk/reactos/drivers/input/i8042prt/keyboard.c (original) +++ trunk/reactos/drivers/input/i8042prt/keyboard.c Thu Nov 22 17:06:12 2007 @@ -665,7 +665,7 @@ Irp->AssociatedIrp.SystemBuffer, &DeviceExtension->KeyboardIndicators, sizeof(KEYBOARD_INDICATOR_PARAMETERS)); - Irp->IoStatus.Information = sizeof(LOCAL_KEYBOARD_INDICATOR_TRANSLATION); + Irp->IoStatus.Information = sizeof(KEYBOARD_INDICATOR_PARAMETERS); Status = STATUS_SUCCESS; } break;
17 years, 1 month
1
0
0
0
[arty] 30671: Fix prefast errors (submitted by Christoph Von Wittich) 1 Function was unused. lock.c: Add missing null check.
by arty@svn.reactos.org
Author: arty Date: Thu Nov 22 15:10:08 2007 New Revision: 30671 URL:
http://svn.reactos.org/svn/reactos?rev=30671&view=rev
Log: Fix prefast errors (submitted by Christoph Von Wittich) 1 Function was unused. lock.c: Add missing null check. Modified: trunk/reactos/drivers/network/afd/afd/lock.c trunk/reactos/drivers/network/afd/afd/tdiconn.c Modified: trunk/reactos/drivers/network/afd/afd/lock.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/afd/afd/lo…
============================================================================== --- trunk/reactos/drivers/network/afd/afd/lock.c (original) +++ trunk/reactos/drivers/network/afd/afd/lock.c Thu Nov 22 15:10:08 2007 @@ -58,7 +58,7 @@ _SEH_TRY { RtlCopyMemory( NewBuf, Buf, sizeof(AFD_WSABUF) * Count ); - if( LockAddress ) { + if( LockAddress && AddressLen ) { NewBuf[Count].buf = AddressBuf; NewBuf[Count].len = *AddressLen; Count++; Modified: trunk/reactos/drivers/network/afd/afd/tdiconn.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/afd/afd/td…
============================================================================== --- trunk/reactos/drivers/network/afd/afd/tdiconn.c (original) +++ trunk/reactos/drivers/network/afd/afd/tdiconn.c Thu Nov 22 15:10:08 2007 @@ -165,54 +165,6 @@ return Status; } -NTSTATUS -TdiBuildConnectionInfoPair -( PTDI_CONNECTION_INFO_PAIR ConnectionInfo, - PTRANSPORT_ADDRESS From, PTRANSPORT_ADDRESS To ) - /* - * FUNCTION: Fill a TDI_CONNECTION_INFO_PAIR struct will the two addresses - * given. - * ARGUMENTS: - * ConnectionInfo: The pair - * From: The from address - * To: The to address - * RETURNS: - * Status of the operation - */ -{ - PCHAR LayoutFrame; - UINT SizeOfEntry; - ULONG TdiAddressSize; - PTDI_CONNECTION_INFORMATION FromTdiConn, ToTdiConn; - - /* FIXME: Get from socket information */ - TdiAddressSize = TdiAddressSizeFromType(From->Address[0].AddressType); - SizeOfEntry = TdiAddressSize + sizeof(TDI_CONNECTION_INFORMATION); - - LayoutFrame = (PCHAR)ExAllocatePool(NonPagedPool, 2 * SizeOfEntry); - - if (!LayoutFrame) { - AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n")); - return STATUS_INSUFFICIENT_RESOURCES; - } - - RtlZeroMemory( LayoutFrame, 2 * SizeOfEntry ); - - FromTdiConn = (PTDI_CONNECTION_INFORMATION)LayoutFrame; - ToTdiConn = (PTDI_CONNECTION_INFORMATION)LayoutFrame + SizeOfEntry; - - if (From != NULL) { - TdiBuildConnectionInfoInPlace( FromTdiConn, From ); - } else { - TdiBuildNullConnectionInfoInPlace( FromTdiConn, - From->Address[0].AddressType ); - } - - TdiBuildConnectionInfoInPlace( ToTdiConn, To ); - - return STATUS_SUCCESS; -} - PTA_ADDRESS TdiGetRemoteAddress( PTDI_CONNECTION_INFORMATION TdiConn ) /* * Convenience function that rounds out the abstraction of
17 years, 1 month
1
0
0
0
← Newer
1
...
22
23
24
25
26
27
28
...
89
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Results per page:
10
25
50
100
200