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
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
January 2012
----- 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
19 participants
559 discussions
Start a n
N
ew thread
[pschweitzer] 55017: [RTL] - Reimplement RtlSetCurrentDirectory_U. This fixes bugs & implements references count - Fix the FIXME in RtlpDosPathNameToRelativeNtPathName_Ustr by incrementing referenc...
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Fri Jan 20 20:21:16 2012 New Revision: 55017 URL:
http://svn.reactos.org/svn/reactos?rev=55017&view=rev
Log: [RTL] - Reimplement RtlSetCurrentDirectory_U. This fixes bugs & implements references count - Fix the FIXME in RtlpDosPathNameToRelativeNtPathName_Ustr by incrementing references count Modified: trunk/reactos/lib/rtl/path.c Modified: trunk/reactos/lib/rtl/path.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/path.c?rev=55017&r…
============================================================================== --- trunk/reactos/lib/rtl/path.c [iso-8859-1] (original) +++ trunk/reactos/lib/rtl/path.c [iso-8859-1] Fri Jan 20 20:21:16 2012 @@ -6,6 +6,8 @@ * PROGRAMMERS: Wine team * Thomas Weidenmueller * Gunnar Dalsnes + * Alex Ionescu (alex.ionescu(a)reactos.org) + * Pierre Schweitzer (pierre(a)reactos.org) */ /* INCLUDES *****************************************************************/ @@ -20,6 +22,11 @@ #define MAX_PFX_SIZE 16 #define IS_PATH_SEPARATOR(x) (((x)==L'\\')||((x)==L'/')) + +#define RTL_CURDIR_IS_REMOVABLE 0x1 +#define RTL_CURDIR_DROP_OLD_HANDLE 0x2 +#define RTL_CURDIR_ALL_FLAGS (RTL_CURDIR_DROP_OLD_HANDLE | RTL_CURDIR_IS_REMOVABLE) // 0x3 +C_ASSERT(RTL_CURDIR_ALL_FLAGS == OBJ_HANDLE_TAGBITS); /* GLOBALS ********************************************************************/ @@ -617,7 +624,7 @@ if (InputPathType == RtlPathTypeRelative) { /* Get current directory */ - CurrentDirectory = (PCURDIR)&(NtCurrentPeb ()->ProcessParameters->CurrentDirectory.DosPath); + CurrentDirectory = &(NtCurrentPeb()->ProcessParameters->CurrentDirectory); if (CurrentDirectory->Handle) { Status = RtlInitUnicodeStringEx(&FullPath, Buffer); @@ -660,7 +667,7 @@ RelativeName->CurDirRef = RtlpCurDirRef; if (RelativeName->CurDirRef) { - /* FIXME: Increment reference count */ + InterlockedIncrement(&RtlpCurDirRef->RefCount); } RelativeName->ContainingDirectory = CurrentDirectory->Handle; @@ -831,8 +838,13 @@ /* Check if a directory reference was grabbed */ if (RelativeName->CurDirRef) { - /* FIXME: Not yet supported */ - UNIMPLEMENTED; + /* Decrease reference count */ + if (!InterlockedDecrement(&RelativeName->CurDirRef->RefCount)) + { + /* If no one uses it any longer, close handle & free */ + NtClose(RelativeName->CurDirRef->Handle); + RtlFreeHeap(RtlGetProcessHeap(), 0, RelativeName->CurDirRef); + } RelativeName->CurDirRef = NULL; } } @@ -984,89 +996,201 @@ /* * @implemented */ -NTSTATUS NTAPI -RtlSetCurrentDirectory_U(PUNICODE_STRING dir) -{ - UNICODE_STRING full; - FILE_FS_DEVICE_INFORMATION device_info; - OBJECT_ATTRIBUTES Attr; - IO_STATUS_BLOCK iosb; - PCURDIR cd; - NTSTATUS Status; - USHORT size; - HANDLE handle = NULL; - PWSTR ptr; - - DPRINT("RtlSetCurrentDirectory %wZ\n", dir); - - full.Buffer = NULL; - - RtlAcquirePebLock (); - - cd = (PCURDIR)&NtCurrentPeb ()->ProcessParameters->CurrentDirectory.DosPath; - - if (!RtlDosPathNameToNtPathName_U (dir->Buffer, &full, 0, 0)) - { - RtlReleasePebLock (); - return STATUS_OBJECT_NAME_INVALID; - } - - DPRINT("RtlSetCurrentDirectory: full %wZ\n",&full); - - InitializeObjectAttributes (&Attr, - &full, - OBJ_CASE_INSENSITIVE | OBJ_INHERIT, - NULL, - NULL); - - Status = ZwOpenFile (&handle, - SYNCHRONIZE | FILE_TRAVERSE, - &Attr, - &iosb, - FILE_SHARE_READ | FILE_SHARE_WRITE, - FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT); - - if (!NT_SUCCESS(Status)) - { - RtlFreeUnicodeString( &full); - RtlReleasePebLock (); - return Status; - } - - /* don't keep the directory handle open on removable media */ - if (NT_SUCCESS(ZwQueryVolumeInformationFile( handle, &iosb, &device_info, - sizeof(device_info), FileFsDeviceInformation )) && - (device_info.Characteristics & FILE_REMOVABLE_MEDIA)) - { - DPRINT1("don't keep the directory handle open on removable media\n"); - ZwClose( handle ); - handle = 0; - } - - if (cd->Handle) - ZwClose(cd->Handle); - cd->Handle = handle; - - /* append trailing \ if missing */ - size = full.Length / sizeof(WCHAR); - ptr = full.Buffer; - ptr += 4; /* skip \??\ prefix */ - size -= 4; - - /* This is ok because RtlDosPathNameToNtPathName_U returns a nullterminated string. - * So the nullterm is replaced with \ - * -Gunnar - */ - if (size && ptr[size - 1] != '\\') ptr[size++] = '\\'; - - memcpy( cd->DosPath.Buffer, ptr, size * sizeof(WCHAR)); - cd->DosPath.Buffer[size] = 0; - cd->DosPath.Length = size * sizeof(WCHAR); - - RtlFreeUnicodeString( &full); - RtlReleasePebLock(); - - return STATUS_SUCCESS; +NTSTATUS +NTAPI +RtlSetCurrentDirectory_U(IN PUNICODE_STRING Path) +{ + PCURDIR CurDir; + NTSTATUS Status; + RTL_PATH_TYPE PathType; + IO_STATUS_BLOCK IoStatusBlock; + UNICODE_STRING FullPath, NtName; + PRTLP_CURDIR_REF OldCurDir = NULL; + OBJECT_ATTRIBUTES ObjectAttributes; + FILE_FS_DEVICE_INFORMATION FileFsDeviceInfo; + ULONG SavedLength, CharLength, FullPathLength; + HANDLE OldHandle = 0, CurDirHandle, OldCurDirHandle = 0; + + DPRINT("RtlSetCurrentDirectory_U %wZ\n", Path); + + /* Can't set current directory on DOS device */ + if (RtlIsDosDeviceName_Ustr(Path)) + { + return STATUS_NOT_A_DIRECTORY; + } + + /* Get current directory */ + RtlAcquirePebLock(); + CurDir = &NtCurrentPeb()->ProcessParameters->CurrentDirectory; + + /* Check if we have to drop current handle */ + if (((ULONG_PTR)(CurDir->Handle) & RTL_CURDIR_ALL_FLAGS) == RTL_CURDIR_DROP_OLD_HANDLE) + { + OldHandle = CurDir->Handle; + CurDir->Handle = NULL; + } + + /* Allocate a buffer for full path (using max possible length */ + FullPath.Buffer = RtlAllocateHeap(RtlGetProcessHeap(), 0, CurDir->DosPath.MaximumLength); + if (!FullPath.Buffer) + { + Status = STATUS_NO_MEMORY; + goto Leave; + } + + /* Init string */ + FullPath.Length = 0; + FullPath.MaximumLength = CurDir->DosPath.MaximumLength; + + /* Get new directory full path */ + FullPathLength = RtlGetFullPathName_Ustr(Path, FullPath.MaximumLength, FullPath.Buffer, NULL, NULL, &PathType); + if (!FullPathLength) + { + Status = STATUS_OBJECT_NAME_INVALID; + goto Leave; + } + + SavedLength = FullPath.MaximumLength; + CharLength = FullPathLength / sizeof(WCHAR); + + if (FullPathLength > FullPath.MaximumLength) + { + Status = STATUS_NAME_TOO_LONG; + goto Leave; + } + + /* Translate it to NT name */ + if (!RtlDosPathNameToNtPathName_U(FullPath.Buffer, &NtName, NULL, NULL)) + { + Status = STATUS_OBJECT_NAME_INVALID; + goto Leave; + } + + InitializeObjectAttributes(&ObjectAttributes, &NtName, + OBJ_CASE_INSENSITIVE | OBJ_INHERIT, + NULL, NULL); + + /* If previous current directory was removable, then check it for dropping */ + if (((ULONG_PTR)(CurDir->Handle) & RTL_CURDIR_ALL_FLAGS) == RTL_CURDIR_ALL_FLAGS) + { + /* Get back normal handle */ + CurDirHandle = (HANDLE)((ULONG_PTR)(CurDir->Handle) & ~RTL_CURDIR_ALL_FLAGS); + CurDir->Handle = 0; + + /* Get device information */ + Status = NtQueryVolumeInformationFile(CurDirHandle, + &IoStatusBlock, + &FileFsDeviceInfo, + sizeof(FileFsDeviceInfo), + FileFsDeviceInformation); + /* Retry without taking care of removable device */ + if (!NT_SUCCESS(Status)) + { + Status = RtlSetCurrentDirectory_U(Path); + goto Leave; + } + } + else + { + /* Open directory */ + Status = NtOpenFile(&CurDirHandle, + SYNCHRONIZE | FILE_TRAVERSE, + &ObjectAttributes, + &IoStatusBlock, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT); + if (!NT_SUCCESS(Status)) goto Leave; + + /* Get device information */ + Status = NtQueryVolumeInformationFile(CurDirHandle, + &IoStatusBlock, + &FileFsDeviceInfo, + sizeof(FileFsDeviceInfo), + FileFsDeviceInformation); + if (!NT_SUCCESS(Status)) goto Leave; + } + + /* If device is removable, mark handle */ + if (FileFsDeviceInfo.Characteristics & FILE_REMOVABLE_MEDIA) + { + CurDirHandle = (HANDLE)((ULONG_PTR)CurDirHandle | RTL_CURDIR_IS_REMOVABLE); + } + + FullPath.Length = FullPathLength; + + /* If full path isn't \ terminated, do it */ + if (FullPath.Buffer[CharLength - 1] != L'\\') + { + if ((CharLength + 1) * sizeof(WCHAR) > SavedLength) + { + Status = STATUS_NAME_TOO_LONG; + goto Leave; + } + + FullPath.Buffer[CharLength] = L'\\'; + FullPath.Buffer[CharLength + 1] = UNICODE_NULL; + FullPath.Length += sizeof(WCHAR); + } + + /* If we have previous current directory with only us as reference, save it */ + if (RtlpCurDirRef != NULL && RtlpCurDirRef->RefCount == 1) + { + OldCurDirHandle = RtlpCurDirRef->Handle; + } + else + { + /* Allocate new current directory struct saving previous one */ + OldCurDir = RtlpCurDirRef; + RtlpCurDirRef = RtlAllocateHeap(RtlGetProcessHeap(), 0, sizeof(RTLP_CURDIR_REF)); + if (!RtlpCurDirRef) + { + RtlpCurDirRef = OldCurDir; + OldCurDir = NULL; + Status = STATUS_NO_MEMORY; + goto Leave; + } + + /* Set reference to 1 (us) */ + RtlpCurDirRef->RefCount = 1; + } + + /* Save new data */ + CurDir->Handle = CurDirHandle; + RtlpCurDirRef->Handle = CurDirHandle; + CurDirHandle = 0; + + /* Copy full path */ + RtlCopyMemory(CurDir->DosPath.Buffer, FullPath.Buffer, FullPath.Length + sizeof(WCHAR)); + CurDir->DosPath.Length = FullPath.Length; + + Status = STATUS_SUCCESS; + +Leave: + RtlReleasePebLock(); + + if (FullPath.Buffer) + { + RtlFreeHeap(RtlGetProcessHeap(), 0, FullPath.Buffer); + } + + if (NtName.Buffer) + { + RtlFreeHeap(RtlGetProcessHeap(), 0, NtName.Buffer); + } + + if (CurDirHandle) NtClose(CurDirHandle); + + if (OldHandle) NtClose(OldHandle); + + if (OldCurDirHandle) NtClose(OldCurDirHandle); + + if (OldCurDir && InterlockedDecrement(&OldCurDir->RefCount) == 0) + { + NtClose(OldCurDir->Handle); + RtlFreeHeap(RtlGetProcessHeap(), 0, OldCurDir); + } + + return Status; }
12 years, 11 months
1
0
0
0
[pschweitzer] 55016: [NDK] Properly define RTLP_CURDIR_REF
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Fri Jan 20 20:18:31 2012 New Revision: 55016 URL:
http://svn.reactos.org/svn/reactos?rev=55016&view=rev
Log: [NDK] Properly define RTLP_CURDIR_REF Modified: trunk/reactos/include/ndk/rtltypes.h Modified: trunk/reactos/include/ndk/rtltypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/rtltypes.h?rev…
============================================================================== --- trunk/reactos/include/ndk/rtltypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/rtltypes.h [iso-8859-1] Fri Jan 20 20:18:31 2012 @@ -1080,7 +1080,12 @@ HANDLE Handle; } CURDIR, *PCURDIR; -typedef struct _RTLP_CURDIR_REF *PRTLP_CURDIR_REF; +typedef struct _RTLP_CURDIR_REF +{ + LONG RefCount; + HANDLE Handle; +} RTLP_CURDIR_REF, *PRTLP_CURDIR_REF; + typedef struct _RTL_RELATIVE_NAME_U { UNICODE_STRING RelativeName;
12 years, 11 months
1
0
0
0
[tfaber] 55015: [HAL] - Do not truncate PCI device names in debug dump; misc fixes [PCI] - Get rid of some magic numbers
by tfaber@svn.reactos.org
Author: tfaber Date: Fri Jan 20 19:53:00 2012 New Revision: 55015 URL:
http://svn.reactos.org/svn/reactos?rev=55015&view=rev
Log: [HAL] - Do not truncate PCI device names in debug dump; misc fixes [PCI] - Get rid of some magic numbers Modified: trunk/reactos/drivers/bus/pci/pdo.c trunk/reactos/hal/halx86/legacy/bussupp.c Modified: trunk/reactos/drivers/bus/pci/pdo.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/pci/pdo.c?rev=…
============================================================================== --- trunk/reactos/drivers/bus/pci/pdo.c [iso-8859-1] (original) +++ trunk/reactos/drivers/bus/pci/pdo.c [iso-8859-1] Fri Jan 20 19:53:00 2012 @@ -214,7 +214,9 @@ return FALSE; } - BaseValue = (OrigValue & 0x00000001) ? (OrigValue & ~0x3) : (OrigValue & ~0xF); + BaseValue = (OrigValue & PCI_ADDRESS_IO_SPACE) + ? (OrigValue & PCI_ADDRESS_IO_ADDRESS_MASK) + : (OrigValue & PCI_ADDRESS_MEMORY_ADDRESS_MASK); *Base = BaseValue; @@ -267,33 +269,35 @@ return TRUE; } - XLength = ~((NewValue & 0x00000001) ? (NewValue & ~0x3) : (NewValue & ~0xF)) + 1; + XLength = ~((NewValue & PCI_ADDRESS_IO_SPACE) + ? (NewValue & PCI_ADDRESS_IO_ADDRESS_MASK) + : (NewValue & PCI_ADDRESS_MEMORY_ADDRESS_MASK)) + 1; #if 0 DbgPrint("BaseAddress 0x%08lx Length 0x%08lx", BaseValue, XLength); - if (NewValue & 0x00000001) + if (NewValue & PCI_ADDRESS_IO_SPACE) { DbgPrint(" IO range"); } else { DbgPrint(" Memory range"); - if ((NewValue & 0x00000006) == 0) + if ((NewValue & PCI_ADDRESS_MEMORY_TYPE_MASK) == 0) { DbgPrint(" in 32-Bit address space"); } - else if ((NewValue & 0x00000006) == 2) + else if ((NewValue & PCI_ADDRESS_MEMORY_TYPE_MASK) == 2) { DbgPrint(" below 1BM "); } - else if ((NewValue & 0x00000006) == 4) + else if ((NewValue & PCI_ADDRESS_MEMORY_TYPE_MASK) == 4) { DbgPrint(" in 64-Bit address space"); } - if (NewValue & 0x00000008) + if (NewValue & PCI_ADDRESS_MEMORY_PREFETCHABLE) { DbgPrint(" prefetchable"); } @@ -303,7 +307,9 @@ #endif *Length = XLength; - *Flags = (NewValue & 0x00000001) ? (NewValue & 0x3) : (NewValue & 0xF); + *Flags = (NewValue & PCI_ADDRESS_IO_SPACE) + ? (NewValue & ~PCI_ADDRESS_IO_ADDRESS_MASK) + : (NewValue & ~PCI_ADDRESS_MEMORY_ADDRESS_MASK); return TRUE; } Modified: trunk/reactos/hal/halx86/legacy/bussupp.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/legacy/bussupp.…
============================================================================== --- trunk/reactos/hal/halx86/legacy/bussupp.c [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/legacy/bussupp.c [iso-8859-1] Fri Jan 20 19:53:00 2012 @@ -29,7 +29,7 @@ IN ULONG BusSpecificData) { PBUS_HANDLER Bus; - + /* Register the bus handler */ HalRegisterBusHandler(InterfaceType, BusDataType, @@ -40,7 +40,7 @@ NULL, &Bus); if (!Bus) return NULL; - + /* Check for a valid interface */ if (InterfaceType != InterfaceTypeUndefined) { @@ -49,7 +49,7 @@ sizeof(SUPPORTED_RANGES), ' laH'); RtlZeroMemory(Bus->BusAddresses, sizeof(SUPPORTED_RANGES)); - + /* Build the data structure */ Bus->BusAddresses->Version = HAL_SUPPORTED_RANGE_VERSION; Bus->BusAddresses->Dma.Limit = 7; @@ -58,7 +58,7 @@ Bus->BusAddresses->IO.SystemAddressSpace = 1; Bus->BusAddresses->PrefetchMemory.Base = 1; } - + /* Return the bus address */ return Bus; } @@ -69,13 +69,13 @@ HalpRegisterInternalBusHandlers(VOID) { PBUS_HANDLER Bus; - + /* Only do processor 1 */ if (KeGetCurrentPrcb()->Number) return; - + /* Register root support */ HalpInitBusHandler(); - + /* Allocate the system bus */ Bus = HalpAllocateBusHandler(Internal, ConfigurationSpaceUndefined, @@ -87,9 +87,9 @@ { /* Set it up */ Bus->GetInterruptVector = HalpGetSystemInterruptVector; - Bus->TranslateBusAddress = HalpTranslateSystemBusAddress; - } - + Bus->TranslateBusAddress = HalpTranslateSystemBusAddress; + } + /* Allocate the CMOS bus */ Bus = HalpAllocateBusHandler(InterfaceTypeUndefined, Cmos, @@ -103,7 +103,7 @@ Bus->GetBusData = HalpcGetCmosData; Bus->SetBusData = HalpcSetCmosData; } - + /* Allocate the CMOS bus */ Bus = HalpAllocateBusHandler(InterfaceTypeUndefined, Cmos, @@ -147,7 +147,7 @@ UNICODE_STRING KeyString; ULONG Data = OverrideEnable; HANDLE KeyHandle, Handle; - + /* Open CCS key */ RtlInitUnicodeString(&KeyString, L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET"); @@ -161,27 +161,27 @@ &KeyString, KEY_ALL_ACCESS, TRUE); - + /* Close root key */ ZwClose(Handle); - + /* Check if PNP BIOS key exists */ if (NT_SUCCESS(Status)) { /* Set the override value */ - RtlInitUnicodeString(&KeyString, L"FullDecodeChipsetOverride"); + RtlInitUnicodeString(&KeyString, L"FullDecodeChipsetOverride"); Status = ZwSetValueKey(KeyHandle, &KeyString, 0, REG_DWORD, &Data, sizeof(Data)); - + /* Close subkey */ ZwClose(KeyHandle); } } - + /* Return status */ return Status; } @@ -195,7 +195,7 @@ { PBUS_HANDLER Bus; PPCIPBUSDATA BusData; - + /* Allocate the bus handler */ Bus = HalpAllocateBusHandler(PCIBus, PCIConfiguration, @@ -203,7 +203,7 @@ Internal, 0, sizeof(PCIPBUSDATA)); - + /* Set it up */ Bus->GetBusData = (PGETSETBUSDATA)HalpGetPCIData; Bus->SetBusData = (PGETSETBUSDATA)HalpSetPCIData; @@ -211,10 +211,10 @@ Bus->AdjustResourceList = (PADJUSTRESOURCELIST)HalpAdjustPCIResourceList; Bus->AssignSlotResources = (PASSIGNSLOTRESOURCES)HalpAssignPCISlotResources; Bus->BusAddresses->Dma.Limit = 0; - + /* Get our custom bus data */ BusData = (PPCIPBUSDATA)Bus->BusData; - + /* Setup custom bus data */ BusData->CommonData.Tag = PCI_DATA_TAG; BusData->CommonData.Version = PCI_DATA_VERSION; @@ -224,45 +224,45 @@ BusData->CommonData.Line2Pin = (PciLine2Pin)HalpPCIISALine2Pin; BusData->MaxDevice = PCI_MAX_DEVICES; BusData->GetIrqRange = (PciIrqRange)HalpGetISAFixedPCIIrq; - + /* Initialize the bitmap */ RtlInitializeBitMap(&BusData->DeviceConfigured, BusData->ConfiguredBits, 256); - + /* Check the type of PCI bus */ switch (PciType) { /* Type 1 PCI Bus */ case 1: - + /* Copy the Type 1 handler data */ RtlCopyMemory(&PCIConfigHandler, &PCIConfigHandlerType1, sizeof(PCIConfigHandler)); - + /* Set correct I/O Ports */ BusData->Config.Type1.Address = PCI_TYPE1_ADDRESS_PORT; BusData->Config.Type1.Data = PCI_TYPE1_DATA_PORT; break; - + /* Type 2 PCI Bus */ case 2: - + /* Copy the Type 1 handler data */ RtlCopyMemory(&PCIConfigHandler, &PCIConfigHandlerType2, sizeof (PCIConfigHandler)); - + /* Set correct I/O Ports */ BusData->Config.Type2.CSE = PCI_TYPE2_CSE_PORT; BusData->Config.Type2.Forward = PCI_TYPE2_FORWARD_PORT; BusData->Config.Type2.Base = PCI_TYPE2_ADDRESS_BASE; - + /* Only 16 devices supported, not 32 */ BusData->MaxDevice = 16; break; - + default: - + /* Invalid type */ DbgPrint("HAL: Unnkown PCI type\n"); } @@ -281,10 +281,10 @@ PPCI_COMMON_CONFIG PciHeader = (PVOID)DataBuffer; ULONG i; ULONG_PTR Address; - + /* Read the PCI header */ HalpReadPCIConfig(BusHandler, Slot, PciHeader, 0, PCI_COMMON_HDR_LENGTH); - + /* Make sure it's a valid device */ if ((PciHeader->VendorID == PCI_INVALID_VENDORID) || (PCI_CONFIGURATION_TYPE(PciHeader) != PCI_DEVICE_TYPE)) @@ -292,7 +292,7 @@ /* Bail out */ return FALSE; } - + /* Make sure interrupt numbers make sense */ if (((PciHeader->u.type0.InterruptPin) && (PciHeader->u.type0.InterruptPin > 4)) || @@ -301,7 +301,7 @@ /* Bail out */ return FALSE; } - + /* Now scan PCI BARs */ for (i = 0; i < PCI_TYPE0_ADDRESSES; i++) { @@ -317,7 +317,7 @@ /* MMIO should be higher than 0x80000 */ if ((Address > 0xF) && (Address < 0x80000)) return FALSE; } - + /* Is this a 64-bit address? */ if (!(Address & PCI_ADDRESS_IO_SPACE) && ((Address & PCI_ADDRESS_MEMORY_TYPE_MASK) == PCI_TYPE_64BIT)) @@ -348,7 +348,7 @@ WCHAR Buffer[32]; KEY_VALUE_PARTIAL_INFORMATION PartialInfo; ULONG ResultLength; - + /* Setup the object attributes for the key */ RtlInitUnicodeString(&KeyName, L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET\\" @@ -358,11 +358,11 @@ OBJ_CASE_INSENSITIVE, NULL, NULL); - + /* Open the key */ Status = ZwOpenKey(&KeyHandle, KEY_READ, &ObjectAttributes); if (!NT_SUCCESS(Status)) return Status; - + /* Query value */ swprintf(Buffer, L"%04X%04X", VendorId, DeviceId); RtlInitUnicodeString(&ValueName, Buffer); @@ -379,7 +379,7 @@ *HackFlags = *(PULONG)PartialInfo.Data; DbgPrint("\t\tHack Flags: %lx (Hack Revision: %lx-Your Revision: %lx)\n", *HackFlags, HALP_REVISION_FROM_HACK_FLAGS(*HackFlags), RevisionId); - + /* Does it apply to this revision? */ if ((RevisionId) && (RevisionId >= (HALP_REVISION_FROM_HACK_FLAGS(*HackFlags)))) { @@ -391,7 +391,7 @@ *HackFlags = HALP_HACK_FLAGS(*HackFlags); if (!*HackFlags) DbgPrint("\tNo HackFlags for your chipset's revision!\n"); } - + /* Close the handle and return */ ZwClose(KeyHandle); return Status; @@ -406,7 +406,7 @@ { ULONG ElementCount, i; PPCI_CARD_DESCRIPTOR CardDescriptor; - + /* How many PCI Cards that we know about? */ ElementCount = PciRegistryInfo->ElementCount; if (!ElementCount) return FALSE; @@ -417,7 +417,7 @@ { /* Check for flag match */ if (CardDescriptor->Flags != Flags) continue; - + /* Check for VID-PID match */ if ((CardDescriptor->VendorID != PciData->VendorID) || (CardDescriptor->DeviceID != PciData->DeviceID)) @@ -433,16 +433,16 @@ /* Skip */ continue; } - + /* Check what kind of device this is */ switch (PCI_CONFIGURATION_TYPE(PciData)) { /* CardBUS Bridge */ case PCI_CARDBUS_BRIDGE_TYPE: - + /* This means the real device header is in the device-specific data */ PciData = (PPCI_COMMON_CONFIG)PciData->DeviceSpecific; - + /* Normal PCI device */ case PCI_DEVICE_TYPE: @@ -453,7 +453,7 @@ /* Skip */ continue; } - + /* Check for subsystem match, if requested */ if ((CardDescriptor->Flags & HALP_CHECK_CARD_SUBSYSTEM_ID) && (CardDescriptor->SubsystemID != PciData->u.type0.SubSystemID)) @@ -461,19 +461,19 @@ /* Skip */ continue; } - + /* You made it! */ return TRUE; - + /* PCI Bridge -- don't bother */ case PCI_BRIDGE_TYPE: default: - + /* Recognize it */ return TRUE; } } - + /* This means the card isn't recognized */ return FALSE; } @@ -490,43 +490,43 @@ /* The device is nice enough to admit it */ return TRUE; } - + /* Symphony 82C101 */ if (PciData->VendorID == 0x1C1C) return TRUE; - + /* ALi MS4803 or M5219 */ if ((PciData->VendorID == 0x10B9) && ((PciData->DeviceID == 0x5215) || (PciData->DeviceID == 0x5219))) { return TRUE; } - + /* Appian Technology */ if ((PciData->VendorID == 0x1097) && (PciData->DeviceID == 0x38)) return TRUE; - + /* Compaq Triflex Dual EIDE Controller */ if ((PciData->VendorID == 0xE11) && (PciData->DeviceID == 0xAE33)) return TRUE; - + /* Micron PC Tech RZ1000 */ if ((PciData->VendorID == 0x1042) && (PciData->DeviceID == 0x1000)) return TRUE; - + /* SiS 85C601 or 5513 [IDE] */ if ((PciData->VendorID == 0x1039) && ((PciData->DeviceID == 0x601) || (PciData->DeviceID == 0x5513))) { return TRUE; } - + /* Symphony Labs W83769F */ if ((PciData->VendorID == 0x10AD) && ((PciData->DeviceID == 0x1) || (PciData->DeviceID == 0x150))) { return TRUE; } - + /* UMC UM8673F */ if ((PciData->VendorID == 0x1060) && (PciData->DeviceID == 0x101)) return TRUE; - + /* You've survived */ return FALSE; } @@ -544,7 +544,7 @@ (PciData->BaseClass == PCI_CLASS_BRIDGE_DEV) && (PciData->SubClass == PCI_SUBCLASS_BR_CARDBUS))); } - + BOOLEAN NTAPI INIT_FUNCTION @@ -556,14 +556,14 @@ UCHAR DataBuffer[PCI_COMMON_HDR_LENGTH]; PPCI_COMMON_CONFIG PciData = (PPCI_COMMON_CONFIG)DataBuffer; PBUS_HANDLER BusHandler; - + /* Loop PCI buses */ PciSlot.u.bits.Reserved = 0; for (i = 0; i < *BusCount; i++) { /* Get the bus handler */ BusHandler = HalHandlerForBus(PCIBus, i); - + /* Loop every device */ for (j = 0; j < PCI_MAX_DEVICES; j++) { @@ -573,27 +573,27 @@ { /* Build the final slot structure */ PciSlot.u.bits.FunctionNumber = k; - + /* Read the configuration information */ HalpReadPCIConfig(BusHandler, PciSlot, PciData, 0, PCI_COMMON_HDR_LENGTH); - + /* Skip if this is an invalid function */ if (PciData->VendorID == PCI_INVALID_VENDORID) continue; - + /* Make sure that this is a PCI bridge or a cardbus bridge */ if (!HalpIsBridgeDevice(PciData)) continue; - + /* Not supported */ if (!WarningsGiven[2]++) DPRINT1("Your machine has a PCI-to-PCI or CardBUS Bridge. PCI devices may fail!\n"); continue; } } } - + /* If we exited the loop, then there's no bridge to worry about */ return FALSE; } @@ -611,7 +611,7 @@ { /* Get PCI bus handler */ Bus = HalHandlerForBus(PCIBus, i); - + /* Loop all parent buses */ ParentBus = Bus->ParentHandler; while (ParentBus) @@ -629,7 +629,7 @@ { /* Get PCI bus handler */ Bus = HalHandlerForBus(PCIBus, i); - + /* Check if this is a PCI 2.2 Bus with Subtractive Decode */ if (!((PPCIPBUSDATA)Bus->BusData)->Subtractive) { @@ -643,7 +643,7 @@ /* Should trim addresses */ if (!WarningsGiven[1]++) DPRINT1("Found parent PCI Bus (indicating PCI-to-PCI Bridge). PCI devices may fail!\n"); } - + /* Check the next parent */ ParentBus = ParentBus->ParentHandler; } @@ -655,7 +655,7 @@ { /* Get the PCI bus handler */ Bus = HalHandlerForBus(PCIBus, i); - + /* Sort and combine (trim) bus address range information */ DPRINT("Warning: Bus addresses not being optimized!\n"); } @@ -673,7 +673,7 @@ DbgPrint("%d", (int) x); } else if (x < 1048576) - { + { DbgPrint("%dK", (int)(x / 1024)); } else if (x < 0x80000000) @@ -694,16 +694,16 @@ IN ULONG j, IN ULONG k, IN PPCI_COMMON_CONFIG PciData) -{ +{ extern CHAR ClassTable[3922]; extern CHAR VendorTable[642355]; PCHAR p, ClassName, SubClassName, VendorName, ProductName, SubVendorName; ULONG Length; CHAR LookupString[16] = ""; - CHAR bSubClassName[32] = ""; - CHAR bVendorName[32] = ""; - CHAR bProductName[32] = "Unknown device"; - CHAR bSubVendorName[32] = "Unknown"; + CHAR bSubClassName[64] = ""; + CHAR bVendorName[64] = ""; + CHAR bProductName[128] = "Unknown device"; + CHAR bSubVendorName[128] = "Unknown"; ULONG Size, Mem, b; /* Isolate the class name */ @@ -739,7 +739,7 @@ if (Length >= sizeof(bVendorName)) Length = sizeof(bVendorName) - 1; strncpy(bVendorName, VendorName, Length); bVendorName[Length] = '\0'; - + /* Isolate the product name */ sprintf(LookupString, "\t%04x", PciData->DeviceID); ProductName = strstr(VendorName, LookupString); @@ -752,7 +752,7 @@ if (Length >= sizeof(bProductName)) Length = sizeof(bProductName) - 1; strncpy(bProductName, ProductName, Length); bProductName[Length] = '\0'; - + /* Isolate the subvendor and subsystem name */ sprintf(LookupString, "\t\t%04x %04x ", @@ -789,13 +789,15 @@ bSubVendorName, PciData->u.type0.SubVendorID, PciData->u.type0.SubSystemID); - + /* Print out and decode flags */ DbgPrint("\tFlags:"); if (PciData->Command & PCI_ENABLE_BUS_MASTER) DbgPrint(" bus master,"); if (PciData->Status & PCI_STATUS_66MHZ_CAPABLE) DbgPrint(" 66MHz,"); + if ((PciData->Status & PCI_STATUS_DEVSEL) == 0x000) DbgPrint(" fast devsel,"); if ((PciData->Status & PCI_STATUS_DEVSEL) == 0x200) DbgPrint(" medium devsel,"); - if ((PciData->Status & PCI_STATUS_DEVSEL) == 0x400) DbgPrint(" fast devsel,"); + if ((PciData->Status & PCI_STATUS_DEVSEL) == 0x400) DbgPrint(" slow devsel,"); + if ((PciData->Status & PCI_STATUS_DEVSEL) == 0x600) DbgPrint(" unknown devsel,"); DbgPrint(" latency %d", PciData->LatencyTimer); if (PciData->u.type0.InterruptPin != 0 && PciData->u.type0.InterruptLine != 0 && @@ -809,24 +811,24 @@ /* Check for a BAR */ Mem = PciData->u.type0.BaseAddresses[b]; if (Mem) - { + { /* Decode the address type */ if (Mem & PCI_ADDRESS_IO_SPACE) { - /* Decode the size */ + /* Guess the size */ Size = 1 << 2; while (!(Mem & Size) && (Size)) Size <<= 1; - + /* Print it out */ DbgPrint("\tI/O ports at %04lx", Mem & PCI_ADDRESS_IO_ADDRESS_MASK); ShowSize(Size); } else { - /* Decode the size */ + /* Guess the size */ Size = 1 << 8; while (!(Mem & Size) && (Size)) Size <<= 1; - + /* Print it out */ DbgPrint("\tMemory at %08lx (%d-bit, %sprefetchable)", Mem & PCI_ADDRESS_MEMORY_ADDRESS_MASK, @@ -855,24 +857,24 @@ ULONG HackFlags; BOOLEAN ExtendedAddressDecoding = FALSE; NTSTATUS Status; - + /* Query registry information */ PciRegistryInfo = HalpQueryPciRegistryInfo(); if (!PciRegistryInfo) return; - + /* Initialize the PCI configuration lock */ KeInitializeSpinLock(&HalpPCIConfigLock); - + /* Get the type and free the info structure */ PciType = PciRegistryInfo->HardwareMechanism & 0xF; - + /* Check if this is a type 2 PCI bus with at least one bus */ if ((PciRegistryInfo->NoBuses) && (PciType == 2)) { /* Setup the PCI slot */ PciSlot.u.bits.Reserved = 0; PciSlot.u.bits.FunctionNumber = 0; - + /* Loop all slots */ for (i = 0; i < 32; i++) { @@ -880,26 +882,26 @@ PciType = 2; BusHandler = HalpAllocateAndInitPciBusHandler(2, 0, TRUE); if (!BusHandler) break; - + /* Now check if it's valid */ if (HalpIsValidPCIDevice(BusHandler, PciSlot)) break; - + /* Heh, the BIOS lied... try Type 1 */ PciType = 1; BusHandler = HalpAllocateAndInitPciBusHandler(1, 0, TRUE); if (!BusHandler) break; - + /* Now check if it's valid */ if (HalpIsValidPCIDevice(BusHandler, PciSlot)) break; - + /* Keep trying */ PciType = 2; } - + /* Now allocate the correct kind of handler */ HalpAllocateAndInitPciBusHandler(PciType, 0, FALSE); } - + /* Okay, now loop all PCI bridges */ do { @@ -915,10 +917,10 @@ } /* Go to the next bridge */ } while (HalpGetPciBridgeConfig(PciType, &PciRegistryInfo->NoBuses)); - + /* Now build correct address range informaiton */ HalpFixupPciSupportedRanges(PciRegistryInfo->NoBuses); - + /* Loop every bus */ DbgPrint("\n====== PCI BUS HARDWARE DETECTION =======\n\n"); PciSlot.u.bits.Reserved = 0; @@ -936,20 +938,20 @@ { /* Build the final slot structure */ PciSlot.u.bits.FunctionNumber = k; - + /* Read the configuration information */ HalpReadPCIConfig(BusHandler, PciSlot, PciData, 0, PCI_COMMON_HDR_LENGTH); - + /* Skip if this is an invalid function */ if (PciData->VendorID == PCI_INVALID_VENDORID) continue; - + /* Print out the entry */ HalpDebugPciDumpBus(i, j, k, PciData); - + /* Check if this is a Cardbus bridge */ if (PCI_CONFIGURATION_TYPE(PciData) == PCI_CARDBUS_BRIDGE_TYPE) { @@ -957,12 +959,12 @@ DbgPrint("\tDevice is a PCI Cardbus Bridge. It will not work!\n"); continue; } - + /* Check if this is a PCI device */ if (PCI_CONFIGURATION_TYPE(PciData) != PCI_BRIDGE_TYPE) { /* Check if it has an interrupt pin and line registered */ - if ((PciData->u.type1.InterruptPin) && + if ((PciData->u.type1.InterruptPin) && (PciData->u.type1.InterruptLine)) { /* Check if this interrupt line is connected to the bus */ @@ -979,7 +981,7 @@ } } } - + /* Check for broken Intel chips */ if (PciData->VendorID == 0x8086) { @@ -991,7 +993,7 @@ DbgPrint("\tDevice is a broken Intel 82430 PCI Controller. It will not work!\n\n"); continue; } - + /* Check for broken 82378 PCI-to-ISA Bridge */ if ((PciData->DeviceID == 0x0484) && (PciData->RevisionID <= 3)) @@ -1000,7 +1002,7 @@ DbgPrint("\tDevice is a broken Intel 82378 PCI-to-ISA Bridge. It will not work!\n\n"); continue; } - + /* Check for broken 82450 PCI Bridge */ if ((PciData->DeviceID == 0x84C4) && (PciData->RevisionID <= 4)) @@ -1009,7 +1011,7 @@ continue; } } - + /* Do we know this card? */ if (!ExtendedAddressDecoding) { @@ -1023,7 +1025,7 @@ ExtendedAddressDecoding = TRUE; } } - + /* Check if this is a USB controller */ if ((PciData->BaseClass == PCI_CLASS_SERIAL_BUS_CTLR) && (PciData->SubClass == PCI_SUBCLASS_SB_USB)) @@ -1034,14 +1036,14 @@ DbgPrint("\tDevice is an OHCI (USB) PCI Expansion Card. Turn off Legacy USB in your BIOS!\n\n"); continue; } - + /* Check for Intel UHCI controller */ if (PciData->VendorID == 0x8086) { DbgPrint("\tDevice is an Intel UHCI (USB) Controller. Turn off Legacy USB in your BIOS!\n\n"); continue; } - + /* Check for VIA UHCI controller */ if (PciData->VendorID == 0x1106) { @@ -1049,7 +1051,7 @@ continue; } } - + /* Now check the registry for chipset hacks */ Status = HalpGetChipHacks(PciData->VendorID, PciData->DeviceID, @@ -1063,21 +1065,21 @@ DbgPrint("This chipset has broken ACPI IRQ Routing! Be aware!\n\n"); continue; } - + /* Check for broken ACPI timer */ if (HackFlags & HAL_PCI_CHIP_HACK_BROKEN_ACPI_TIMER) { DbgPrint("This chipset has a broken ACPI timer! Be aware!\n\n"); continue; } - + /* Check for hibernate-disable */ if (HackFlags & HAL_PCI_CHIP_HACK_DISABLE_HIBERNATE) { DbgPrint("This chipset has a broken PCI device which is incompatible with hibernation. Be aware!\n\n"); continue; } - + /* Check for USB controllers that generate SMIs */ if (HackFlags & HAL_PCI_CHIP_HACK_USB_SMI_DISABLE) { @@ -1085,19 +1087,19 @@ continue; } } - + /* Terminate the entry */ DbgPrint("\n"); } } } - + /* Initialize NMI Crash Flag */ HalpGetNMICrashFlag(); - + /* Free the registry data */ ExFreePoolWithTag(PciRegistryInfo, TAG_HAL); - + /* Tell PnP if this hard supports correct decoding */ HalpMarkChipsetDecode(ExtendedAddressDecoding); DbgPrint("====== PCI BUS DETECTION COMPLETE =======\n\n"); @@ -1147,7 +1149,7 @@ NTSTATUS Status; PAGED_CODE(); DPRINT1("Slot assignment for %d on bus %d\n", BusType, BusNumber); - + /* Find the handler */ Handler = HalReferenceHandlerForBus(BusType, BusNumber); if (!Handler) return STATUS_NOT_FOUND; @@ -1161,7 +1163,7 @@ DeviceObject, SlotNumber, AllocatedResources); - + /* Dereference the handler and return */ HalDereferenceBusHandler(Handler); return Status; @@ -1183,24 +1185,24 @@ /* Make sure we have a context */ if (!Context) return FALSE; ASSERT((*Context) || (NextBus == TRUE)); - + /* Read the context */ ContextValue = *Context; - + /* Find the bus handler */ Handler = HalpContextToBusHandler(ContextValue); if (!Handler) return FALSE; - + /* Check if this is an ongoing lookup */ if (NextBus) { /* Get the HAL bus handler */ BusHandler = CONTAINING_RECORD(Handler, HAL_BUS_HANDLER, Handler); NextEntry = &BusHandler->AllHandlers; - + /* Get the next one if we were already with one */ if (ContextValue) NextEntry = NextEntry->Flink; - + /* Start scanning */ while (TRUE) { @@ -1211,7 +1213,7 @@ *Context = 1; return FALSE; } - + /* Call this translator */ BusHandler = CONTAINING_RECORD(NextEntry, HAL_BUS_HANDLER, AllHandlers); if (HalTranslateBusAddress(BusHandler->Handler.InterfaceType, @@ -1219,23 +1221,23 @@ BusAddress, AddressSpace, TranslatedAddress)) break; - + /* Try the next one */ NextEntry = NextEntry->Flink; } - + /* If we made it, we're done */ *Context = (ULONG_PTR)Handler; return TRUE; } - + /* Try the first one through */ if (!HalTranslateBusAddress(Handler->InterfaceType, Handler->BusNumber, BusAddress, AddressSpace, TranslatedAddress)) return FALSE; - + /* Remember for next time */ *Context = (ULONG_PTR)Handler; return TRUE; @@ -1251,7 +1253,7 @@ { PBUS_HANDLER Handler; BOOLEAN Status; - + /* Find the handler */ Handler = HalReferenceHandlerForBus(InterfaceType, BusNumber); if (!(Handler) || !(Handler->TranslateBusAddress)) @@ -1259,14 +1261,14 @@ DPRINT1("No translator Interface: %x, Bus: %x, Handler: %x!\n", InterfaceType, BusNumber, Handler); return FALSE; } - + /* Do the assignment */ Status = Handler->TranslateBusAddress(Handler, Handler, BusAddress, AddressSpace, TranslatedAddress); - + /* Dereference the handler and return */ HalDereferenceBusHandler(Handler); return Status; @@ -1284,17 +1286,17 @@ PBUS_HANDLER Handler; ULONG Status; PAGED_CODE(); - + /* Find the handler */ Handler = HalReferenceHandlerForBus((*ResourceList)->InterfaceType, (*ResourceList)->BusNumber); if (!Handler) return STATUS_SUCCESS; - + /* Do the assignment */ Status = Handler->AdjustResourceList(Handler, Handler, ResourceList); - + /* Dereference the handler and return */ HalDereferenceBusHandler(Handler); return Status; @@ -1315,7 +1317,7 @@ IN OUT PCM_RESOURCE_LIST *AllocatedResources) { PAGED_CODE(); - + /* Check the bus type */ if (BusType != PCIBus) { @@ -1377,11 +1379,11 @@ { PBUS_HANDLER Handler; ULONG Status; - + /* Find the handler */ Handler = HaliReferenceHandlerForConfigSpace(BusDataType, BusNumber); if (!Handler) return 0; - + /* Do the assignment */ Status = Handler->GetBusData(Handler, Handler, @@ -1389,7 +1391,7 @@ Buffer, Offset, Length); - + /* Dereference the handler and return */ HalDereferenceBusHandler(Handler); return Status; @@ -1410,15 +1412,15 @@ PBUS_HANDLER Handler; ULONG Vector; PAGED_CODE(); - + /* Defaults */ *Irql = 0; *Affinity = 0; - + /* Find the handler */ Handler = HalReferenceHandlerForBus(InterfaceType, BusNumber); if (!Handler) return 0; - + /* Do the assignment */ Vector = Handler->GetInterruptVector(Handler, Handler, @@ -1435,7 +1437,7 @@ VECTOR2IRQL(IRQ2VECTOR(BusInterruptLevel)), IRQ2VECTOR(BusInterruptLevel)); } - + /* Dereference the handler and return */ HalDereferenceBusHandler(Handler); return Vector; @@ -1475,11 +1477,11 @@ { PBUS_HANDLER Handler; ULONG Status; - + /* Find the handler */ Handler = HaliReferenceHandlerForConfigSpace(BusDataType, BusNumber); if (!Handler) return 0; - + /* Do the assignment */ Status = Handler->SetBusData(Handler, Handler, @@ -1487,7 +1489,7 @@ Buffer, Offset, Length); - + /* Dereference the handler and return */ HalDereferenceBusHandler(Handler); return Status;
12 years, 11 months
1
0
0
0
[tkreuzer] 55014: [HAL] - Implement IrqlToSoftVector() macro and use it in HalRequestSoftwareInterrupt, so that on amd64 the correct interrupt is triggered. - Really start at the lowest vector for ...
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Fri Jan 20 16:32:43 2012 New Revision: 55014 URL:
http://svn.reactos.org/svn/reactos?rev=55014&view=rev
Log: [HAL] - Implement IrqlToSoftVector() macro and use it in HalRequestSoftwareInterrupt, so that on amd64 the correct interrupt is triggered. - Really start at the lowest vector for the IRQL in HalpAllocateSystemInterrupt - Small code refactoring Modified: trunk/reactos/hal/halx86/apic/apic.c trunk/reactos/hal/halx86/apic/apic.h Modified: trunk/reactos/hal/halx86/apic/apic.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apic.c?rev…
============================================================================== --- trunk/reactos/hal/halx86/apic/apic.c [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/apic/apic.c [iso-8859-1] Fri Jan 20 16:32:43 2012 @@ -186,7 +186,7 @@ VOID FORCEINLINE -ApicRaiseIrql(KIRQL Irql) +ApicSetIrql(KIRQL Irql) { #ifdef _M_AMD64 __writecr8(Irql); @@ -197,14 +197,13 @@ ApicWrite(APIC_TPR, IrqlToTpr(Irql)); #endif } - +#define ApicRaiseIrql ApicSetIrql + +#ifdef APIC_LAZY_IRQL VOID FORCEINLINE ApicLowerIrql(KIRQL Irql) { -#ifdef _M_AMD64 - __writecr8(Irql); -#elif defined(APIC_LAZY_IRQL) __writefsbyte(FIELD_OFFSET(KPCR, Irql), Irql); /* Is the new Irql lower than set in the TPR? */ @@ -216,11 +215,10 @@ /* Need to lower it back */ ApicWrite(APIC_TPR, IrqlToTpr(Irql)); } +} #else - /* Convert IRQL and write the TPR */ - ApicWrite(APIC_TPR, IrqlToTpr(Irql)); -#endif -} +#define ApicLowerIrql ApicSetIrql +#endif UCHAR FASTCALL @@ -394,7 +392,7 @@ ApicWrite(APIC_ERRLVTR, LvtEntry.Long); /* Set the IRQL from the PCR */ - ApicWrite(APIC_TPR, IrqlToTpr(KeGetPcr()->Irql)); + ApicSetIrql(KeGetPcr()->Irql); #ifdef APIC_LAZY_IRQL /* Save the new hard IRQL in the IRR field */ KeGetPcr()->IRR = KeGetPcr()->Irql; @@ -410,8 +408,8 @@ IOAPIC_REDIRECTION_REGISTER ReDirReg; IN UCHAR Vector; - /* Start with low vector */ - Vector = IrqlToTpr(Irql); + /* Start with lowest vector */ + Vector = IrqlToTpr(Irql) & 0xF0; /* Find an empty vector */ while (HalpVectorToIndex[Vector] != 0xFF) @@ -653,7 +651,7 @@ HalRequestSoftwareInterrupt(IN KIRQL Irql) { /* Convert irql to vector and request an interrupt */ - ApicRequestInterrupt(IrqlToTpr(Irql), APIC_TGM_Edge); + ApicRequestInterrupt(IrqlToSoftVector(Irql), APIC_TGM_Edge); } VOID Modified: trunk/reactos/hal/halx86/apic/apic.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apic.h?rev…
============================================================================== --- trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] Fri Jan 20 16:32:43 2012 @@ -14,6 +14,7 @@ #define APIC_PROFILE_VECTOR 0xFD // IRQL 31 #define APIC_NMI_VECTOR 0xFF #define IrqlToTpr(Irql) (Irql << 4) +#define IrqlToSoftVector(Irql) ((Irql << 4)|0xf) #define TprToIrql(Tpr) ((KIRQL)(Tpr >> 4)) #define CLOCK2_LEVEL CLOCK_LEVEL #else @@ -31,6 +32,7 @@ #define APIC_PROFILE_VECTOR 0xFD // IRQL 31 #define APIC_NMI_VECTOR 0xFF #define IrqlToTpr(Irql) (HalpIRQLtoTPR[Irql]) +#define IrqlToSoftVector(Irql) IrqlToTpr(Irql) #define TprToIrql(Tpr) (HalVectorToIRQL[Tpr >> 4]) #endif
12 years, 11 months
1
0
0
0
[cgutman] 55013: [FASTFAT] - Check the return value of CcPinRead
by cgutman@svn.reactos.org
Author: cgutman Date: Fri Jan 20 00:32:47 2012 New Revision: 55013 URL:
http://svn.reactos.org/svn/reactos?rev=55013&view=rev
Log: [FASTFAT] - Check the return value of CcPinRead Modified: trunk/reactos/drivers/filesystems/fastfat/dirwr.c trunk/reactos/drivers/filesystems/fastfat/volume.c Modified: trunk/reactos/drivers/filesystems/fastfat/dirwr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfa…
============================================================================== --- trunk/reactos/drivers/filesystems/fastfat/dirwr.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/fastfat/dirwr.c [iso-8859-1] Fri Jan 20 00:32:47 2012 @@ -98,9 +98,11 @@ { CcUnpinData(Context); } - /* FIXME: check return value */ - CcPinRead(pDirFcb->FileObject, &FileOffset, DeviceExt->FatInfo.BytesPerCluster, - TRUE, &Context, (PVOID*)&pFatEntry); + if (!CcPinRead(pDirFcb->FileObject, &FileOffset, DeviceExt->FatInfo.BytesPerCluster, + TRUE, &Context, (PVOID*)&pFatEntry)) + { + return FALSE; + } FileOffset.u.LowPart += DeviceExt->FatInfo.BytesPerCluster; } if (ENTRY_END(DeviceExt, pFatEntry)) @@ -152,8 +154,11 @@ /* clear the new dir cluster */ FileOffset.u.LowPart = (ULONG)(pDirFcb->RFCB.FileSize.QuadPart - DeviceExt->FatInfo.BytesPerCluster); - CcPinRead(pDirFcb->FileObject, &FileOffset, DeviceExt->FatInfo.BytesPerCluster, - TRUE, &Context, (PVOID*)&pFatEntry); + if (!CcPinRead(pDirFcb->FileObject, &FileOffset, DeviceExt->FatInfo.BytesPerCluster, + TRUE, &Context, (PVOID*)&pFatEntry)) + { + return FALSE; + } if (DeviceExt->Flags & VCB_IS_FATX) memset(pFatEntry, 0xff, DeviceExt->FatInfo.BytesPerCluster); else @@ -163,8 +168,11 @@ { /* clear the entry after the last new entry */ FileOffset.u.LowPart = (*start + nbSlots) * SizeDirEntry; - CcPinRead(pDirFcb->FileObject, &FileOffset, SizeDirEntry, - TRUE, &Context, (PVOID*)&pFatEntry); + if (!CcPinRead(pDirFcb->FileObject, &FileOffset, SizeDirEntry, + TRUE, &Context, (PVOID*)&pFatEntry)) + { + return FALSE; + } if (DeviceExt->Flags & VCB_IS_FATX) memset(pFatEntry, 0xff, SizeDirEntry); else @@ -437,8 +445,12 @@ if (DirContext.StartIndex / i == DirContext.DirIndex / i) { /* one cluster */ - CcPinRead(ParentFcb->FileObject, &FileOffset, nbSlots * sizeof(FAT_DIR_ENTRY), - TRUE, &Context, (PVOID*)&pFatEntry); + if (!CcPinRead(ParentFcb->FileObject, &FileOffset, nbSlots * sizeof(FAT_DIR_ENTRY), + TRUE, &Context, (PVOID*)&pFatEntry)) + { + ExFreePoolWithTag(Buffer, TAG_VFAT); + return STATUS_UNSUCCESSFUL; + } if (nbSlots > 1) { RtlCopyMemory(pFatEntry, Buffer, (nbSlots - 1) * sizeof(FAT_DIR_ENTRY)); @@ -451,15 +463,23 @@ size = DeviceExt->FatInfo.BytesPerCluster - (DirContext.StartIndex * sizeof(FAT_DIR_ENTRY)) % DeviceExt->FatInfo.BytesPerCluster; i = size / sizeof(FAT_DIR_ENTRY); - CcPinRead(ParentFcb->FileObject, &FileOffset, size, TRUE, - &Context, (PVOID*)&pFatEntry); + if (!CcPinRead(ParentFcb->FileObject, &FileOffset, size, TRUE, + &Context, (PVOID*)&pFatEntry)) + { + ExFreePoolWithTag(Buffer, TAG_VFAT); + return STATUS_UNSUCCESSFUL; + } RtlCopyMemory(pFatEntry, Buffer, size); CcSetDirtyPinnedData(Context, NULL); CcUnpinData(Context); FileOffset.u.LowPart += size; - CcPinRead(ParentFcb->FileObject, &FileOffset, + if (!CcPinRead(ParentFcb->FileObject, &FileOffset, nbSlots * sizeof(FAT_DIR_ENTRY) - size, - TRUE, &Context, (PVOID*)&pFatEntry); + TRUE, &Context, (PVOID*)&pFatEntry)) + { + ExFreePoolWithTag(Buffer, TAG_VFAT); + return STATUS_UNSUCCESSFUL; + } if (nbSlots - 1 > i) { RtlCopyMemory(pFatEntry, (PVOID)(Buffer + size), (nbSlots - 1 - i) * sizeof(FAT_DIR_ENTRY)); @@ -482,8 +502,12 @@ if (RequestedOptions & FILE_DIRECTORY_FILE) { FileOffset.QuadPart = 0; - CcPinRead((*Fcb)->FileObject, &FileOffset, DeviceExt->FatInfo.BytesPerCluster, TRUE, - &Context, (PVOID*)&pFatEntry); + if (!CcPinRead((*Fcb)->FileObject, &FileOffset, DeviceExt->FatInfo.BytesPerCluster, TRUE, + &Context, (PVOID*)&pFatEntry)) + { + ExFreePoolWithTag(Buffer, TAG_VFAT); + return STATUS_UNSUCCESSFUL; + } /* clear the new directory cluster */ RtlZeroMemory(pFatEntry, DeviceExt->FatInfo.BytesPerCluster); /* create '.' and '..' */ @@ -581,8 +605,11 @@ /* add entry into parent directory */ FileOffset.u.HighPart = 0; FileOffset.u.LowPart = Index * sizeof(FATX_DIR_ENTRY); - CcPinRead(ParentFcb->FileObject, &FileOffset, sizeof(FATX_DIR_ENTRY), - TRUE, &Context, (PVOID*)&pFatXDirEntry); + if (!CcPinRead(ParentFcb->FileObject, &FileOffset, sizeof(FATX_DIR_ENTRY), + TRUE, &Context, (PVOID*)&pFatXDirEntry)) + { + return STATUS_UNSUCCESSFUL; + } RtlCopyMemory(pFatXDirEntry, &DirContext.DirEntry.FatX, sizeof(FATX_DIR_ENTRY)); CcSetDirtyPinnedData(Context, NULL); CcUnpinData(Context); @@ -638,8 +665,11 @@ CcUnpinData(Context); } Offset.u.LowPart = (i * sizeof(FAT_DIR_ENTRY) / PAGE_SIZE) * PAGE_SIZE; - CcPinRead(pFcb->parentFcb->FileObject, &Offset, sizeof(FAT_DIR_ENTRY), TRUE, - &Context, (PVOID*)&pDirEntry); + if (!CcPinRead(pFcb->parentFcb->FileObject, &Offset, sizeof(FAT_DIR_ENTRY), TRUE, + &Context, (PVOID*)&pDirEntry)) + { + return STATUS_UNSUCCESSFUL; + } } pDirEntry[i % (PAGE_SIZE / sizeof(FAT_DIR_ENTRY))].Filename[0] = 0xe5; if (i == pFcb->dirIndex) Modified: trunk/reactos/drivers/filesystems/fastfat/volume.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfa…
============================================================================== --- trunk/reactos/drivers/filesystems/fastfat/volume.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/fastfat/volume.c [iso-8859-1] Fri Jan 20 00:32:47 2012 @@ -281,12 +281,18 @@ { FileOffset.u.HighPart = 0; FileOffset.u.LowPart = VolumeLabelDirIndex * SizeDirEntry; - CcPinRead(pRootFcb->FileObject, &FileOffset, SizeDirEntry, - TRUE, &Context, (PVOID*)&Entry); - RtlCopyMemory(Entry, &VolumeLabelDirEntry, SizeDirEntry); - CcSetDirtyPinnedData(Context, NULL); - CcUnpinData(Context); - Status = STATUS_SUCCESS; + if (!CcPinRead(pRootFcb->FileObject, &FileOffset, SizeDirEntry, + TRUE, &Context, (PVOID*)&Entry)) + { + Status = STATUS_UNSUCCESSFUL; + } + else + { + RtlCopyMemory(Entry, &VolumeLabelDirEntry, SizeDirEntry); + CcSetDirtyPinnedData(Context, NULL); + CcUnpinData(Context); + Status = STATUS_SUCCESS; + } } }
12 years, 11 months
1
0
0
0
[khornicek] 55012: [WINED3DCFG] Add a simple control panel applet for WineD3D runtime configuration.
by khornicek@svn.reactos.org
Author: khornicek Date: Thu Jan 19 18:15:49 2012 New Revision: 55012 URL:
http://svn.reactos.org/svn/reactos?rev=55012&view=rev
Log: [WINED3DCFG] Add a simple control panel applet for WineD3D runtime configuration. Added: trunk/reactos/dll/cpl/wined3dcfg/ (with props) trunk/reactos/dll/cpl/wined3dcfg/CMakeLists.txt (with props) trunk/reactos/dll/cpl/wined3dcfg/general.c (with props) trunk/reactos/dll/cpl/wined3dcfg/lang/ (with props) trunk/reactos/dll/cpl/wined3dcfg/lang/en-US.rc (with props) trunk/reactos/dll/cpl/wined3dcfg/resource.h (with props) trunk/reactos/dll/cpl/wined3dcfg/resources/ (with props) trunk/reactos/dll/cpl/wined3dcfg/resources/wined3dcfg.ico (with props) trunk/reactos/dll/cpl/wined3dcfg/rsrc.rc (with props) trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.c (with props) trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.h (with props) trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rbuild (with props) trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rc (with props) trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.spec (with props) Modified: trunk/reactos/dll/cpl/ (props changed) trunk/reactos/dll/cpl/CMakeLists.txt trunk/reactos/dll/cpl/cpl.rbuild Propchange: trunk/reactos/dll/cpl/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Thu Jan 19 18:15:49 2012 @@ -1,7 +1,8 @@ -GNUmakefile -*.vcproj -*.user *.cbp *.ncb +*.sln *.suo -*.sln +*.user +*.vcproj +GNUmakefile +wined3dcfg Modified: trunk/reactos/dll/cpl/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/CMakeLists.txt?rev…
============================================================================== --- trunk/reactos/dll/cpl/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/cpl/CMakeLists.txt [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -18,3 +18,4 @@ add_subdirectory(telephon) add_subdirectory(timedate) add_subdirectory(usrmgr) +add_subdirectory(wined3dcfg) Modified: trunk/reactos/dll/cpl/cpl.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/cpl.rbuild?rev=550…
============================================================================== --- trunk/reactos/dll/cpl/cpl.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/cpl/cpl.rbuild [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -55,4 +55,7 @@ <directory name="usrmgr"> <xi:include href="usrmgr/usrmgr.rbuild" /> </directory> +<directory name="wined3dcfg"> + <xi:include href="wined3dcfg/wined3dcfg.rbuild" /> +</directory> </group> Propchange: trunk/reactos/dll/cpl/wined3dcfg/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Thu Jan 19 18:15:49 2012 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+) Propchange: trunk/reactos/dll/cpl/wined3dcfg/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details. Propchange: trunk/reactos/dll/cpl/wined3dcfg/ ------------------------------------------------------------------------------ bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/dll/cpl/wined3dcfg/ ------------------------------------------------------------------------------ tsvn:logminsize = 10 Added: trunk/reactos/dll/cpl/wined3dcfg/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/CMakeLi…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/CMakeLists.txt (added) +++ trunk/reactos/dll/cpl/wined3dcfg/CMakeLists.txt [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,22 @@ + +set_rc_compiler() + +spec2def(wined3dcfg.cpl wined3dcfg.spec) + +add_library(wined3dcfg SHARED + wined3dcfg.c + general.c + wined3dcfg.rc + ${CMAKE_CURRENT_BINARY_DIR}/wined3dcfg.def) + +set_module_type(wined3dcfg cpl UNICODE) + +add_importlibs(wined3dcfg + msvcrt + user32 + comctl32 + advapi32 + kernel32) + +add_pch(wined3dcfg wined3dcfg.h) +add_cd_file(TARGET wined3dcfg DESTINATION reactos/system32 FOR all) Propchange: trunk/reactos/dll/cpl/wined3dcfg/CMakeLists.txt ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/cpl/wined3dcfg/general.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/general…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/general.c (added) +++ trunk/reactos/dll/cpl/wined3dcfg/general.c [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,163 @@ +#include "wined3dcfg.h" + +static LONG ReadSetting(HKEY hKey, PWCHAR szKey, PWCHAR szBuffer, DWORD dwSize) +{ + return RegQueryValueExW(hKey, szKey, NULL, NULL, (LPBYTE)szBuffer, &dwSize); +} + +static VOID SaveSetting(HKEY hKey, PWCHAR szKey, PWCHAR szState) +{ + RegSetValueExW(hKey, szKey, 0, REG_SZ, (LPBYTE)szState, (wcslen(szState) + 1) * sizeof(WCHAR)); +} + +static VOID InitSettings(HWND hWndDlg) +{ + HKEY hKey; + WCHAR szBuffer[MAX_KEY_LENGTH]; + DWORD dwSize = MAX_KEY_LENGTH; + + if (RegOpenKeyExW(HKEY_CURRENT_USER, + KEY_WINE, + 0, + KEY_READ, + &hKey) != ERROR_SUCCESS) + { + return; + } + + if(ReadSetting(hKey, KEY_GLSL, szBuffer, dwSize) == ERROR_SUCCESS) + CheckDlgButton(hWndDlg, IDC_GLSL, (wcscmp(VALUE_DISABLED, szBuffer) != 0) ? BST_CHECKED : BST_UNCHECKED); + + if(ReadSetting(hKey, KEY_MULTISAMPLING, szBuffer, dwSize) == ERROR_SUCCESS) + CheckDlgButton(hWndDlg, IDC_MULTISAMPLING, (wcscmp(VALUE_ENABLED, szBuffer) == 0) ? BST_CHECKED : BST_UNCHECKED); + + if(ReadSetting(hKey, KEY_PIXELSHADERS, szBuffer, dwSize) == ERROR_SUCCESS) + CheckDlgButton(hWndDlg, IDC_PIXELSHADERS, (wcscmp(VALUE_ENABLED, szBuffer) == 0) ? BST_CHECKED : BST_UNCHECKED); + + if(ReadSetting(hKey, KEY_STRICTDRAWORDERING, szBuffer, dwSize) == ERROR_SUCCESS) + CheckDlgButton(hWndDlg, IDC_STRICTDRAWORDERING, (wcscmp(VALUE_ENABLED, szBuffer) == 0) ? BST_CHECKED : BST_UNCHECKED); + + if(ReadSetting(hKey, KEY_VERTEXSHADERS, szBuffer, dwSize) == ERROR_SUCCESS) + CheckDlgButton(hWndDlg, IDC_VERTEXSHADERS, (wcscmp(VALUE_NONE, szBuffer) != 0) ? BST_CHECKED : BST_UNCHECKED); + + SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_ADDSTRING, 0, (LPARAM)VALUE_FBO); + SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_ADDSTRING, 0, (LPARAM)VALUE_BACKBUFFER); + + SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETITEMDATA, ITEM_FBO, (LPARAM)ITEM_FBO); + SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETITEMDATA, ITEM_BACKBUFFER, (LPARAM)ITEM_BACKBUFFER); + + if(ReadSetting(hKey, KEY_OFFSCREEN, szBuffer, dwSize) == ERROR_SUCCESS && !wcscmp(VALUE_BACKBUFFER, szBuffer)) + SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETCURSEL, 1, 0); + else + SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_SETCURSEL, 0, 0); + + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_ADDSTRING, 0, (LPARAM)VALUE_READTEX); + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_ADDSTRING, 0, (LPARAM)VALUE_READDRAW); + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_ADDSTRING, 0, (LPARAM)VALUE_DISABLED); + + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETITEMDATA, (WPARAM)ITEM_READTEX, (LPARAM)ITEM_READTEX); + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETITEMDATA, (WPARAM)ITEM_READDRAW, (LPARAM)ITEM_READDRAW); + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETITEMDATA, (WPARAM)ITEM_DISABLED, (LPARAM)ITEM_DISABLED); + + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETCURSEL, 0, 0); + + if(ReadSetting(hKey, KEY_LOCKING, szBuffer, dwSize) == ERROR_SUCCESS) + { + if(!wcscmp(VALUE_READDRAW, szBuffer)) + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETCURSEL, 1, 0); + else if(!wcscmp(VALUE_DISABLED, szBuffer)) + SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_SETCURSEL, 2, 0); + } + + RegCloseKey(hKey); +} + +static VOID WriteSettings(HWND hWndDlg) +{ + HKEY hKey; + INT iCurSel; + + if (RegOpenKeyExW(HKEY_CURRENT_USER, + KEY_WINE, + 0, + KEY_WRITE, + &hKey) != ERROR_SUCCESS) + { + return; + } + + SaveSetting(hKey, KEY_GLSL, (IsDlgButtonChecked(hWndDlg, IDC_GLSL) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); + SaveSetting(hKey, KEY_MULTISAMPLING, (IsDlgButtonChecked(hWndDlg, IDC_MULTISAMPLING) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); + SaveSetting(hKey, KEY_PIXELSHADERS, (IsDlgButtonChecked(hWndDlg, IDC_PIXELSHADERS) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); + SaveSetting(hKey, KEY_STRICTDRAWORDERING, (IsDlgButtonChecked(hWndDlg, IDC_STRICTDRAWORDERING) == BST_CHECKED) ? VALUE_ENABLED : VALUE_DISABLED); + SaveSetting(hKey, KEY_VERTEXSHADERS, (IsDlgButtonChecked(hWndDlg, IDC_VERTEXSHADERS) == BST_CHECKED) ? VALUE_ENABLED : VALUE_NONE); + + iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_GETCURSEL, 0, 0); + + if(iCurSel != CB_ERR) + { + iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_LOCKING, CB_GETITEMDATA, (WPARAM)iCurSel, 0); + + if(iCurSel == ITEM_READDRAW) + SaveSetting(hKey, KEY_LOCKING, VALUE_READDRAW); + else if(iCurSel == ITEM_DISABLED) + SaveSetting(hKey, KEY_LOCKING, VALUE_DISABLED); + else + SaveSetting(hKey, KEY_LOCKING, VALUE_READTEX); + } + + iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_GETCURSEL, 0, 0); + + if(iCurSel != CB_ERR) + { + iCurSel = (INT)SendDlgItemMessageW(hWndDlg, IDC_OFFSCREEN, CB_GETITEMDATA, (WPARAM)iCurSel, 0); + + if(iCurSel == ITEM_BACKBUFFER) + SaveSetting(hKey, KEY_OFFSCREEN, VALUE_BACKBUFFER); + else + SaveSetting(hKey, KEY_OFFSCREEN, VALUE_FBO); + } + + RegCloseKey(hKey); +} + + +INT_PTR CALLBACK GeneralPageProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + LPPSHNOTIFY lppsn; + + switch (uMsg) + { + case WM_INITDIALOG: + InitSettings(hWndDlg); + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDC_GLSL: + case IDC_LOCKING: + case IDC_MULTISAMPLING: + case IDC_OFFSCREEN: + case IDC_PIXELSHADERS: + case IDC_STRICTDRAWORDERING: + case IDC_VERTEXSHADERS: + PropSheet_Changed(GetParent(hWndDlg), hWndDlg); + break; + default: + break; + } + break; + + case WM_NOTIFY: + lppsn = (LPPSHNOTIFY)lParam; + if (lppsn->hdr.code == PSN_APPLY) + { + WriteSettings(hWndDlg); + return TRUE; + } + break; + } + + return FALSE; +} Propchange: trunk/reactos/dll/cpl/wined3dcfg/general.c ------------------------------------------------------------------------------ svn:eol-style = native Propchange: trunk/reactos/dll/cpl/wined3dcfg/lang/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Thu Jan 19 18:15:49 2012 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+) Propchange: trunk/reactos/dll/cpl/wined3dcfg/lang/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details. Propchange: trunk/reactos/dll/cpl/wined3dcfg/lang/ ------------------------------------------------------------------------------ bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/dll/cpl/wined3dcfg/lang/ ------------------------------------------------------------------------------ tsvn:logminsize = 10 Added: trunk/reactos/dll/cpl/wined3dcfg/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/lang/en…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/lang/en-US.rc (added) +++ trunk/reactos/dll/cpl/wined3dcfg/lang/en-US.rc [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,27 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +IDD_PROPPAGEGENERAL DIALOGEX 0, 0, 246, 228 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "General" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_CPLICON, IDI_CPLICON, 8, 5, 21, 20 + GROUPBOX "Shaders", -1, 5, 35, 230, 65 + AUTOCHECKBOX "Enable &GLSL", IDC_GLSL, 15, 50, 150, 10 + AUTOCHECKBOX "Enable &pixel shaders", IDC_PIXELSHADERS, 15, 65, 150, 10 + AUTOCHECKBOX "Enable &Vertex shaders", IDC_VERTEXSHADERS, 15, 80, 150, 10 + GROUPBOX "Rendering", -1, 5, 110, 230, 85 + AUTOCHECKBOX "Force &multisampling", IDC_MULTISAMPLING, 15, 125, 150, 10 + AUTOCHECKBOX "Force &strict draw ordering", IDC_STRICTDRAWORDERING, 15, 140, 150, 10 + LTEXT "Offscreen rendering:", -1, 15, 157, 80, 10 + COMBOBOX IDC_OFFSCREEN, 95, 155, 90, 50, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST + LTEXT "Render target locking:", -1, 15, 175, 72, 10, SS_LEFT + COMBOBOX IDC_LOCKING, 95, 173, 90, 50, WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWNLIST +END + + +STRINGTABLE +BEGIN + IDS_CPLNAME "WineD3D" + IDS_CPLDESCRIPTION "Configures WineD3D runtime settings." +END Propchange: trunk/reactos/dll/cpl/wined3dcfg/lang/en-US.rc ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/cpl/wined3dcfg/resource.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/resourc…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/resource.h (added) +++ trunk/reactos/dll/cpl/wined3dcfg/resource.h [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,23 @@ +#pragma once + +/* Icons */ +#define IDI_CPLICON 1 + +/* Dialogs */ +#define IDD_PROPPAGEGENERAL 100 + +/* Controls */ +#define IDC_PIXELSHADERS 1001 +#define IDC_GLSL 1002 +#define IDC_VERTEXSHADERS 1003 +#define IDC_MULTISAMPLING 1004 +#define IDC_STRICTDRAWORDERING 1005 +#define IDC_OFFSCREEN 1006 +#define IDC_LOCKING 1007 + + +/* Strings */ +#define IDS_CPLNAME 10000 +#define IDS_CPLDESCRIPTION 10001 + +/* EOF */ Propchange: trunk/reactos/dll/cpl/wined3dcfg/resource.h ------------------------------------------------------------------------------ svn:eol-style = native Propchange: trunk/reactos/dll/cpl/wined3dcfg/resources/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Thu Jan 19 18:15:49 2012 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+) Propchange: trunk/reactos/dll/cpl/wined3dcfg/resources/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details. Propchange: trunk/reactos/dll/cpl/wined3dcfg/resources/ ------------------------------------------------------------------------------ bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/dll/cpl/wined3dcfg/resources/ ------------------------------------------------------------------------------ tsvn:logminsize = 10 Added: trunk/reactos/dll/cpl/wined3dcfg/resources/wined3dcfg.ico URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/resourc…
============================================================================== Binary file - no diff available. Propchange: trunk/reactos/dll/cpl/wined3dcfg/resources/wined3dcfg.ico ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: trunk/reactos/dll/cpl/wined3dcfg/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/rsrc.rc…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/rsrc.rc (added) +++ trunk/reactos/dll/cpl/wined3dcfg/rsrc.rc [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,6 @@ +#include <windows.h> +#include "resource.h" + +// UTF-8 +#pragma code_page(65001) +#include "lang/en-US.rc" Propchange: trunk/reactos/dll/cpl/wined3dcfg/rsrc.rc ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/wined3d…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.c (added) +++ trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.c [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,77 @@ +#include "wined3dcfg.h" + +HINSTANCE hApplet = 0; + +LONG CALLBACK AppletInit(HWND hWnd) +{ + PROPSHEETPAGEW psp; + PROPSHEETHEADERW psh; + WCHAR szCaption[1024]; + + LoadStringW(hApplet, IDS_CPLNAME, szCaption, sizeof(szCaption) / sizeof(WCHAR)); + + ZeroMemory(&psp, sizeof(PROPSHEETPAGE)); + psp.dwSize = sizeof(PROPSHEETPAGE); + psp.dwFlags = PSP_DEFAULT; + psp.hInstance = hApplet; + psp.pszTemplate = MAKEINTRESOURCE(IDD_PROPPAGEGENERAL); + psp.pfnDlgProc = GeneralPageProc; + + ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); + psh.dwSize = sizeof(PROPSHEETHEADER); + psh.dwFlags = PSH_PROPSHEETPAGE; + psh.hwndParent = hWnd; + psh.hInstance = hApplet; + psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLICON)); + psh.pszCaption = szCaption; + psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); + psh.nStartPage = 0; + psh.ppsp = &psp; + + return (LONG)(PropertySheet(&psh) != -1); +} + +LONG CALLBACK CPlApplet(HWND hWnd, UINT uMsg, LPARAM lParam1, LPARAM lParam2) +{ + switch (uMsg) + { + case CPL_INIT: + return TRUE; + + case CPL_GETCOUNT: + return 1; + + case CPL_INQUIRE: + { + CPLINFO *CPlInfo = (CPLINFO*)lParam2; + CPlInfo->lData = 0; + CPlInfo->idIcon = IDI_CPLICON; + CPlInfo->idInfo = IDS_CPLDESCRIPTION; + CPlInfo->idName = IDS_CPLNAME; + } + break; + + case CPL_DBLCLK: + AppletInit(hWnd); + break; + } + + return FALSE; +} + + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved) +{ + UNREFERENCED_PARAMETER(lpvReserved); + + switch (dwReason) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + hApplet = hinstDLL; + break; + } + + return TRUE; +} + Propchange: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/wined3d…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.h (added) +++ trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.h [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,37 @@ +#include <windows.h> +#include <commctrl.h> +#include <cpl.h> +#include <stdio.h> +#include <initguid.h> +#include <debug.h> + +#include "resource.h" + +#define MAX_KEY_LENGTH 256 + +#define ITEM_FBO 0 +#define ITEM_BACKBUFFER 1 + +#define ITEM_READTEX 0 +#define ITEM_READDRAW 1 +#define ITEM_DISABLED 2 + +#define VALUE_READTEX L"readtex" +#define VALUE_READDRAW L"readdraw" +#define VALUE_ENABLED L"enabled" +#define VALUE_DISABLED L"disabled" +#define VALUE_NONE L"none" +#define VALUE_BACKBUFFER L"backbuffer" +#define VALUE_FBO L"fbo" + +#define KEY_WINE L"Software\\Wine\\Direct3D" + +#define KEY_GLSL L"UseGLSL" +#define KEY_VERTEXSHADERS L"VertexShaderMode" +#define KEY_PIXELSHADERS L"PixelShaderMode" +#define KEY_STRICTDRAWORDERING L"StrictDrawOrdering" +#define KEY_OFFSCREEN L"OffscreenRenderingMode" +#define KEY_MULTISAMPLING L"Multisampling" +#define KEY_LOCKING L"RenderTargetLockMode" + +INT_PTR CALLBACK GeneralPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); Propchange: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.h ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/wined3d…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rbuild (added) +++ trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rbuild [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,14 @@ +<?xml version="1.0"?> +<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> +<module name="wined3dcfg" type="win32dll" extension=".cpl" installbase="system32" installname="wined3dcfg.cpl" crt="msvcrt" unicode="yes"> + <importlibrary definition="wined3dcfg.spec" /> + <include base="wined3dcfg">.</include> + <library>user32</library> + <library>comctl32</library> + <library>advapi32</library> + <library>kernel32</library> + <file>wined3dcfg.c</file> + <file>general.c</file> + <file>wined3dcfg.rc</file> + <pch>wined3dcfg.h</pch> +</module> Propchange: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rbuild ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/wined3d…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rc (added) +++ trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rc [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,15 @@ +#include <windows.h> +#include "resource.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS WineD3D Configuration Control Panel\0" +#define REACTOS_STR_INTERNAL_NAME "WineD3Dcfg\0" +#define REACTOS_STR_ORIGINAL_FILENAME "WineD3Dcfg.cpl\0" +#include <reactos/version.rc> + +/* Icons */ +IDI_CPLICON ICON "resources/wined3dcfg.ico" + +#include "rsrc.rc" Propchange: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.rc ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/wined3dcfg/wined3d…
============================================================================== --- trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.spec (added) +++ trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.spec [iso-8859-1] Thu Jan 19 18:15:49 2012 @@ -1,0 +1,2 @@ +@ stdcall CPlApplet(ptr long ptr ptr) + Propchange: trunk/reactos/dll/cpl/wined3dcfg/wined3dcfg.spec ------------------------------------------------------------------------------ svn:eol-style = native
12 years, 11 months
1
0
0
0
[akhaldi] 55011: * Branch for the 0.3.14 release.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Thu Jan 19 15:13:24 2012 New Revision: 55011 URL:
http://svn.reactos.org/svn/reactos?rev=55011&view=rev
Log: * Branch for the 0.3.14 release. Added: branches/ros-branch-0_3_14/ (props changed) - copied from r55010, trunk/reactos/ Propchange: branches/ros-branch-0_3_14/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Thu Jan 19 15:13:24 2012 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+) Propchange: branches/ros-branch-0_3_14/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details. Propchange: branches/ros-branch-0_3_14/ ------------------------------------------------------------------------------ bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: branches/ros-branch-0_3_14/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Thu Jan 19 15:13:24 2012 @@ -1,0 +1,14 @@ +*.iso +makefile.auto +makefile-*.auto +config-*.rbuild +obj-* +output-* +reactos +reactos.* +RosBE-Logs +*.sln +*.ncb +*.suo +versionreport.xml +config.rbuild Propchange: branches/ros-branch-0_3_14/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Thu Jan 19 15:13:24 2012 @@ -1,0 +1,13 @@ +/branches/GSoC_2011/GSoC_Network:51548 +/branches/GSoC_2011/GSoC_TcpIpDriver:51550 +/branches/GSoC_2011/TcpIpDriver:51551-53074,53076-53119 +/branches/GSoC_Network:51545-51546 +/branches/cmake-bringup:50484,50693,50719,51544-52564 +/branches/header-work:45691-47721 +/branches/reactos-yarotows:45219-46371,46373-48025,48027-49273 +/branches/reactx/reactos:49994-49995 +/branches/ros-amd64-bringup:36852 +/branches/ros-amd64-bringup/reactos:34711-34712,34741,34743,34770,34780-34782,34803,34812,34839,34842,34864,34870,34874,34877,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35655,35683,35739,35746,35762,35771,35777,35781,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36011-36013,36172,36360,36380,36388-36389,36393,36397,36443,36445,36475,36502-36503,36505,36570,36614,36852,36898-36899,36930,36936,36949,36951,36958,36961,36964,36969,36972,36987-36988,36990,36992,37019,37322-37323,37333-37334,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38092,38100,38148-38151,38264-38265,38268,38355,39151,39333,39335,39345,39639,40120,40122-40123,40125,40127-40128,40155,40247,40324,40608,40753,40926-40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41070,41082-41086,41097-41098,41101,41449,41479-41480,41483-41485,41499-41500,41502,41531,41536,41540,41546-41547,41549,43080,43426,43451,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43836,43838-43840,43852,43857-43858,43860,43905-43907,43952,43954,43965,43969,43979,43981,43992,44002,44036-44037,44039-44040,44044-44045,44053,44065,44095,44123,44143-44144,44205,44238,44257,44259,44294,44338-44339,44385,44389,44391,44426,44460,44467-44468,44470-44471,44499,44501,44503-44504,44506,44510-44512,44521,44523-44526,44530,44540,44601,44634,44639,44772,44818,45124,45126-45127,45430,46394,46404,46478,46511,46523-46524,46526,46534-46535,46537-46539,46589,46805,46868,47472,47846-47847,47878,47882 +/branches/shell32_new-bringup:51893-53652,53661,53700 +/branches/tcp-rewrite-branch:48720,48840-48841,49424-49426,49454 +/branches/wlan-bringup:54809-54998 Propchange: branches/ros-branch-0_3_14/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
12 years, 11 months
1
0
0
0
[khornicek] 55010: [MSTSC] - Add full screen support. - Fix starting from command line.
by khornicek@svn.reactos.org
Author: khornicek Date: Thu Jan 19 14:10:02 2012 New Revision: 55010 URL:
http://svn.reactos.org/svn/reactos?rev=55010&view=rev
Log: [MSTSC] - Add full screen support. - Fix starting from command line. Modified: trunk/reactos/base/applications/mstsc/connectdialog.c trunk/reactos/base/applications/mstsc/precomp.h trunk/reactos/base/applications/mstsc/settings.c trunk/reactos/base/applications/mstsc/win32.c Modified: trunk/reactos/base/applications/mstsc/connectdialog.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/co…
============================================================================== --- trunk/reactos/base/applications/mstsc/connectdialog.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/connectdialog.c [iso-8859-1] Thu Jan 19 14:10:02 2012 @@ -26,10 +26,6 @@ static VOID ReLoadGeneralPage(PINFO pInfo); static VOID ReLoadDisplayPage(PINFO pInfo); - -#ifndef IDC_NAMEEDIT - #define IDC_NAMEEDIT 1015 -#endif static VOID DoOpenFile(PINFO pInfo) @@ -539,7 +535,7 @@ newEntry->Resolutions = HeapAlloc(GetProcessHeap(), 0, - ResolutionsCount * sizeof(RESOLUTION_INFO)); + ResolutionsCount * (sizeof(RESOLUTION_INFO) + 1)); if (!newEntry->Resolutions) goto ByeBye; newEntry->ResolutionsCount = ResolutionsCount; @@ -557,6 +553,11 @@ i++; } } + + /* fullscreen */ + newEntry->Resolutions[i].dmPelsWidth = GetSystemMetrics(SM_CXSCREEN); + newEntry->Resolutions[i].dmPelsHeight = GetSystemMetrics(SM_CYSCREEN); + descriptionSize = (wcslen(DisplayDevice->DeviceString) + 1) * sizeof(WCHAR); description = HeapAlloc(GetProcessHeap(), 0, descriptionSize); if (!description) goto ByeBye; @@ -761,8 +762,11 @@ { DWORD index; INT width, height, pos = 0; - INT bpp, num, i; + INT bpp, num, i, screenmode; BOOL bSet = FALSE; + + /* get fullscreen info */ + screenmode = GetIntegerFromSettings(pInfo->pRdpSettings, L"screen mode id"); /* set trackbar position */ width = GetIntegerFromSettings(pInfo->pRdpSettings, L"desktopwidth"); @@ -770,13 +774,24 @@ if (width != -1 && height != -1) { - for (index = 0; index < pInfo->CurrentDisplayDevice->ResolutionsCount; index++) - { - if (pInfo->CurrentDisplayDevice->Resolutions[index].dmPelsWidth == width && - pInfo->CurrentDisplayDevice->Resolutions[index].dmPelsHeight == height) - { - pos = index; - break; + if(screenmode == 2) + { + pos = SendDlgItemMessageW(pInfo->hDisplayPage, + IDC_GEOSLIDER, + TBM_GETRANGEMAX, + 0, + 0); + } + else + { + for (index = 0; index < pInfo->CurrentDisplayDevice->ResolutionsCount; index++) + { + if (pInfo->CurrentDisplayDevice->Resolutions[index].dmPelsWidth == width && + pInfo->CurrentDisplayDevice->Resolutions[index].dmPelsHeight == height) + { + pos = index; + break; + } } } } Modified: trunk/reactos/base/applications/mstsc/precomp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/pr…
============================================================================== --- trunk/reactos/base/applications/mstsc/precomp.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/precomp.h [iso-8859-1] Thu Jan 19 14:10:02 2012 @@ -17,7 +17,7 @@ #define MAXKEY 256 #define MAXVALUE 256 -#define NUM_SETTINGS 5 +#define NUM_SETTINGS 6 extern LPWSTR lpSettings[]; typedef struct _SETTINGS Modified: trunk/reactos/base/applications/mstsc/settings.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/se…
============================================================================== --- trunk/reactos/base/applications/mstsc/settings.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/settings.c [iso-8859-1] Thu Jan 19 14:10:02 2012 @@ -9,6 +9,7 @@ L"session bpp", L"full address", L"username", + L"screen mode id", }; VOID @@ -28,7 +29,7 @@ szValue); } - /* resolution */ + /* resolution and fullscreen*/ ret = SendDlgItemMessage(pInfo->hDisplayPage, IDC_GEOSLIDER, TBM_GETPOS, @@ -36,6 +37,9 @@ 0); if (ret != -1) { + SetIntegerToSettings(pInfo->pRdpSettings, + L"screen mode id", + (ret == SendDlgItemMessageW(pInfo->hDisplayPage, IDC_GEOSLIDER, TBM_GETRANGEMAX, 0, 0)) ? 2 : 1); SetIntegerToSettings(pInfo->pRdpSettings, L"desktopwidth", pInfo->DisplayDeviceList->Resolutions[ret].dmPelsWidth); Modified: trunk/reactos/base/applications/mstsc/win32.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/wi…
============================================================================== --- trunk/reactos/base/applications/mstsc/win32.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/win32.c [iso-8859-1] Thu Jan 19 14:10:02 2012 @@ -1027,8 +1027,10 @@ } else { - /* default to 16bpp */ + /* default to screen size, 16bpp */ SetIntegerToSettings(pRdpSettings, L"session bpp", 16); + SetIntegerToSettings(pRdpSettings, L"desktopwidth", GetSystemMetrics(SM_CXSCREEN)); + SetIntegerToSettings(pRdpSettings, L"desktopheight", GetSystemMetrics(SM_CYSCREEN)); lpToken = wcstok(lpStr, szSeps); while (lpToken) @@ -1056,6 +1058,10 @@ lpToken += 2; SetIntegerToSettings(pRdpSettings, L"desktopheight", _wtoi(lpToken)); } + else if (*lpToken == L'f') + { + SetIntegerToSettings(pRdpSettings, L"screen mode id", 2); + } lpToken = wcstok(NULL, szSeps); } @@ -1109,12 +1115,21 @@ strcpy(g_password, ""); g_server_depth = GetIntegerFromSettings(pRdpSettings, L"session bpp"); if (g_server_depth > 16) g_server_depth = 16; /* hack, we don't support 24bpp yet */ + g_screen_width = GetSystemMetrics(SM_CXSCREEN); + g_screen_height = GetSystemMetrics(SM_CYSCREEN); g_width = GetIntegerFromSettings(pRdpSettings, L"desktopwidth"); g_height = GetIntegerFromSettings(pRdpSettings, L"desktopheight"); - g_screen_width = GetSystemMetrics(SM_CXSCREEN); - g_screen_height = GetSystemMetrics(SM_CYSCREEN); - g_xoff = GetSystemMetrics(SM_CXEDGE) * 2; - g_yoff = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYEDGE) * 2; + if (GetIntegerFromSettings(pRdpSettings, L"screen mode id") == 2) + { + g_fullscreen = 1; + g_xoff = 0; + g_yoff = 0; + } + else + { + g_xoff = GetSystemMetrics(SM_CXEDGE) * 2; + g_yoff = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYEDGE) * 2; + } ui_main(); ret = 0;
12 years, 11 months
1
0
0
0
[khornicek] 55009: what's wrong with the cmake build bot I don't know. someone please fix it
by khornicek@svn.reactos.org
Author: khornicek Date: Thu Jan 19 02:50:20 2012 New Revision: 55009 URL:
http://svn.reactos.org/svn/reactos?rev=55009&view=rev
Log: what's wrong with the cmake build bot I don't know. someone please fix it Modified: trunk/reactos/base/applications/mstsc/connectdialog.c Modified: trunk/reactos/base/applications/mstsc/connectdialog.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/co…
============================================================================== --- trunk/reactos/base/applications/mstsc/connectdialog.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/connectdialog.c [iso-8859-1] Thu Jan 19 02:50:20 2012 @@ -27,6 +27,9 @@ static VOID ReLoadGeneralPage(PINFO pInfo); static VOID ReLoadDisplayPage(PINFO pInfo); +#ifndef IDC_NAMEEDIT + #define IDC_NAMEEDIT 1015 +#endif static VOID DoOpenFile(PINFO pInfo)
12 years, 11 months
1
0
0
0
[khornicek] 55008: [MSTSC] - Add support for user name settings. - Obtain user name / domain hints from registry. - Pass user/domain info to the server if available. - Add Czech translation.
by khornicek@svn.reactos.org
Author: khornicek Date: Thu Jan 19 02:27:20 2012 New Revision: 55008 URL:
http://svn.reactos.org/svn/reactos?rev=55008&view=rev
Log: [MSTSC] - Add support for user name settings. - Obtain user name / domain hints from registry. - Pass user/domain info to the server if available. - Add Czech translation. Added: trunk/reactos/base/applications/mstsc/lang/cs-CZ.rc (with props) Modified: trunk/reactos/base/applications/mstsc/connectdialog.c trunk/reactos/base/applications/mstsc/lang/bg-BG.rc trunk/reactos/base/applications/mstsc/lang/ca-ES.rc trunk/reactos/base/applications/mstsc/lang/de-DE.rc trunk/reactos/base/applications/mstsc/lang/el-GR.rc trunk/reactos/base/applications/mstsc/lang/en-US.rc trunk/reactos/base/applications/mstsc/lang/es-ES.rc trunk/reactos/base/applications/mstsc/lang/fr-FR.rc trunk/reactos/base/applications/mstsc/lang/it-IT.rc trunk/reactos/base/applications/mstsc/lang/ja-JP.rc trunk/reactos/base/applications/mstsc/lang/ko-KR.rc trunk/reactos/base/applications/mstsc/lang/lt-LT.rc trunk/reactos/base/applications/mstsc/lang/no-NO.rc trunk/reactos/base/applications/mstsc/lang/pl-PL.rc trunk/reactos/base/applications/mstsc/lang/ro-RO.rc trunk/reactos/base/applications/mstsc/lang/ru-RU.rc trunk/reactos/base/applications/mstsc/lang/sk-SK.rc trunk/reactos/base/applications/mstsc/lang/sv-SE.rc trunk/reactos/base/applications/mstsc/lang/uk-UA.rc trunk/reactos/base/applications/mstsc/lang/zh-CN.rc trunk/reactos/base/applications/mstsc/lang/zh-TW.rc trunk/reactos/base/applications/mstsc/precomp.h trunk/reactos/base/applications/mstsc/resource.h trunk/reactos/base/applications/mstsc/rsrc.rc trunk/reactos/base/applications/mstsc/settings.c trunk/reactos/base/applications/mstsc/win32.c Modified: trunk/reactos/base/applications/mstsc/connectdialog.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/co…
============================================================================== --- trunk/reactos/base/applications/mstsc/connectdialog.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/connectdialog.c [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -99,6 +99,61 @@ static VOID +LoadUsernameHint(HWND hDlg, INT iCur) +{ + WCHAR szValue[MAXVALUE+1000]; + WCHAR szName[MAX_KEY_NAME]; + WCHAR szKeyName[] = L"Software\\Microsoft\\Terminal Server Client\\Servers"; + PWCHAR lpAddress; + HKEY hKey; + HKEY hSubKey; + LONG lRet = ERROR_SUCCESS; + INT iIndex = 0; + DWORD dwSize = MAX_KEY_NAME; + + SendDlgItemMessageW(hDlg, IDC_SERVERCOMBO, CB_GETLBTEXT, (WPARAM)iCur, (LPARAM)szValue); + + /* remove possible port number */ + lpAddress = wcstok(szValue, L":"); + + if (lpAddress == NULL) + return; + + if (RegOpenKeyExW(HKEY_CURRENT_USER, + szKeyName, + 0, + KEY_READ, + &hKey) == ERROR_SUCCESS) + { + while (lRet == ERROR_SUCCESS) + { + dwSize = MAX_KEY_NAME; + + lRet = RegEnumKeyExW(hKey, iIndex, szName, &dwSize, NULL, NULL, NULL, NULL); + + if(lRet == ERROR_SUCCESS && wcscmp(szName, lpAddress) == 0) + { + if(RegOpenKeyExW(hKey, szName, 0, KEY_READ, &hSubKey) != ERROR_SUCCESS) + break; + + dwSize = MAXVALUE; + + if(RegQueryValueExW(hKey, L"UsernameHint", 0, NULL, (LPBYTE)szValue, &dwSize) == ERROR_SUCCESS) + { + SetDlgItemTextW(hDlg, IDC_NAMEEDIT, szValue); + } + + RegCloseKey(hSubKey); + break; + } + iIndex++; + } + RegCloseKey(hKey); + } +} + + +static VOID FillServerAddesssCombo(PINFO pInfo) { HKEY hKey; @@ -107,6 +162,7 @@ LONG ret = ERROR_SUCCESS; DWORD size; INT i = 0; + BOOL found = FALSE; if (RegOpenKeyExW(HKEY_CURRENT_USER, KeyName, @@ -152,6 +208,7 @@ CB_ADDSTRING, 0, (LPARAM)lpAddress); + found = TRUE; } HeapFree(GetProcessHeap(), @@ -177,6 +234,17 @@ 0, (LPARAM)Name); } + + if(found) + { + SendDlgItemMessageW(pInfo->hGeneralPage, + IDC_SERVERCOMBO, + CB_SETCURSEL, + 0, + 0); + LoadUsernameHint(pInfo->hGeneralPage, 0); + } + } @@ -192,6 +260,16 @@ { SetDlgItemTextW(pInfo->hGeneralPage, IDC_SERVERCOMBO, + lpText); + } + + /* set user name */ + lpText = GetStringFromSettings(pInfo->pRdpSettings, + L"username"); + if (lpText) + { + SetDlgItemTextW(pInfo->hGeneralPage, + IDC_NAMEEDIT, lpText); } } @@ -279,15 +357,18 @@ CB_GETCURSEL, 0, 0); - cur++; last = SendDlgItemMessageW(hDlg, IDC_SERVERCOMBO, CB_GETCOUNT, 0, 0); - if (cur == last) + if ((cur + 1) == last) MessageBoxW(hDlg, L"SMB is not yet supported", L"RDP error", MB_ICONERROR); + else + { + LoadUsernameHint(hDlg, cur); + } } break; Modified: trunk/reactos/base/applications/mstsc/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/bg-BG.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "СÑÑвÑÑ:",IDC_STATIC,37,41,30,8 LTEXT "ÐоÑÑебиÑел:",IDC_STATIC,37,58,48,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "ÐапиÑ",IDC_SAVE,67,139,50,14 PUSHBUTTON "ÐÐ°Ð¿Ð¸Ñ ÐºÐ°Ñо...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "ÐÑваÑÑне...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/ca-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/ca-ES.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/ca-ES.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "Servidor:",IDC_STATIC,47,41,25,8 LTEXT "Nom d'usuari:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Desa",IDC_SAVE,67,139,50,14 PUSHBUTTON "Desa com...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Obre...",IDC_OPEN,177,139,50,14 Added: trunk/reactos/base/applications/mstsc/lang/cs-CZ.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/cs-CZ.rc (added) +++ trunk/reactos/base/applications/mstsc/lang/cs-CZ.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -1,0 +1,64 @@ +LANGUAGE LANG_CZECH, SUBLANG_DEFAULT + +IDD_GENERAL DIALOGEX 0, 0, 242, 175 +STYLE DS_SHELLFONT | WS_CHILD +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "PÅihlaÅ¡ovacà údaje",IDC_STATIC,7,7,228,89 + GROUPBOX "Nastavenà spojenÃ",IDC_STATIC,7,103,228,65 + ICON "", IDC_LOGONICON, 15,19,20,20 + LTEXT "Zadejte adresu serveru",IDC_STATIC,47,24,81,8 + LTEXT "Server:",IDC_STATIC,47,41,25,8 + LTEXT "Uživatelské jméno:",IDC_STATIC,47,58,60,8 + COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL + PUSHBUTTON "Uložit",IDC_SAVE,67,139,50,14 + PUSHBUTTON "Uložit jako...",IDC_SAVEAS,123,139,50,14 + PUSHBUTTON "OtevÅÃt...",IDC_OPEN,177,139,50,14 + ICON "", IDC_CONNICON, 16,114,20,20 + LTEXT "Uložit souÄasné nastavenà nebo naÄÃst nastavenà ze souboru",IDC_STATIC,50,115,172,20 +END + +IDD_DISPLAY DIALOGEX 0, 0, 242, 175 +STYLE DS_SHELLFONT | WS_CHILD +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Velikost vzdálené plochy",IDC_STATIC,7,7,228,68 + GROUPBOX "Barvy",IDC_STATIC,7,83,228,85 + ICON "", IDC_REMICON, 15,19,20,20 + ICON "", IDC_COLORSICON, 15,98,20,20 + LTEXT "NastavenÃm posuvnÃku do krajnà pravé polohy zvolÃte režim celé obrazovky",IDC_STATIC,53,22,175,21 + CONTROL "", IDC_GEOSLIDER, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 56, 42, 124, 17 + COMBOBOX IDC_BPPCOMBO,56,102,128,80, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + CONTROL "",IDC_COLORIMAGE,"Static",SS_OWNERDRAW | SS_SUNKEN, 56,121,127,10 + LTEXT "Poznámka: Toto nastavenà může být zmÄnÄno nastavenÃm na serveru",IDC_STATIC,56,143,165,18 + LTEXT "MénÄ",IDC_STATIC,35,42,16,8 + LTEXT "VÃce",IDC_STATIC,189,42,17,8 + LTEXT "", IDC_SETTINGS_RESOLUTION_TEXT, 56, 62, 120, 10, SS_CENTER +END + +IDD_CONNECTDIALOG DIALOGEX 0, 0, 260, 262 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "PÅipojenà ke vzdálené ploÅ¡e" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "PÅipojit",IDOK,147,245,50,14 + PUSHBUTTON "Storno",IDCANCEL,203,245,50,14 + CONTROL "",IDC_TAB,"SysTabControl32",0x0,7,50,246,190 +END + + +STRINGTABLE +BEGIN + IDS_TAB_GENERAL "Obecné" + IDS_TAB_DISPLAY "ZobrazenÃ" + IDS_256COLORS "256 Barev" + IDS_HIGHCOLOR15 "32,768 Barev (15 bit)" + IDS_HIGHCOLOR16 "65,536 Barev (16 bit)" + IDS_HIGHCOLOR24 "16,777,216 Barev (24 bit)" + IDS_PIXEL "%lux%lu Pixelů" + IDS_FULLSCREEN "Celá obrazovka" + IDS_BROWSESERVER "<NajÃt dalÅ¡Ã...>" + IDS_HEADERTEXT1 "Vzdálená plocha" + IDS_HEADERTEXT2 "PÅipojenÃ" +END Propchange: trunk/reactos/base/applications/mstsc/lang/cs-CZ.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/base/applications/mstsc/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/de-DE.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "Server:",IDC_STATIC,47,41,25,8 LTEXT "Benutzername:",IDC_STATIC,47,58,50,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Speichern",IDC_SAVE,67,139,50,14 PUSHBUTTON "Speichern unter",IDC_SAVEAS,120,139,55,14 PUSHBUTTON "Ãffnen...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/el-GR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/el-GR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/el-GR.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "ÎιακομιÏÏήÏ:",IDC_STATIC,47,41,30,8 LTEXT "Îνομα ÏÏήÏÏη:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,89,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "ÎÏÎ¿Î¸Î®ÎºÎµÏ Ïη",IDC_SAVE,67,139,50,14 PUSHBUTTON "ÎÏÎ¿Î¸Î®ÎºÎµÏ Ïη ΩÏ...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Îνοιγμα...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/en-US.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "Server:",IDC_STATIC,47,41,25,8 LTEXT "User name:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Save",IDC_SAVE,67,139,50,14 PUSHBUTTON "Save As...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Open...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/es-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/es-ES.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -16,6 +16,7 @@ LTEXT "Servidor:",IDC_STATIC,47,41,28,8 LTEXT "Nombre de usuario:",IDC_STATIC,47,58,70,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Guardar",IDC_SAVE,60,139,50,14 //67 PUSHBUTTON "Guardar Como...",IDC_SAVEAS,115,139,58,14 //123,50 PUSHBUTTON "Abrir...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/fr-FR.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "Serveur:",IDC_STATIC,47,41,25,8 LTEXT "Nom d'utilisateur:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Enregistrer",IDC_SAVE,67,139,50,14 PUSHBUTTON "Enregistrer Sous...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Ouvrir...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/it-IT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/it-IT.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "Computer:",IDC_STATIC,47,41,35,8 LTEXT "Nome utente:",IDC_STATIC,47,58,68,8 COMBOBOX IDC_SERVERCOMBO,90,39,136,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Salva",IDC_SAVE,43,139,58,14 PUSHBUTTON "Salva con nome",IDC_SAVEAS,107,139,58,14 PUSHBUTTON "Apri",IDC_OPEN,169,139,58,14 Modified: trunk/reactos/base/applications/mstsc/lang/ja-JP.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/ja-JP.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/ja-JP.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "ãµã¼ã:",IDC_STATIC,47,41,25,8 LTEXT "ã¦ã¼ã¶ã¼å:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "ä¿å",IDC_SAVE,67,139,50,14 PUSHBUTTON "ååãä»ãã¦ä¿å...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "éã...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/ko-KR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/ko-KR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/ko-KR.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -15,6 +15,7 @@ LTEXT "ìë² ì£¼ì:",IDC_STATIC,47,41,25,8 LTEXT "ì¬ì©ì ì´ë¦:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "ì ì¥",IDC_SAVE,67,139,50,14 PUSHBUTTON "ë¤ë¥¸ ì´ë¦ì¼ë¡ ì ì¥...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "ì´ê¸°...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/lt-LT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/lt-LT.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/lt-LT.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -13,6 +13,7 @@ LTEXT "Serveris:",IDC_STATIC,47,41,30,8 LTEXT "Vartotojo vardas:",IDC_STATIC,47,58,60,8 COMBOBOX IDC_SERVERCOMBO,107,39,113,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Saugoti",IDC_SAVE,67,139,50,14 PUSHBUTTON "Saugoti kaip...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Atidaryti...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/no-NO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/no-NO.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "Server:",IDC_STATIC,47,41,25,8 LTEXT "Brukernavn:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Lagre",IDC_SAVE,67,139,50,14 PUSHBUTTON "Lagre som...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Ã pne...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/pl-PL.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -21,6 +21,7 @@ LTEXT "Serwer:",IDC_STATIC,39,42,29,8 LTEXT "Nazwa użytkownika:",IDC_STATIC,39,57,42,18 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Zapisz",IDC_SAVE,67,139,50,14 PUSHBUTTON "Zapisz jako...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Otwórz...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/ro-RO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/ro-RO.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/ro-RO.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -18,6 +18,7 @@ LTEXT "Server:", IDC_STATIC,47,41,25,8 LTEXT "Nume utilizator:", IDC_STATIC,47,58,58,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "PÄ&streazÄ", IDC_SAVE,57,139,50,14 PUSHBUTTON "&PÄstrare înâ¦", IDC_SAVEAS,112,139,60,14 PUSHBUTTON "&Deschidereâ¦", IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/ru-RU.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -11,6 +11,7 @@ LTEXT "СеÑвеÑ:",IDC_STATIC,52,41,31,8 LTEXT "ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ:",IDC_STATIC,15,58,67,8 COMBOBOX IDC_SERVERCOMBO,86,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Ð¡Ð¾Ñ ÑаниÑÑ",IDC_SAVE,49,139,50,14 PUSHBUTTON "Ð¡Ð¾Ñ ÑаниÑÑ ÐºÐ°Ðº...",IDC_SAVEAS,103,139,70,14 PUSHBUTTON "ÐÑкÑÑÑÑ...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/sk-SK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/sk-SK.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -15,6 +15,7 @@ LTEXT "Server:",IDC_STATIC,47,41,25,8 LTEXT "PoužÃvateľské meno:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "&UložiÅ¥",IDC_SAVE,67,139,50,14 PUSHBUTTON "UložiÅ¥ &ako...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "&OtvoriÅ¥...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/sv-SE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/sv-SE.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/sv-SE.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -18,6 +18,7 @@ LTEXT "Server:",IDC_STATIC,47,41,25,8 LTEXT "Användarnamn:",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "Spara",IDC_SAVE,67,139,50,14 PUSHBUTTON "Spara som...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "Ãppna...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/uk-UA.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -19,6 +19,7 @@ LTEXT "СеÑвеÑ:",IDC_STATIC,47,41,27,8 LTEXT "ÐоÑиÑÑÑваÑ:",IDC_STATIC,47,58,41,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "ÐбеÑегÑи",IDC_SAVE,67,139,50,14 PUSHBUTTON "ÐбеÑегÑи Ñк...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "ÐÑдкÑиÑи...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/zh-CN.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/zh-CN.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/zh-CN.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -15,6 +15,7 @@ LTEXT "æå¡å¨ï¼",IDC_STATIC,47,41,25,8 LTEXT "ç¨æ·åï¼",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "ä¿å",IDC_SAVE,67,139,50,14 PUSHBUTTON "å¦å为...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "æå¼...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/lang/zh-TW.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/la…
============================================================================== --- trunk/reactos/base/applications/mstsc/lang/zh-TW.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/lang/zh-TW.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -18,6 +18,7 @@ LTEXT "伺æå¨ï¼",IDC_STATIC,47,41,25,8 LTEXT "ç¨æ¶åï¼",IDC_STATIC,47,58,38,8 COMBOBOX IDC_SERVERCOMBO,79,39,141,150,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL PUSHBUTTON "å²å",IDC_SAVE,67,139,50,14 PUSHBUTTON "å¦åçº...",IDC_SAVEAS,123,139,50,14 PUSHBUTTON "éå...",IDC_OPEN,177,139,50,14 Modified: trunk/reactos/base/applications/mstsc/precomp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/pr…
============================================================================== --- trunk/reactos/base/applications/mstsc/precomp.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/precomp.h [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -17,7 +17,7 @@ #define MAXKEY 256 #define MAXVALUE 256 -#define NUM_SETTINGS 4 +#define NUM_SETTINGS 5 extern LPWSTR lpSettings[]; typedef struct _SETTINGS Modified: trunk/reactos/base/applications/mstsc/resource.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/re…
============================================================================== --- trunk/reactos/base/applications/mstsc/resource.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/resource.h [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -16,6 +16,7 @@ #define IDC_GEOSLIDER 1012 #define IDC_BPPCOMBO 1013 #define IDC_SETTINGS_RESOLUTION_TEXT 1014 +#define IDC_NAMEEDIT 1015 #define IDC_LOGONICON 1016 #define IDC_CONNICON 1017 Modified: trunk/reactos/base/applications/mstsc/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/rs…
============================================================================== --- trunk/reactos/base/applications/mstsc/rsrc.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/rsrc.rc [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -16,6 +16,7 @@ #pragma code_page(65001) #include "lang/bg-BG.rc" #include "lang/ca-ES.rc" +#include "lang/cs-CZ.rc" #include "lang/de-DE.rc" #include "lang/el-GR.rc" #include "lang/en-US.rc" Modified: trunk/reactos/base/applications/mstsc/settings.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/se…
============================================================================== --- trunk/reactos/base/applications/mstsc/settings.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/settings.c [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -8,6 +8,7 @@ L"desktopheight", L"session bpp", L"full address", + L"username", }; VOID @@ -63,6 +64,17 @@ ret); } } + + /* user name */ + if (GetDlgItemText(pInfo->hGeneralPage, + IDC_NAMEEDIT, + szValue, + MAXVALUE)) + { + SetStringToSettings(pInfo->pRdpSettings, + L"username", + szValue); + } } Modified: trunk/reactos/base/applications/mstsc/win32.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/wi…
============================================================================== --- trunk/reactos/base/applications/mstsc/win32.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mstsc/win32.c [iso-8859-1] Thu Jan 19 02:27:20 2012 @@ -982,6 +982,33 @@ return iPort; } +static VOID +SetDomainAndUsername(PCHAR pName) +{ + PCHAR pDomain; + PCHAR pUsername; + + strcpy(g_domain, ""); + strcpy(g_username, ""); + + pDomain = strtok(pName, "\\"); + + if(pDomain == NULL) + return; + + pUsername = strtok(NULL, "\\"); + + if(pUsername == NULL) + { + strcpy(g_username, pDomain); + return; + } + + strcpy(g_username, pUsername); + strcpy(g_domain, pDomain); + return; +} + static BOOL ParseCommandLine(LPWSTR lpCmdLine, PRDPSETTINGS pRdpSettings, @@ -1077,7 +1104,8 @@ /* GetPortNumber also removes possible trailing port number from address */ g_tcp_port_rdp = GetPortNumber(szValue); strcpy(g_servername, szValue); - strcpy(g_username, ""); + uni_to_str(szValue, GetStringFromSettings(pRdpSettings, L"username")); + SetDomainAndUsername(szValue); strcpy(g_password, ""); g_server_depth = GetIntegerFromSettings(pRdpSettings, L"session bpp"); if (g_server_depth > 16) g_server_depth = 16; /* hack, we don't support 24bpp yet */
12 years, 11 months
1
0
0
0
← Newer
1
...
32
33
34
35
36
37
38
...
56
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
Results per page:
10
25
50
100
200