ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
May
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
June 2017
----- 2025 -----
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
20 participants
526 discussions
Start a n
N
ew thread
[gadamopoulos] 75011: [SHELL32] - Rename the resource identifiers for column names to make sense. Get rid of one called File. This was renamed to Name but was the same in other languages, now it is...
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Mon Jun 12 10:01:28 2017 New Revision: 75011 URL:
http://svn.reactos.org/svn/reactos?rev=75011&view=rev
Log: [SHELL32] - Rename the resource identifiers for column names to make sense. Get rid of one called File. This was renamed to Name but was the same in other languages, now it is replaced by Name for good. We also had two strings for a column called Comments and I think that in some languages one was singular and the other was plural. We only need the plural one. Note to translators: Please make sure that everything I changed makes sense. I had to edit all language files and there can be mistakes and typos. Modified: trunk/reactos/dll/win32/shell32/folders/CControlPanelFolder.cpp trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp trunk/reactos/dll/win32/shell32/folders/CFSFolder.cpp trunk/reactos/dll/win32/shell32/folders/CNetFolder.cpp trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp trunk/reactos/dll/win32/shell32/folders/CRecycleBin.cpp trunk/reactos/dll/win32/shell32/lang/bg-BG.rc trunk/reactos/dll/win32/shell32/lang/ca-ES.rc trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc trunk/reactos/dll/win32/shell32/lang/da-DK.rc trunk/reactos/dll/win32/shell32/lang/de-DE.rc trunk/reactos/dll/win32/shell32/lang/el-GR.rc trunk/reactos/dll/win32/shell32/lang/en-GB.rc trunk/reactos/dll/win32/shell32/lang/en-US.rc trunk/reactos/dll/win32/shell32/lang/es-ES.rc trunk/reactos/dll/win32/shell32/lang/fi-FI.rc trunk/reactos/dll/win32/shell32/lang/fr-FR.rc trunk/reactos/dll/win32/shell32/lang/he-IL.rc trunk/reactos/dll/win32/shell32/lang/hu-HU.rc trunk/reactos/dll/win32/shell32/lang/it-IT.rc trunk/reactos/dll/win32/shell32/lang/ja-JP.rc trunk/reactos/dll/win32/shell32/lang/ko-KR.rc trunk/reactos/dll/win32/shell32/lang/nl-NL.rc trunk/reactos/dll/win32/shell32/lang/no-NO.rc trunk/reactos/dll/win32/shell32/lang/pl-PL.rc trunk/reactos/dll/win32/shell32/lang/pt-BR.rc trunk/reactos/dll/win32/shell32/lang/pt-PT.rc trunk/reactos/dll/win32/shell32/lang/ro-RO.rc trunk/reactos/dll/win32/shell32/lang/ru-RU.rc trunk/reactos/dll/win32/shell32/lang/sk-SK.rc trunk/reactos/dll/win32/shell32/lang/sl-SI.rc trunk/reactos/dll/win32/shell32/lang/sq-AL.rc trunk/reactos/dll/win32/shell32/lang/sv-SE.rc trunk/reactos/dll/win32/shell32/lang/tr-TR.rc trunk/reactos/dll/win32/shell32/lang/uk-UA.rc trunk/reactos/dll/win32/shell32/lang/zh-CN.rc trunk/reactos/dll/win32/shell32/lang/zh-TW.rc trunk/reactos/dll/win32/shell32/shresdef.h Modified: trunk/reactos/dll/win32/shell32/folders/CControlPanelFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CControlPanelFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CControlPanelFolder.cpp [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -49,8 +49,8 @@ */ static const shvheader ControlPanelSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20},/*FIXME*/ - {IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 80},/*FIXME*/ + {IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20},/*FIXME*/ + {IDS_SHV_COLUMN_COMMENTS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 80},/*FIXME*/ }; #define CONROLPANELSHELLVIEWCOLUMNS 2 Modified: trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -63,10 +63,10 @@ int SHELL_ConfirmMsgBox(HWND hWnd, LPWSTR lpszText, LPWSTR lpszCaption, HICON hIcon, BOOL bYesToAll); static const shvheader DesktopSFHeader[] = { - {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, - {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}, - {IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12}, + {IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, + {IDS_SHV_COLUMN_SIZE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, + {IDS_SHV_COLUMN_TYPE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}, + {IDS_SHV_COLUMN_MODIFIED, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12}, }; #define DESKTOPSHELLVIEWCOLUMNS 4 Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -182,10 +182,10 @@ */ static const shvheader MyComputerSFHeader[] = { - {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}, - {IDS_SHV_COLUMN6, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN7, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, + {IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, + {IDS_SHV_COLUMN_TYPE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}, + {IDS_SHV_COLUMN_DISK_CAPACITY, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, + {IDS_SHV_COLUMN_DISK_AVAILABLE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, }; #define MYCOMPUTERSHELLVIEWCOLUMNS 4 Modified: trunk/reactos/dll/win32/shell32/folders/CFSFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CFSFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CFSFolder.cpp [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -80,11 +80,11 @@ static const shvheader GenericSFHeader[] = { - {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, - {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, - {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}, - {IDS_SHV_COLUMN4, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12}, - {IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10} + {IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, + {IDS_SHV_COLUMN_SIZE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, + {IDS_SHV_COLUMN_TYPE, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10}, + {IDS_SHV_COLUMN_MODIFIED, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 12}, + {IDS_SHV_COLUMN_ATTRIBUTES, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 10} }; #define GENERICSHELLVIEWCOLUMNS 5 Modified: trunk/reactos/dll/win32/shell32/folders/CNetFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CNetFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CNetFolder.cpp [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -94,10 +94,10 @@ }; static shvheader NetworkPlacesSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_COLUMN13, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, + {IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, + {IDS_SHV_COLUMN_CATEGORY, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, {IDS_SHV_COLUMN_WORKGROUP, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, - {IDS_SHV_NETWORKLOCATION, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15} + {IDS_SHV_COLUMN_NETLOCATION, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15} }; #define COLUMN_NAME 0 Modified: trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -28,7 +28,7 @@ WINE_DEFAULT_DEBUG_CHANNEL (shell); static shvheader PrinterSFHeader[] = { - {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, + {IDS_SHV_COLUMN_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, {IDS_SHV_COLUMN_DOCUMENTS , SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, {IDS_SHV_COLUMN_STATUS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, {IDS_SHV_COLUMN_COMMENTS, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 15}, Modified: trunk/reactos/dll/win32/shell32/folders/CRecycleBin.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CRecycleBin.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CRecycleBin.cpp [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -40,12 +40,12 @@ static const columninfo RecycleBinColumns[] = { - {IDS_SHV_COLUMN1, &FMTID_Storage, PID_STG_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 30}, + {IDS_SHV_COLUMN_NAME, &FMTID_Storage, PID_STG_NAME, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 30}, {IDS_SHV_COLUMN_DELFROM, &FMTID_Displaced, PID_DISPLACED_FROM, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 30}, {IDS_SHV_COLUMN_DELDATE, &FMTID_Displaced, PID_DISPLACED_DATE, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, - {IDS_SHV_COLUMN2, &FMTID_Storage, PID_STG_SIZE, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 20}, - {IDS_SHV_COLUMN3, &FMTID_Storage, PID_STG_STORAGETYPE, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, - {IDS_SHV_COLUMN4, &FMTID_Storage, PID_STG_WRITETIME, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, + {IDS_SHV_COLUMN_SIZE, &FMTID_Storage, PID_STG_SIZE, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 20}, + {IDS_SHV_COLUMN_TYPE, &FMTID_Storage, PID_STG_STORAGETYPE, SHCOLSTATE_TYPE_INT | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, + {IDS_SHV_COLUMN_MODIFIED, &FMTID_Storage, PID_STG_WRITETIME, SHCOLSTATE_TYPE_DATE | SHCOLSTATE_ONBYDEFAULT, LVCFMT_LEFT, 20}, /* {"creation time", &FMTID_Storage, PID_STG_CREATETIME, SHCOLSTATE_TYPE_DATE, LVCFMT_LEFT, 20}, */ /* {"attribs", &FMTID_Storage, PID_STG_ATTRIBUTES, SHCOLSTATE_TYPE_STR, LVCFMT_LEFT, 20}, */ }; @@ -757,14 +757,16 @@ // FIXME: We should in fact use a UNICODE version of _ILGetFileType szTypeName[0] = L'\0'; wcscpy(buffer, PathFindExtensionW(pFileDetails->szName)); - if (!( HCR_MapTypeToValueW(buffer, buffer, sizeof(buffer) / sizeof(WCHAR), TRUE) && - HCR_MapTypeToValueW(buffer, szTypeName, sizeof(szTypeName) / sizeof(WCHAR), FALSE ))) + if (!( HCR_MapTypeToValueW(buffer, buffer, ARRAYSIZE(buffer), TRUE) && + HCR_MapTypeToValueW(buffer, szTypeName, ARRAYSIZE(szTypeName), FALSE ))) { - wcscpy (szTypeName, PathFindExtensionW(pFileDetails->szName)); - wcscat(szTypeName, L"-"); - Length = wcslen(szTypeName); - if (LoadStringW(shell32_hInstance, IDS_SHV_COLUMN1, &szTypeName[Length], (sizeof(szTypeName) / sizeof(WCHAR)) - Length)) - szTypeName[(sizeof(szTypeName)/sizeof(WCHAR))-1] = L'\0'; + /* load localized file string */ + szTypeName[0] = '\0'; + if(LoadStringW(shell32_hInstance, IDS_ANY_FILE, szTypeName, ARRAYSIZE(szTypeName))) + { + szTypeName[63] = '\0'; + StringCchPrintfW(buffer, ARRAYSIZE(buffer), szTypeName, PathFindExtensionW(pFileDetails->szName)); + } } return SHSetStrRet(&pDetails->str, szTypeName); default: Modified: trunk/reactos/dll/win32/shell32/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/bg-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Файл" - IDS_SHV_COLUMN2 "РазмеÑ" - IDS_SHV_COLUMN3 "Ðид" - IDS_SHV_COLUMN4 "ÐÑоменен" - IDS_SHV_COLUMN5 "ÐÑизнак" - IDS_SHV_COLUMN6 "РазмеÑ" - IDS_SHV_COLUMN7 "ÐалиÑен ÑазмеÑ" - IDS_SHV_COLUMN8 "Ðме" - IDS_SHV_COLUMN9 "Ðабележки" - IDS_SHV_COLUMN10 "СобÑÑвеник" - IDS_SHV_COLUMN11 "ÐÑÑпа" - IDS_SHV_COLUMN12 "Файлово име" - IDS_SHV_COLUMN13 "Раздел" + IDS_SHV_COLUMN_NAME "Ðме" + IDS_SHV_COLUMN_SIZE "РазмеÑ" + IDS_SHV_COLUMN_TYPE "Ðид" + IDS_SHV_COLUMN_MODIFIED "ÐÑоменен" + IDS_SHV_COLUMN_ATTRIBUTES "ÐÑизнак" + IDS_SHV_COLUMN_DISK_CAPACITY "РазмеÑ" + IDS_SHV_COLUMN_DISK_AVAILABLE "ÐалиÑен ÑазмеÑ" + IDS_SHV_COLUMN_OWNER "СобÑÑвеник" + IDS_SHV_COLUMN_GROUP "ÐÑÑпа" + IDS_SHV_COLUMN_FILENAME "Файлово име" + IDS_SHV_COLUMN_CATEGORY "Раздел" IDS_SHV_COLUMN_DELFROM "ÐÑÑвонаÑално мÑÑÑо" IDS_SHV_COLUMN_DELDATE "ÐаÑа на изÑÑиване" IDS_SHV_COLUMN_FONTTYPE "Ðид ÑÑиÑÑ" IDS_SHV_COLUMN_WORKGROUP "РабоÑна гÑÑпа" - IDS_SHV_NETWORKLOCATION "ÐÑÑÑо в мÑежаÑа" + IDS_SHV_COLUMN_NETLOCATION "ÐÑÑÑо в мÑежаÑа" IDS_SHV_COLUMN_DOCUMENTS "Ðнижа" IDS_SHV_COLUMN_STATUS "СÑÑÑоÑние" IDS_SHV_COLUMN_COMMENTS "Ðабележки" Modified: trunk/reactos/dll/win32/shell32/lang/ca-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ca-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "File" - IDS_SHV_COLUMN2 "Size" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Modified" - IDS_SHV_COLUMN5 "Attributes" - IDS_SHV_COLUMN6 "Size" - IDS_SHV_COLUMN7 "Size available" - IDS_SHV_COLUMN8 "Name" - IDS_SHV_COLUMN9 "Comments" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Name" + IDS_SHV_COLUMN_SIZE "Size" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Modified" + IDS_SHV_COLUMN_ATTRIBUTES "Attributes" + IDS_SHV_COLUMN_DISK_CAPACITY "Size" + IDS_SHV_COLUMN_DISK_AVAILABLE "Size available" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Comments" Modified: trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/cs-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -640,24 +640,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Název" - IDS_SHV_COLUMN2 "Velikost" - IDS_SHV_COLUMN3 "Typ" - IDS_SHV_COLUMN4 "ZmÄnÄno" - IDS_SHV_COLUMN5 "Atributy" - IDS_SHV_COLUMN6 "Velikost" - IDS_SHV_COLUMN7 "Volné mÃsto" - IDS_SHV_COLUMN8 "Jméno" - IDS_SHV_COLUMN9 "KomentáÅ" - IDS_SHV_COLUMN10 "VlastnÃk" - IDS_SHV_COLUMN11 "Skupina" - IDS_SHV_COLUMN12 "Název souboru" - IDS_SHV_COLUMN13 "Kategorie" + IDS_SHV_COLUMN_NAME "Jméno" + IDS_SHV_COLUMN_SIZE "Velikost" + IDS_SHV_COLUMN_TYPE "Typ" + IDS_SHV_COLUMN_MODIFIED "ZmÄnÄno" + IDS_SHV_COLUMN_ATTRIBUTES "Atributy" + IDS_SHV_COLUMN_DISK_CAPACITY "Velikost" + IDS_SHV_COLUMN_DISK_AVAILABLE "Volné mÃsto" + IDS_SHV_COLUMN_OWNER "VlastnÃk" + IDS_SHV_COLUMN_GROUP "Skupina" + IDS_SHV_COLUMN_FILENAME "Název souboru" + IDS_SHV_COLUMN_CATEGORY "Kategorie" IDS_SHV_COLUMN_DELFROM "Původnà umÃstÄnÃ" IDS_SHV_COLUMN_DELDATE "OdstranÄno" IDS_SHV_COLUMN_FONTTYPE "Druh pÃsma" //fonttype IDS_SHV_COLUMN_WORKGROUP "Pracovnà skupina" - IDS_SHV_NETWORKLOCATION "SÃÅ¥ové umÃstÄnÃ" + IDS_SHV_COLUMN_NETLOCATION "SÃÅ¥ové umÃstÄnÃ" IDS_SHV_COLUMN_DOCUMENTS "Dokumenty" IDS_SHV_COLUMN_STATUS "Stav" IDS_SHV_COLUMN_COMMENTS "KomentáÅe" Modified: trunk/reactos/dll/win32/shell32/lang/da-DK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/da-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -640,27 +640,25 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Fil" - IDS_SHV_COLUMN2 "Størrelse" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Ãndret" - IDS_SHV_COLUMN5 "Attributer" - IDS_SHV_COLUMN6 "Størrelse" - IDS_SHV_COLUMN7 "Størrelse tilgængelig" - IDS_SHV_COLUMN8 "Navn" - IDS_SHV_COLUMN9 "Kommentar" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Navn" + IDS_SHV_COLUMN_SIZE "Størrelse" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Ãndret" + IDS_SHV_COLUMN_ATTRIBUTES "Attributer" + IDS_SHV_COLUMN_DISK_CAPACITY "Størrelse" + IDS_SHV_COLUMN_DISK_AVAILABLE "Størrelse tilgængelig" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" - IDS_SHV_COLUMN_COMMENTS "Comments" + IDS_SHV_COLUMN_COMMENTS "Kommentar" IDS_SHV_COLUMN_LOCATION "Location" IDS_SHV_COLUMN_MODEL "Model" Modified: trunk/reactos/dll/win32/shell32/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/de-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -635,24 +635,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Datei" - IDS_SHV_COLUMN2 "GröÃe" - IDS_SHV_COLUMN3 "Typ" - IDS_SHV_COLUMN4 "Geändert" - IDS_SHV_COLUMN5 "Attribute" - IDS_SHV_COLUMN6 "GesamtgröÃe" - IDS_SHV_COLUMN7 "Freier Speicher" - IDS_SHV_COLUMN8 "Name" - IDS_SHV_COLUMN9 "Kommentar" - IDS_SHV_COLUMN10 "Besitzer" - IDS_SHV_COLUMN11 "Gruppe" - IDS_SHV_COLUMN12 "Dateinamen" - IDS_SHV_COLUMN13 "Kategorie" + IDS_SHV_COLUMN_NAME "Name" + IDS_SHV_COLUMN_SIZE "GröÃe" + IDS_SHV_COLUMN_TYPE "Typ" + IDS_SHV_COLUMN_MODIFIED "Geändert" + IDS_SHV_COLUMN_ATTRIBUTES "Attribute" + IDS_SHV_COLUMN_DISK_CAPACITY "GesamtgröÃe" + IDS_SHV_COLUMN_DISK_AVAILABLE "Freier Speicher" + IDS_SHV_COLUMN_OWNER "Besitzer" + IDS_SHV_COLUMN_GROUP "Gruppe" + IDS_SHV_COLUMN_FILENAME "Dateinamen" + IDS_SHV_COLUMN_CATEGORY "Kategorie" IDS_SHV_COLUMN_DELFROM "Ursprung" IDS_SHV_COLUMN_DELDATE "Gelöscht am" IDS_SHV_COLUMN_FONTTYPE "Schriftartentyp" IDS_SHV_COLUMN_WORKGROUP "Arbeitsgruppe" - IDS_SHV_NETWORKLOCATION "Netzwerkstandort" + IDS_SHV_COLUMN_NETLOCATION "Netzwerkstandort" IDS_SHV_COLUMN_DOCUMENTS "Dokumente" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Kommentare" Modified: trunk/reactos/dll/win32/shell32/lang/el-GR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/el-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,27 +634,25 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "ÎÏÏείο" - IDS_SHV_COLUMN2 "ÎÎγεθοÏ" - IDS_SHV_COLUMN3 "ΤÏÏοÏ" - IDS_SHV_COLUMN4 "ΤÏοÏοÏοίηÏη" - IDS_SHV_COLUMN5 "ΧαÏακÏηÏιÏÏικά" - IDS_SHV_COLUMN6 "ÎÎγεθοÏ" - IDS_SHV_COLUMN7 "ÎλεÏθεÏÎ¿Ï ÏÏÏοÏ" - IDS_SHV_COLUMN8 "Îνομα" - IDS_SHV_COLUMN9 "ΣÏÏλια" - IDS_SHV_COLUMN10 "ÎάÏοÏοÏ" - IDS_SHV_COLUMN11 "Îμάδα" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Îνομα" + IDS_SHV_COLUMN_SIZE "ÎÎγεθοÏ" + IDS_SHV_COLUMN_TYPE "ΤÏÏοÏ" + IDS_SHV_COLUMN_MODIFIED "ΤÏοÏοÏοίηÏη" + IDS_SHV_COLUMN_ATTRIBUTES "ΧαÏακÏηÏιÏÏικά" + IDS_SHV_COLUMN_DISK_CAPACITY "ÎÎγεθοÏ" + IDS_SHV_COLUMN_DISK_AVAILABLE "ÎλεÏθεÏÎ¿Ï ÏÏÏοÏ" + IDS_SHV_COLUMN_OWNER "ÎάÏοÏοÏ" + IDS_SHV_COLUMN_GROUP "Îμάδα" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "ÎÏÏική θÎÏη" IDS_SHV_COLUMN_DELDATE "ÎμεÏομηνία διαγÏαÏήÏ" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" - IDS_SHV_COLUMN_COMMENTS "Comments" + IDS_SHV_COLUMN_COMMENTS "ΣÏÏλια" IDS_SHV_COLUMN_LOCATION "Location" IDS_SHV_COLUMN_MODEL "Model" Modified: trunk/reactos/dll/win32/shell32/lang/en-GB.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "File" - IDS_SHV_COLUMN2 "Size" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Modified" - IDS_SHV_COLUMN5 "Attributes" - IDS_SHV_COLUMN6 "Size" - IDS_SHV_COLUMN7 "Size available" - IDS_SHV_COLUMN8 "Name" - IDS_SHV_COLUMN9 "Comments" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Name" + IDS_SHV_COLUMN_SIZE "Size" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Modified" + IDS_SHV_COLUMN_ATTRIBUTES "Attributes" + IDS_SHV_COLUMN_DISK_CAPACITY "Size" + IDS_SHV_COLUMN_DISK_AVAILABLE "Size available" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Comments" Modified: trunk/reactos/dll/win32/shell32/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Name" - IDS_SHV_COLUMN2 "Size" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Modified" - IDS_SHV_COLUMN5 "Attributes" - IDS_SHV_COLUMN6 "Size" - IDS_SHV_COLUMN7 "Size available" - IDS_SHV_COLUMN8 "Name" - IDS_SHV_COLUMN9 "Comments" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Name" + IDS_SHV_COLUMN_SIZE "Size" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Modified" + IDS_SHV_COLUMN_ATTRIBUTES "Attributes" + IDS_SHV_COLUMN_DISK_CAPACITY "Total Size" + IDS_SHV_COLUMN_DISK_AVAILABLE "Free Space" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Comments" Modified: trunk/reactos/dll/win32/shell32/lang/es-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/es-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -636,24 +636,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Archivo" - IDS_SHV_COLUMN2 "Tamaño" - IDS_SHV_COLUMN3 "Tipo" - IDS_SHV_COLUMN4 "Modificado" - IDS_SHV_COLUMN5 "Atributos" - IDS_SHV_COLUMN6 "Tamaño" - IDS_SHV_COLUMN7 "Tamaño disponible" - IDS_SHV_COLUMN8 "Nombre" - IDS_SHV_COLUMN9 "Comentarios" - IDS_SHV_COLUMN10 "Propietario" - IDS_SHV_COLUMN11 "Grupo" - IDS_SHV_COLUMN12 "Nombre del archivo" - IDS_SHV_COLUMN13 "CategorÃa" + IDS_SHV_COLUMN_NAME "Nombre" + IDS_SHV_COLUMN_SIZE "Tamaño" + IDS_SHV_COLUMN_TYPE "Tipo" + IDS_SHV_COLUMN_MODIFIED "Modificado" + IDS_SHV_COLUMN_ATTRIBUTES "Atributos" + IDS_SHV_COLUMN_DISK_CAPACITY "Tamaño" + IDS_SHV_COLUMN_DISK_AVAILABLE "Tamaño disponible" + IDS_SHV_COLUMN_OWNER "Propietario" + IDS_SHV_COLUMN_GROUP "Grupo" + IDS_SHV_COLUMN_FILENAME "Nombre del archivo" + IDS_SHV_COLUMN_CATEGORY "CategorÃa" IDS_SHV_COLUMN_DELFROM "Ubicación original" IDS_SHV_COLUMN_DELDATE "Fecha de eliminación" IDS_SHV_COLUMN_FONTTYPE "Tipo de fuente" IDS_SHV_COLUMN_WORKGROUP "Grupo de trabajo" - IDS_SHV_NETWORKLOCATION "Ubicación en red" + IDS_SHV_COLUMN_NETLOCATION "Ubicación en red" IDS_SHV_COLUMN_DOCUMENTS "Documentos" IDS_SHV_COLUMN_STATUS "Estado" IDS_SHV_COLUMN_COMMENTS "Comentarios" Modified: trunk/reactos/dll/win32/shell32/lang/fi-FI.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fi-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,27 +634,25 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Tiedosto" - IDS_SHV_COLUMN2 "Koko" - IDS_SHV_COLUMN3 "Tyyppi" - IDS_SHV_COLUMN4 "Muokattu" - IDS_SHV_COLUMN5 "Ominaisuudet" - IDS_SHV_COLUMN6 "Koko" - IDS_SHV_COLUMN7 "Tilaa jäljellä" - IDS_SHV_COLUMN8 "Nimi" - IDS_SHV_COLUMN9 "Kommentit" - IDS_SHV_COLUMN10 "Omistaja" - IDS_SHV_COLUMN11 "Ryhmä" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Nimi" + IDS_SHV_COLUMN_SIZE "Koko" + IDS_SHV_COLUMN_TYPE "Tyyppi" + IDS_SHV_COLUMN_MODIFIED "Muokattu" + IDS_SHV_COLUMN_ATTRIBUTES "Ominaisuudet" + IDS_SHV_COLUMN_DISK_CAPACITY "Koko" + IDS_SHV_COLUMN_DISK_AVAILABLE "Tilaa jäljellä" + IDS_SHV_COLUMN_OWNER "Omistaja" + IDS_SHV_COLUMN_GROUP "Ryhmä" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" - IDS_SHV_COLUMN_COMMENTS "Comments" + IDS_SHV_COLUMN_COMMENTS "Kommentit" IDS_SHV_COLUMN_LOCATION "Location" IDS_SHV_COLUMN_MODEL "Model" Modified: trunk/reactos/dll/win32/shell32/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fr-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Fichier" - IDS_SHV_COLUMN2 "Taille" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Modifié" - IDS_SHV_COLUMN5 "Attributs" - IDS_SHV_COLUMN6 "Capacité" - IDS_SHV_COLUMN7 "Espace disponible" - IDS_SHV_COLUMN8 "Nom" - IDS_SHV_COLUMN9 "Commentaires" - IDS_SHV_COLUMN10 "Propriétaire" - IDS_SHV_COLUMN11 "Groupe" - IDS_SHV_COLUMN12 "Nom de fichier" - IDS_SHV_COLUMN13 "Catégorie" + IDS_SHV_COLUMN_NAME "Nom" + IDS_SHV_COLUMN_SIZE "Taille" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Modifié" + IDS_SHV_COLUMN_ATTRIBUTES "Attributs" + IDS_SHV_COLUMN_DISK_CAPACITY "Capacité" + IDS_SHV_COLUMN_DISK_AVAILABLE "Espace disponible" + IDS_SHV_COLUMN_OWNER "Propriétaire" + IDS_SHV_COLUMN_GROUP "Groupe" + IDS_SHV_COLUMN_FILENAME "Nom de fichier" + IDS_SHV_COLUMN_CATEGORY "Catégorie" IDS_SHV_COLUMN_DELFROM "Localisation d'origine" IDS_SHV_COLUMN_DELDATE "Date de suppression" IDS_SHV_COLUMN_FONTTYPE "Type de police" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Emplacement réseau" + IDS_SHV_COLUMN_NETLOCATION "Emplacement réseau" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Ãtat" IDS_SHV_COLUMN_COMMENTS "Commentaires" Modified: trunk/reactos/dll/win32/shell32/lang/he-IL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/he-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/he-IL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/he-IL.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "×§×××¥" - IDS_SHV_COLUMN2 "××××" - IDS_SHV_COLUMN3 "ס××" - IDS_SHV_COLUMN4 "ש×× ×" - IDS_SHV_COLUMN5 "ת××× ×ת" - IDS_SHV_COLUMN6 "××××" - IDS_SHV_COLUMN7 "Size available" - IDS_SHV_COLUMN8 "ש×" - IDS_SHV_COLUMN9 "×ער×ת" - IDS_SHV_COLUMN10 "××¢×××" - IDS_SHV_COLUMN11 "×§××צ×ת" - IDS_SHV_COLUMN12 "×©× ×§×××¥" - IDS_SHV_COLUMN13 "×§×××ר××" + IDS_SHV_COLUMN_NAME "ש×" + IDS_SHV_COLUMN_SIZE "××××" + IDS_SHV_COLUMN_TYPE "ס××" + IDS_SHV_COLUMN_MODIFIED "ש×× ×" + IDS_SHV_COLUMN_ATTRIBUTES "ת××× ×ת" + IDS_SHV_COLUMN_DISK_CAPACITY "××××" + IDS_SHV_COLUMN_DISK_AVAILABLE "Size available" + IDS_SHV_COLUMN_OWNER "××¢×××" + IDS_SHV_COLUMN_GROUP "×§××צ×ת" + IDS_SHV_COLUMN_FILENAME "×©× ×§×××¥" + IDS_SHV_COLUMN_CATEGORY "×§×××ר××" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "ת×ר×× ××××§×" IDS_SHV_COLUMN_FONTTYPE "ס×× ××פ×" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "×ס××××" IDS_SHV_COLUMN_STATUS "×צ×" IDS_SHV_COLUMN_COMMENTS "×ער×ת" Modified: trunk/reactos/dll/win32/shell32/lang/hu-HU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/hu-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,27 +634,25 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Ãllomány" - IDS_SHV_COLUMN2 "Méret" - IDS_SHV_COLUMN3 "TÃpus" - IDS_SHV_COLUMN4 "MódosÃtva" - IDS_SHV_COLUMN5 "Attribútumok" - IDS_SHV_COLUMN6 "Méret" - IDS_SHV_COLUMN7 "Rendelkezésre álló hely" - IDS_SHV_COLUMN8 "Név" - IDS_SHV_COLUMN9 "Megjegyzések" - IDS_SHV_COLUMN10 "Tulajdonos" - IDS_SHV_COLUMN11 "Csoport" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Név" + IDS_SHV_COLUMN_SIZE "Méret" + IDS_SHV_COLUMN_TYPE "TÃpus" + IDS_SHV_COLUMN_MODIFIED "MódosÃtva" + IDS_SHV_COLUMN_ATTRIBUTES "Attribútumok" + IDS_SHV_COLUMN_DISK_CAPACITY "Méret" + IDS_SHV_COLUMN_DISK_AVAILABLE "Rendelkezésre álló hely" + IDS_SHV_COLUMN_OWNER "Tulajdonos" + IDS_SHV_COLUMN_GROUP "Csoport" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" - IDS_SHV_COLUMN_COMMENTS "Comments" + IDS_SHV_COLUMN_COMMENTS "Megjegyzések" IDS_SHV_COLUMN_LOCATION "Location" IDS_SHV_COLUMN_MODEL "Model" Modified: trunk/reactos/dll/win32/shell32/lang/it-IT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/it-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "File" - IDS_SHV_COLUMN2 "Dimensione" - IDS_SHV_COLUMN3 "Tipo" - IDS_SHV_COLUMN4 "Modificato" - IDS_SHV_COLUMN5 "Attributi" - IDS_SHV_COLUMN6 "Dimensione" - IDS_SHV_COLUMN7 "Dimensione disponibile" - IDS_SHV_COLUMN8 "Nome" - IDS_SHV_COLUMN9 "Commenti" - IDS_SHV_COLUMN10 "Proprietario" - IDS_SHV_COLUMN11 "Gruppo" - IDS_SHV_COLUMN12 "Nome file" - IDS_SHV_COLUMN13 "Categoria" + IDS_SHV_COLUMN_NAME "Nome" + IDS_SHV_COLUMN_SIZE "Dimensione" + IDS_SHV_COLUMN_TYPE "Tipo" + IDS_SHV_COLUMN_MODIFIED "Modificato" + IDS_SHV_COLUMN_ATTRIBUTES "Attributi" + IDS_SHV_COLUMN_DISK_CAPACITY "Dimensione" + IDS_SHV_COLUMN_DISK_AVAILABLE "Dimensione disponibile" + IDS_SHV_COLUMN_OWNER "Proprietario" + IDS_SHV_COLUMN_GROUP "Gruppo" + IDS_SHV_COLUMN_FILENAME "Nome file" + IDS_SHV_COLUMN_CATEGORY "Categoria" IDS_SHV_COLUMN_DELFROM "Posizione originale" IDS_SHV_COLUMN_DELDATE "Data di cancellazione" IDS_SHV_COLUMN_FONTTYPE "Tipo di font" IDS_SHV_COLUMN_WORKGROUP "Gruppo di lavoro" - IDS_SHV_NETWORKLOCATION "Posizione in rete" + IDS_SHV_COLUMN_NETLOCATION "Posizione in rete" IDS_SHV_COLUMN_DOCUMENTS "Documenti" IDS_SHV_COLUMN_STATUS "Stato" IDS_SHV_COLUMN_COMMENTS "Commenti" Modified: trunk/reactos/dll/win32/shell32/lang/ja-JP.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ja-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -631,24 +631,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "åå" - IDS_SHV_COLUMN2 "ãµã¤ãº" - IDS_SHV_COLUMN3 "種é¡" - IDS_SHV_COLUMN4 "æ´æ°æ¥æ" - IDS_SHV_COLUMN5 "屿§" - IDS_SHV_COLUMN6 "åè¨ãµã¤ãº" - IDS_SHV_COLUMN7 "空ã容é" - IDS_SHV_COLUMN8 "使è " - IDS_SHV_COLUMN9 "ã³ã¡ã³ã" - IDS_SHV_COLUMN10 "ææè " - IDS_SHV_COLUMN11 "ã°ã«ã¼ã" - IDS_SHV_COLUMN12 "ãã¡ã¤ã«å" - IDS_SHV_COLUMN13 "ã«ãã´ãª" + IDS_SHV_COLUMN_NAME "使è " + IDS_SHV_COLUMN_SIZE "ãµã¤ãº" + IDS_SHV_COLUMN_TYPE "種é¡" + IDS_SHV_COLUMN_MODIFIED "æ´æ°æ¥æ" + IDS_SHV_COLUMN_ATTRIBUTES "屿§" + IDS_SHV_COLUMN_DISK_CAPACITY "åè¨ãµã¤ãº" + IDS_SHV_COLUMN_DISK_AVAILABLE "空ã容é" + IDS_SHV_COLUMN_OWNER "ææè " + IDS_SHV_COLUMN_GROUP "ã°ã«ã¼ã" + IDS_SHV_COLUMN_FILENAME "ãã¡ã¤ã«å" + IDS_SHV_COLUMN_CATEGORY "ã«ãã´ãª" IDS_SHV_COLUMN_DELFROM "å ã®å ´æ" IDS_SHV_COLUMN_DELDATE "å餿¥" IDS_SHV_COLUMN_FONTTYPE "ãã©ã³ãã®ç¨®é¡" IDS_SHV_COLUMN_WORKGROUP "ã¯ã¼ã¯ã°ã«ã¼ã" - IDS_SHV_NETWORKLOCATION "ãããã¯ã¼ã¯ã®å ´æ" + IDS_SHV_COLUMN_NETLOCATION "ãããã¯ã¼ã¯ã®å ´æ" IDS_SHV_COLUMN_DOCUMENTS "ããã¥ã¡ã³ã" IDS_SHV_COLUMN_STATUS "ç¶æ " IDS_SHV_COLUMN_COMMENTS "ã³ã¡ã³ã" Modified: trunk/reactos/dll/win32/shell32/lang/ko-KR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ko-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "File" - IDS_SHV_COLUMN2 "Size" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Modified" - IDS_SHV_COLUMN5 "Attributes" - IDS_SHV_COLUMN6 "Size" - IDS_SHV_COLUMN7 "Size available" - IDS_SHV_COLUMN8 "Name" - IDS_SHV_COLUMN9 "Comments" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Name" + IDS_SHV_COLUMN_SIZE "Size" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Modified" + IDS_SHV_COLUMN_ATTRIBUTES "Attributes" + IDS_SHV_COLUMN_DISK_CAPACITY "Size" + IDS_SHV_COLUMN_DISK_AVAILABLE "Size available" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Comments" Modified: trunk/reactos/dll/win32/shell32/lang/nl-NL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/nl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "File" - IDS_SHV_COLUMN2 "Size" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Modified" - IDS_SHV_COLUMN5 "Attributes" - IDS_SHV_COLUMN6 "Size" - IDS_SHV_COLUMN7 "Size available" - IDS_SHV_COLUMN8 "Name" - IDS_SHV_COLUMN9 "Comments" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Name" + IDS_SHV_COLUMN_SIZE "Size" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Modified" + IDS_SHV_COLUMN_ATTRIBUTES "Attributes" + IDS_SHV_COLUMN_DISK_CAPACITY "Size" + IDS_SHV_COLUMN_DISK_AVAILABLE "Size available" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Comments" Modified: trunk/reactos/dll/win32/shell32/lang/no-NO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/no-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Fil" - IDS_SHV_COLUMN2 "Størrelse" - IDS_SHV_COLUMN3 "Type" - IDS_SHV_COLUMN4 "Endret" - IDS_SHV_COLUMN5 "Egenskaper" - IDS_SHV_COLUMN6 "Størrelse" - IDS_SHV_COLUMN7 "Ledig plass" - IDS_SHV_COLUMN8 "Navn" - IDS_SHV_COLUMN9 "Kommentarer" - IDS_SHV_COLUMN10 "Eier" - IDS_SHV_COLUMN11 "Gruppe" - IDS_SHV_COLUMN12 "Filnavn" - IDS_SHV_COLUMN13 "Kategori" + IDS_SHV_COLUMN_NAME "Navn" + IDS_SHV_COLUMN_SIZE "Størrelse" + IDS_SHV_COLUMN_TYPE "Type" + IDS_SHV_COLUMN_MODIFIED "Endret" + IDS_SHV_COLUMN_ATTRIBUTES "Egenskaper" + IDS_SHV_COLUMN_DISK_CAPACITY "Størrelse" + IDS_SHV_COLUMN_DISK_AVAILABLE "Ledig plass" + IDS_SHV_COLUMN_OWNER "Eier" + IDS_SHV_COLUMN_GROUP "Gruppe" + IDS_SHV_COLUMN_FILENAME "Filnavn" + IDS_SHV_COLUMN_CATEGORY "Kategori" IDS_SHV_COLUMN_DELFROM "Opprinnelig plassering" IDS_SHV_COLUMN_DELDATE "Dato slettet" IDS_SHV_COLUMN_FONTTYPE "Skrifttype" IDS_SHV_COLUMN_WORKGROUP "Arbeidsgruppe" - IDS_SHV_NETWORKLOCATION "Nettverksplassering" + IDS_SHV_COLUMN_NETLOCATION "Nettverksplassering" IDS_SHV_COLUMN_DOCUMENTS "Dokumenter" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Kommentarer" Modified: trunk/reactos/dll/win32/shell32/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -638,24 +638,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Plik" - IDS_SHV_COLUMN2 "WielkoÅÄ" - IDS_SHV_COLUMN3 "Typ" - IDS_SHV_COLUMN4 "Modyfikacja" - IDS_SHV_COLUMN5 "Atrybuty" - IDS_SHV_COLUMN6 "WielkoÅÄ" - IDS_SHV_COLUMN7 "DostÄpna wielkoÅÄ" - IDS_SHV_COLUMN8 "Nazwa" - IDS_SHV_COLUMN9 "Komentarz" - IDS_SHV_COLUMN10 "WÅaÅciciel" - IDS_SHV_COLUMN11 "Grupa" - IDS_SHV_COLUMN12 "Nazwa pliku" - IDS_SHV_COLUMN13 "Kategoria" + IDS_SHV_COLUMN_NAME "Nazwa" + IDS_SHV_COLUMN_SIZE "WielkoÅÄ" + IDS_SHV_COLUMN_TYPE "Typ" + IDS_SHV_COLUMN_MODIFIED "Modyfikacja" + IDS_SHV_COLUMN_ATTRIBUTES "Atrybuty" + IDS_SHV_COLUMN_DISK_CAPACITY "WielkoÅÄ" + IDS_SHV_COLUMN_DISK_AVAILABLE "DostÄpna wielkoÅÄ" + IDS_SHV_COLUMN_OWNER "WÅaÅciciel" + IDS_SHV_COLUMN_GROUP "Grupa" + IDS_SHV_COLUMN_FILENAME "Nazwa pliku" + IDS_SHV_COLUMN_CATEGORY "Kategoria" IDS_SHV_COLUMN_DELFROM "Lokalizacja oryginalna" IDS_SHV_COLUMN_DELDATE "Data usuniÄcia" IDS_SHV_COLUMN_FONTTYPE "Czcionka" IDS_SHV_COLUMN_WORKGROUP "Grupa robocza" - IDS_SHV_NETWORKLOCATION "Lokalizacja sieciowa" + IDS_SHV_COLUMN_NETLOCATION "Lokalizacja sieciowa" IDS_SHV_COLUMN_DOCUMENTS "Dokumenty" IDS_SHV_COLUMN_STATUS "Stan" IDS_SHV_COLUMN_COMMENTS "Komentarze" Modified: trunk/reactos/dll/win32/shell32/lang/pt-BR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Arquivo" - IDS_SHV_COLUMN2 "Tamanho" - IDS_SHV_COLUMN3 "Tipo" - IDS_SHV_COLUMN4 "Modificado" - IDS_SHV_COLUMN5 "Atributos" - IDS_SHV_COLUMN6 "Tamanho" - IDS_SHV_COLUMN7 "DisponÃvel" - IDS_SHV_COLUMN8 "Nome" - IDS_SHV_COLUMN9 "Comentários" - IDS_SHV_COLUMN10 "Dono" - IDS_SHV_COLUMN11 "Grupo" - IDS_SHV_COLUMN12 "Nome do arquivo" - IDS_SHV_COLUMN13 "Categoria" + IDS_SHV_COLUMN_NAME "Nome" + IDS_SHV_COLUMN_SIZE "Tamanho" + IDS_SHV_COLUMN_TYPE "Tipo" + IDS_SHV_COLUMN_MODIFIED "Modificado" + IDS_SHV_COLUMN_ATTRIBUTES "Atributos" + IDS_SHV_COLUMN_DISK_CAPACITY "Tamanho" + IDS_SHV_COLUMN_DISK_AVAILABLE "DisponÃvel" + IDS_SHV_COLUMN_OWNER "Dono" + IDS_SHV_COLUMN_GROUP "Grupo" + IDS_SHV_COLUMN_FILENAME "Nome do arquivo" + IDS_SHV_COLUMN_CATEGORY "Categoria" IDS_SHV_COLUMN_DELFROM "Local de origem" IDS_SHV_COLUMN_DELDATE "Data apagado" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Grupo de Trabalho" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documentos" IDS_SHV_COLUMN_STATUS "Estado" IDS_SHV_COLUMN_COMMENTS "Comentários" Modified: trunk/reactos/dll/win32/shell32/lang/pt-PT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Ficheiro" - IDS_SHV_COLUMN2 "Tamanho" - IDS_SHV_COLUMN3 "Tipo" - IDS_SHV_COLUMN4 "Modificado" - IDS_SHV_COLUMN5 "propriedades" - IDS_SHV_COLUMN6 "Tamanho" - IDS_SHV_COLUMN7 "DisponÃvel" - IDS_SHV_COLUMN8 "Nome" - IDS_SHV_COLUMN9 "Comentários" - IDS_SHV_COLUMN10 "Dono" - IDS_SHV_COLUMN11 "Grupo" - IDS_SHV_COLUMN12 "Nome do ficheiro" - IDS_SHV_COLUMN13 "Categoria" + IDS_SHV_COLUMN_NAME "Nome" + IDS_SHV_COLUMN_SIZE "Tamanho" + IDS_SHV_COLUMN_TYPE "Tipo" + IDS_SHV_COLUMN_MODIFIED "Modificado" + IDS_SHV_COLUMN_ATTRIBUTES "propriedades" + IDS_SHV_COLUMN_DISK_CAPACITY "Tamanho" + IDS_SHV_COLUMN_DISK_AVAILABLE "DisponÃvel" + IDS_SHV_COLUMN_OWNER "Dono" + IDS_SHV_COLUMN_GROUP "Grupo" + IDS_SHV_COLUMN_FILENAME "Nome do ficheiro" + IDS_SHV_COLUMN_CATEGORY "Categoria" IDS_SHV_COLUMN_DELFROM "Localização original" IDS_SHV_COLUMN_DELDATE "Data da eliminação" IDS_SHV_COLUMN_FONTTYPE "Tipo de letra" IDS_SHV_COLUMN_WORKGROUP "Grupo de trabalho" - IDS_SHV_NETWORKLOCATION "localizações na rede" + IDS_SHV_COLUMN_NETLOCATION "localizações na rede" IDS_SHV_COLUMN_DOCUMENTS "Documentos" IDS_SHV_COLUMN_STATUS "Estado" IDS_SHV_COLUMN_COMMENTS "Commentários" Modified: trunk/reactos/dll/win32/shell32/lang/ro-RO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ro-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ro-RO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ro-RO.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -636,24 +636,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Nume" - IDS_SHV_COLUMN2 "Dimensiune" - IDS_SHV_COLUMN3 "Tip obiect" - IDS_SHV_COLUMN4 "DatÄ modificare" - IDS_SHV_COLUMN5 "Atribute" - IDS_SHV_COLUMN6 "Capacitate" - IDS_SHV_COLUMN7 "Disponibil" - IDS_SHV_COLUMN8 "Nume" - IDS_SHV_COLUMN9 "Comentarii" - IDS_SHV_COLUMN10 "Posesor" - IDS_SHV_COLUMN11 "Grup" - IDS_SHV_COLUMN12 "Nume fiÈier" - IDS_SHV_COLUMN13 "Categorie" + IDS_SHV_COLUMN_NAME "Nume" + IDS_SHV_COLUMN_SIZE "Dimensiune" + IDS_SHV_COLUMN_TYPE "Tip obiect" + IDS_SHV_COLUMN_MODIFIED "DatÄ modificare" + IDS_SHV_COLUMN_ATTRIBUTES "Atribute" + IDS_SHV_COLUMN_DISK_CAPACITY "Capacitate" + IDS_SHV_COLUMN_DISK_AVAILABLE "Disponibil" + IDS_SHV_COLUMN_OWNER "Posesor" + IDS_SHV_COLUMN_GROUP "Grup" + IDS_SHV_COLUMN_FILENAME "Nume fiÈier" + IDS_SHV_COLUMN_CATEGORY "Categorie" IDS_SHV_COLUMN_DELFROM "LocaÈie originalÄ" IDS_SHV_COLUMN_DELDATE "Data Ètergerii" IDS_SHV_COLUMN_FONTTYPE "Tip font" IDS_SHV_COLUMN_WORKGROUP "Grup de lucru" - IDS_SHV_NETWORKLOCATION "LocaÈie reÈea" + IDS_SHV_COLUMN_NETLOCATION "LocaÈie reÈea" IDS_SHV_COLUMN_DOCUMENTS "Documente" IDS_SHV_COLUMN_STATUS "Stare" IDS_SHV_COLUMN_COMMENTS "Comentarii" Modified: trunk/reactos/dll/win32/shell32/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ru-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -636,24 +636,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "ÐмÑ" - IDS_SHV_COLUMN2 "РазмеÑ" - IDS_SHV_COLUMN3 "Тип" - IDS_SHV_COLUMN4 "Ðзменен" - IDS_SHV_COLUMN5 "ÐÑÑибÑÑÑ" - IDS_SHV_COLUMN6 "ÐолнÑй обÑем" - IDS_SHV_COLUMN7 "Свободно" - IDS_SHV_COLUMN8 "Ðазвание" - IDS_SHV_COLUMN9 "ÐомменÑаÑий" - IDS_SHV_COLUMN10 "ÐладелеÑ" - IDS_SHV_COLUMN11 "ÐÑÑппа" - IDS_SHV_COLUMN12 "ÐÐ¼Ñ Ñайла" - IDS_SHV_COLUMN13 "ÐаÑегоÑиÑ" + IDS_SHV_COLUMN_NAME "Ðазвание" + IDS_SHV_COLUMN_SIZE "РазмеÑ" + IDS_SHV_COLUMN_TYPE "Тип" + IDS_SHV_COLUMN_MODIFIED "Ðзменен" + IDS_SHV_COLUMN_ATTRIBUTES "ÐÑÑибÑÑÑ" + IDS_SHV_COLUMN_DISK_CAPACITY "ÐолнÑй обÑем" + IDS_SHV_COLUMN_DISK_AVAILABLE "Свободно" + IDS_SHV_COLUMN_OWNER "ÐладелеÑ" + IDS_SHV_COLUMN_GROUP "ÐÑÑппа" + IDS_SHV_COLUMN_FILENAME "ÐÐ¼Ñ Ñайла" + IDS_SHV_COLUMN_CATEGORY "ÐаÑегоÑиÑ" IDS_SHV_COLUMN_DELFROM "ÐзнаÑалÑное ÑаÑположение" IDS_SHV_COLUMN_DELDATE "ÐаÑа ÑдалениÑ" IDS_SHV_COLUMN_FONTTYPE "Тип ÑÑиÑÑа" IDS_SHV_COLUMN_WORKGROUP "РабоÑÐ°Ñ Ð³ÑÑппа" - IDS_SHV_NETWORKLOCATION "СеÑевое ÑаÑположение" + IDS_SHV_COLUMN_NETLOCATION "СеÑевое ÑаÑположение" IDS_SHV_COLUMN_DOCUMENTS "ÐокÑменÑÑ" IDS_SHV_COLUMN_STATUS "СоÑÑоÑние" IDS_SHV_COLUMN_COMMENTS "ÐомменÑаÑии" Modified: trunk/reactos/dll/win32/shell32/lang/sk-SK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sk-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,27 +634,25 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Súbor" - IDS_SHV_COLUMN2 "VeľkosÅ¥" - IDS_SHV_COLUMN3 "Typ" - IDS_SHV_COLUMN4 "Modifikovaný" - IDS_SHV_COLUMN5 "Atribúty" - IDS_SHV_COLUMN6 "VeľkosÅ¥" - IDS_SHV_COLUMN7 "VeľkosÅ¥ k dispozÃcii" - IDS_SHV_COLUMN8 "Názov" //Name - IDS_SHV_COLUMN9 "Poznámky" //Comments - IDS_SHV_COLUMN10 "VlastnÃk" - IDS_SHV_COLUMN11 "Skupina" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Kategória" + IDS_SHV_COLUMN_NAME "Názov" //Name + IDS_SHV_COLUMN_SIZE "VeľkosÅ¥" + IDS_SHV_COLUMN_TYPE "Typ" + IDS_SHV_COLUMN_MODIFIED "Modifikovaný" + IDS_SHV_COLUMN_ATTRIBUTES "Atribúty" + IDS_SHV_COLUMN_DISK_CAPACITY "VeľkosÅ¥" + IDS_SHV_COLUMN_DISK_AVAILABLE "VeľkosÅ¥ k dispozÃcii" + IDS_SHV_COLUMN_OWNER "VlastnÃk" + IDS_SHV_COLUMN_GROUP "Skupina" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Kategória" IDS_SHV_COLUMN_DELFROM "Pôvod" //Pôvodné umiestnenie IDS_SHV_COLUMN_DELDATE "Odstránený" //Dátum zmazania IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Dokumenty" IDS_SHV_COLUMN_STATUS "Stav" - IDS_SHV_COLUMN_COMMENTS "Comments" + IDS_SHV_COLUMN_COMMENTS "Poznámky" //Comments IDS_SHV_COLUMN_LOCATION "Location" IDS_SHV_COLUMN_MODEL "Model" Modified: trunk/reactos/dll/win32/shell32/lang/sl-SI.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sl-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Datoteka" - IDS_SHV_COLUMN2 "Velikost" - IDS_SHV_COLUMN3 "Vrsta" - IDS_SHV_COLUMN4 "Spremenjena" - IDS_SHV_COLUMN5 "Atributi" - IDS_SHV_COLUMN6 "ToÄna velikost" - IDS_SHV_COLUMN7 "Prosto" - IDS_SHV_COLUMN8 "Name" - IDS_SHV_COLUMN9 "Comments" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "Filename" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "Name" + IDS_SHV_COLUMN_SIZE "Velikost" + IDS_SHV_COLUMN_TYPE "Vrsta" + IDS_SHV_COLUMN_MODIFIED "Spremenjena" + IDS_SHV_COLUMN_ATTRIBUTES "Atributi" + IDS_SHV_COLUMN_DISK_CAPACITY "ToÄna velikost" + IDS_SHV_COLUMN_DISK_AVAILABLE "Prosto" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "Filename" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Comments" Modified: trunk/reactos/dll/win32/shell32/lang/sq-AL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sq-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sq-AL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sq-AL.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -638,24 +638,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Dokument" - IDS_SHV_COLUMN2 "Masë" - IDS_SHV_COLUMN3 "Tipi" - IDS_SHV_COLUMN4 "Modifikuar" - IDS_SHV_COLUMN5 "Atribute" - IDS_SHV_COLUMN6 "Masë" - IDS_SHV_COLUMN7 "Masa në dispozicion" - IDS_SHV_COLUMN8 "Emri" - IDS_SHV_COLUMN9 "Komente" - IDS_SHV_COLUMN10 "Zotëruesi" - IDS_SHV_COLUMN11 "Grup" - IDS_SHV_COLUMN12 "Dokument" - IDS_SHV_COLUMN13 "Kategori" + IDS_SHV_COLUMN_NAME "Emri" + IDS_SHV_COLUMN_SIZE "Masë" + IDS_SHV_COLUMN_TYPE "Tipi" + IDS_SHV_COLUMN_MODIFIED "Modifikuar" + IDS_SHV_COLUMN_ATTRIBUTES "Atribute" + IDS_SHV_COLUMN_DISK_CAPACITY "Masë" + IDS_SHV_COLUMN_DISK_AVAILABLE "Masa në dispozicion" + IDS_SHV_COLUMN_OWNER "Zotëruesi" + IDS_SHV_COLUMN_GROUP "Grup" + IDS_SHV_COLUMN_FILENAME "Dokument" + IDS_SHV_COLUMN_CATEGORY "Kategori" IDS_SHV_COLUMN_DELFROM "Vendndodhja Origjinale" IDS_SHV_COLUMN_DELDATE "Data Fshirë" IDS_SHV_COLUMN_FONTTYPE "TipiFontit" IDS_SHV_COLUMN_WORKGROUP "Grupipunës" - IDS_SHV_NETWORKLOCATION "Vendndodhja Rrjetit" + IDS_SHV_COLUMN_NETLOCATION "Vendndodhja Rrjetit" IDS_SHV_COLUMN_DOCUMENTS "Dokumentë" IDS_SHV_COLUMN_STATUS "Gjëndje" IDS_SHV_COLUMN_COMMENTS "Komente" Modified: trunk/reactos/dll/win32/shell32/lang/sv-SE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sv-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Fil" - IDS_SHV_COLUMN2 "Storlek" - IDS_SHV_COLUMN3 "Typ" - IDS_SHV_COLUMN4 "Ãndrad" - IDS_SHV_COLUMN5 "Attribut" - IDS_SHV_COLUMN6 "Storlek" - IDS_SHV_COLUMN7 "Tillgänglig storlek" - IDS_SHV_COLUMN8 "Namn" - IDS_SHV_COLUMN9 "Kommentar" - IDS_SHV_COLUMN10 "Ãgare" - IDS_SHV_COLUMN11 "Grupp" - IDS_SHV_COLUMN12 "Filnamn" - IDS_SHV_COLUMN13 "Kategori" + IDS_SHV_COLUMN_NAME "Namn" + IDS_SHV_COLUMN_SIZE "Storlek" + IDS_SHV_COLUMN_TYPE "Typ" + IDS_SHV_COLUMN_MODIFIED "Ãndrad" + IDS_SHV_COLUMN_ATTRIBUTES "Attribut" + IDS_SHV_COLUMN_DISK_CAPACITY "Storlek" + IDS_SHV_COLUMN_DISK_AVAILABLE "Tillgänglig storlek" + IDS_SHV_COLUMN_OWNER "Ãgare" + IDS_SHV_COLUMN_GROUP "Grupp" + IDS_SHV_COLUMN_FILENAME "Filnamn" + IDS_SHV_COLUMN_CATEGORY "Kategori" IDS_SHV_COLUMN_DELFROM "Ursprungsplats" IDS_SHV_COLUMN_DELDATE "Borttagningsdatum" IDS_SHV_COLUMN_FONTTYPE "Teckensnittstyp" IDS_SHV_COLUMN_WORKGROUP "Arbetsgrupp" - IDS_SHV_NETWORKLOCATION "Nätverksplats" + IDS_SHV_COLUMN_NETLOCATION "Nätverksplats" IDS_SHV_COLUMN_DOCUMENTS "Dokument" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Kommentar" Modified: trunk/reactos/dll/win32/shell32/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/tr-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -636,24 +636,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Ad" - IDS_SHV_COLUMN2 "Boyut" - IDS_SHV_COLUMN3 "Tür" - IDS_SHV_COLUMN4 "DeÄiÅtirildi" - IDS_SHV_COLUMN5 "Ãz Nitelikler" - IDS_SHV_COLUMN6 "Boyut" - IDS_SHV_COLUMN7 "Kullanılabilir Boyut" - IDS_SHV_COLUMN8 "Ad" - IDS_SHV_COLUMN9 "Açıklamalar" - IDS_SHV_COLUMN10 "İye" - IDS_SHV_COLUMN11 "Ãbek" - IDS_SHV_COLUMN12 "Kütük Adı" - IDS_SHV_COLUMN13 "Ulam" + IDS_SHV_COLUMN_NAME "Ad" + IDS_SHV_COLUMN_SIZE "Boyut" + IDS_SHV_COLUMN_TYPE "Tür" + IDS_SHV_COLUMN_MODIFIED "DeÄiÅtirildi" + IDS_SHV_COLUMN_ATTRIBUTES "Ãz Nitelikler" + IDS_SHV_COLUMN_DISK_CAPACITY "Boyut" + IDS_SHV_COLUMN_DISK_AVAILABLE "Kullanılabilir Boyut" + IDS_SHV_COLUMN_OWNER "İye" + IDS_SHV_COLUMN_GROUP "Ãbek" + IDS_SHV_COLUMN_FILENAME "Kütük Adı" + IDS_SHV_COLUMN_CATEGORY "Ulam" IDS_SHV_COLUMN_DELFROM "Ãzgün Konum" IDS_SHV_COLUMN_DELDATE "Silinme Zamânı" IDS_SHV_COLUMN_FONTTYPE "Yazı Tipi Türü" IDS_SHV_COLUMN_WORKGROUP "ÃalıÅma Takımı" - IDS_SHV_NETWORKLOCATION "AÄ Konumu" + IDS_SHV_COLUMN_NETLOCATION "AÄ Konumu" IDS_SHV_COLUMN_DOCUMENTS "Belgeler" IDS_SHV_COLUMN_STATUS "Durum" IDS_SHV_COLUMN_COMMENTS "Açıklamalar" Modified: trunk/reactos/dll/win32/shell32/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/uk-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -634,24 +634,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "Файл" - IDS_SHV_COLUMN2 "РозмÑÑ" - IDS_SHV_COLUMN3 "Тип" - IDS_SHV_COLUMN4 "ÐмÑнено" - IDS_SHV_COLUMN5 "ÐÑÑибÑÑи" - IDS_SHV_COLUMN6 "РозмÑÑ" - IDS_SHV_COLUMN7 "ÐÑлÑний РозмÑÑ" - IDS_SHV_COLUMN8 "Ðм'Ñ" - IDS_SHV_COLUMN9 "ÐÑимÑÑка" - IDS_SHV_COLUMN10 "ÐлаÑник" - IDS_SHV_COLUMN11 "ÐÑÑпа" - IDS_SHV_COLUMN12 "Ðм'Ñ Ñайла" - IDS_SHV_COLUMN13 "ÐаÑегоÑÑÑ" + IDS_SHV_COLUMN_NAME "Ðм'Ñ" + IDS_SHV_COLUMN_SIZE "РозмÑÑ" + IDS_SHV_COLUMN_TYPE "Тип" + IDS_SHV_COLUMN_MODIFIED "ÐмÑнено" + IDS_SHV_COLUMN_ATTRIBUTES "ÐÑÑибÑÑи" + IDS_SHV_COLUMN_DISK_CAPACITY "РозмÑÑ" + IDS_SHV_COLUMN_DISK_AVAILABLE "ÐÑлÑний РозмÑÑ" + IDS_SHV_COLUMN_OWNER "ÐлаÑник" + IDS_SHV_COLUMN_GROUP "ÐÑÑпа" + IDS_SHV_COLUMN_FILENAME "Ðм'Ñ Ñайла" + IDS_SHV_COLUMN_CATEGORY "ÐаÑегоÑÑÑ" IDS_SHV_COLUMN_DELFROM "ÐÐ¸Ñ Ñдне ÑозÑаÑÑваннÑ" IDS_SHV_COLUMN_DELDATE "ÐаÑа видаленнÑ" IDS_SHV_COLUMN_FONTTYPE "Тип ÑÑиÑÑÑ" IDS_SHV_COLUMN_WORKGROUP "РобоÑа гÑÑпа" - IDS_SHV_NETWORKLOCATION "ÐеÑежне ÑозÑаÑÑваннÑ" + IDS_SHV_COLUMN_NETLOCATION "ÐеÑежне ÑозÑаÑÑваннÑ" IDS_SHV_COLUMN_DOCUMENTS "ÐокÑменÑи" IDS_SHV_COLUMN_STATUS "СÑан" IDS_SHV_COLUMN_COMMENTS "ÐÑимÑÑки" Modified: trunk/reactos/dll/win32/shell32/lang/zh-CN.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -641,24 +641,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "æä»¶" - IDS_SHV_COLUMN2 "大å°" - IDS_SHV_COLUMN3 "ç±»å" - IDS_SHV_COLUMN4 "ä¿®æ¹" - IDS_SHV_COLUMN5 "屿§" - IDS_SHV_COLUMN6 "使ç¨ç©ºé´" - IDS_SHV_COLUMN7 "å©ä½ç©ºé´" - IDS_SHV_COLUMN8 "åç§°" - IDS_SHV_COLUMN9 "è¯è®º" - IDS_SHV_COLUMN10 "ææè " - IDS_SHV_COLUMN11 "å°ç»" - IDS_SHV_COLUMN12 "æä»¶å" - IDS_SHV_COLUMN13 "ç±»å«" + IDS_SHV_COLUMN_NAME "åç§°" + IDS_SHV_COLUMN_SIZE "大å°" + IDS_SHV_COLUMN_TYPE "ç±»å" + IDS_SHV_COLUMN_MODIFIED "ä¿®æ¹" + IDS_SHV_COLUMN_ATTRIBUTES "屿§" + IDS_SHV_COLUMN_DISK_CAPACITY "使ç¨ç©ºé´" + IDS_SHV_COLUMN_DISK_AVAILABLE "å©ä½ç©ºé´" + IDS_SHV_COLUMN_OWNER "ææè " + IDS_SHV_COLUMN_GROUP "å°ç»" + IDS_SHV_COLUMN_FILENAME "æä»¶å" + IDS_SHV_COLUMN_CATEGORY "ç±»å«" IDS_SHV_COLUMN_DELFROM "åå§ä½ç½®" IDS_SHV_COLUMN_DELDATE "å 餿¥æ" IDS_SHV_COLUMN_FONTTYPE "åä½ç±»å" IDS_SHV_COLUMN_WORKGROUP "å·¥ä½ç»" - IDS_SHV_NETWORKLOCATION "ç½ç»ä½ç½®" + IDS_SHV_COLUMN_NETLOCATION "ç½ç»ä½ç½®" IDS_SHV_COLUMN_DOCUMENTS "æä»¶" IDS_SHV_COLUMN_STATUS "ç¶æ" IDS_SHV_COLUMN_COMMENTS "è¯è®º" Modified: trunk/reactos/dll/win32/shell32/lang/zh-TW.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-…
============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -642,24 +642,22 @@ STRINGTABLE BEGIN /* columns in the shellview */ - IDS_SHV_COLUMN1 "æªæ¡" - IDS_SHV_COLUMN2 "大å°" - IDS_SHV_COLUMN3 "é¡å" - IDS_SHV_COLUMN4 "已修æ¹" - IDS_SHV_COLUMN5 "屬æ§" - IDS_SHV_COLUMN6 "使ç¨ç©ºé" - IDS_SHV_COLUMN7 "å©é¤ç©ºé" - IDS_SHV_COLUMN8 "å稱" - IDS_SHV_COLUMN9 "Comments" - IDS_SHV_COLUMN10 "Owner" - IDS_SHV_COLUMN11 "Group" - IDS_SHV_COLUMN12 "æªæ¡å稱" - IDS_SHV_COLUMN13 "Category" + IDS_SHV_COLUMN_NAME "å稱" + IDS_SHV_COLUMN_SIZE "大å°" + IDS_SHV_COLUMN_TYPE "é¡å" + IDS_SHV_COLUMN_MODIFIED "已修æ¹" + IDS_SHV_COLUMN_ATTRIBUTES "屬æ§" + IDS_SHV_COLUMN_DISK_CAPACITY "使ç¨ç©ºé" + IDS_SHV_COLUMN_DISK_AVAILABLE "å©é¤ç©ºé" + IDS_SHV_COLUMN_OWNER "Owner" + IDS_SHV_COLUMN_GROUP "Group" + IDS_SHV_COLUMN_FILENAME "æªæ¡å稱" + IDS_SHV_COLUMN_CATEGORY "Category" IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_WORKGROUP "Workgroup" - IDS_SHV_NETWORKLOCATION "Network Location" + IDS_SHV_COLUMN_NETLOCATION "Network Location" IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_COMMENTS "Comments" Modified: trunk/reactos/dll/win32/shell32/shresdef.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shresdef…
============================================================================== --- trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] Mon Jun 12 10:01:28 2017 @@ -51,19 +51,27 @@ /* Strings */ /* Column titles for the shellview */ -#define IDS_SHV_COLUMN1 7 -#define IDS_SHV_COLUMN2 8 -#define IDS_SHV_COLUMN3 9 -#define IDS_SHV_COLUMN4 10 -#define IDS_SHV_COLUMN5 11 -#define IDS_SHV_COLUMN6 12 -#define IDS_SHV_COLUMN7 13 -#define IDS_SHV_COLUMN8 14 -#define IDS_SHV_COLUMN9 15 -#define IDS_SHV_COLUMN10 16 -#define IDS_SHV_COLUMN11 17 +#define IDS_SHV_COLUMN_NAME 7 +#define IDS_SHV_COLUMN_SIZE 8 +#define IDS_SHV_COLUMN_TYPE 9 +#define IDS_SHV_COLUMN_MODIFIED 10 +#define IDS_SHV_COLUMN_ATTRIBUTES 11 +#define IDS_SHV_COLUMN_DISK_CAPACITY 12 +#define IDS_SHV_COLUMN_DISK_AVAILABLE 13 +#define IDS_SHV_COLUMN_OWNER 16 +#define IDS_SHV_COLUMN_GROUP 17 #define IDS_SHV_COLUMN_DELFROM 18 #define IDS_SHV_COLUMN_DELDATE 19 +#define IDS_SHV_COLUMN_FONTTYPE 311 +#define IDS_SHV_COLUMN_FILENAME 312 +#define IDS_SHV_COLUMN_CATEGORY 313 +#define IDS_SHV_COLUMN_WORKGROUP 314 +#define IDS_SHV_COLUMN_NETLOCATION 315 +#define IDS_SHV_COLUMN_DOCUMENTS 319 +#define IDS_SHV_COLUMN_STATUS 320 +#define IDS_SHV_COLUMN_COMMENTS 321 +#define IDS_SHV_COLUMN_LOCATION 322 +#define IDS_SHV_COLUMN_MODEL 323 #define IDS_DESKTOP 20 @@ -190,19 +198,9 @@ #define IDS_FILE_FOLDER 308 #define IDS_CREATELINK 309 #define IDS_INSTALLNEWFONT 310 -#define IDS_SHV_COLUMN_FONTTYPE 311 -#define IDS_SHV_COLUMN12 312 -#define IDS_SHV_COLUMN13 313 -#define IDS_SHV_COLUMN_WORKGROUP 314 -#define IDS_SHV_NETWORKLOCATION 315 #define IDS_COPY 316 #define IDS_DELETE 317 #define IDS_PROPERTIES 318 -#define IDS_SHV_COLUMN_DOCUMENTS 319 -#define IDS_SHV_COLUMN_STATUS 320 -#define IDS_SHV_COLUMN_COMMENTS 321 -#define IDS_SHV_COLUMN_LOCATION 322 -#define IDS_SHV_COLUMN_MODEL 323 #define IDS_CUT 324 #define IDS_RESTORE 325 #define IDS_DEFAULT_CLUSTER_SIZE 326
7 years, 10 months
1
0
0
0
[hbelusca] 75010: [USETUP]: Implement work-in-progress code that, when upgrading an existing ReactOS installation, verifies whether the (existing) system registry hives are valid (by loading & unlo...
by hbelusca@svn.reactos.org
Author: hbelusca Date: Mon Jun 12 00:09:16 2017 New Revision: 75010 URL:
http://svn.reactos.org/svn/reactos?rev=75010&view=rev
Log: [USETUP]: Implement work-in-progress code that, when upgrading an existing ReactOS installation, verifies whether the (existing) system registry hives are valid (by loading & unloading them, this allows using the built-in repair functionality if needed), or not. If a given hive cannot be repaired successfully, it is backed up (with a '.brk' extension, "brk" as "broken"), then is marked up for recreation. When all hives have been checked, if there are any hive that needs to be recreated, we recreate its hive file, mount it, but we do *NOT* mount the other valid existing hives for update. We create instead dummy registry hives so that we can actually use, as the update code, the same one as the one used when fully creating the registry hives for a clean installation (of course, this choice can be improved later on). The update code (i.e. the same as the registry clean-install one) then adds the registry keys & values, either putting them in the dummy registry hives (the ones that we don't want to recreate) or in the registry hive that is recreated. At the end, the (re)created registry hives are flushed back to disk, and a copy of them (under a '.sav' extension) are created, so that they can be used for restoration purposes if 2nd-stage (and up) goes berserk. Extra fixes: - Use the correct structure member field when initializing the 'InstallDir' variable, when performing an upgrade. - CreateNestedKey() should be better analysed to see whether it correctly creates the full registry path compatible with volatile/non-volatile keys (under inspection). Modified: branches/setup_improvements/base/setup/usetup/interface/usetup.c branches/setup_improvements/base/setup/usetup/registry.c branches/setup_improvements/base/setup/usetup/registry.h Modified: branches/setup_improvements/base/setup/usetup/interface/usetup.c URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/interface/usetup.c [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/interface/usetup.c [iso-8859-1] Mon Jun 12 00:09:16 2017 @@ -551,6 +551,7 @@ wcscpy(UnattendInstallationDirectory, Value); IsUnattendedSetup = TRUE; + DPRINT("Running unattended setup\n"); /* Search for 'MBRInstallType' in the 'Unattend' section */ if (SetupFindFirstLineW(UnattendInf, L"Unattend", L"MBRInstallType", &Context)) @@ -589,8 +590,6 @@ } SetupCloseInfFile(UnattendInf); - - DPRINT("Running unattended setup\n"); } @@ -1590,7 +1589,7 @@ if (size < RequiredPartitionDiskSpace) { - /* partition is too small so ask for another partition */ + /* Partition is too small so ask for another one */ DPRINT1("Partition is too small (size: %I64u MB), required disk space is %lu MB\n", size, RequiredPartitionDiskSpace); return FALSE; } @@ -3346,7 +3345,7 @@ if (IsUnattendedSetup) wcscpy(InstallDir, UnattendInstallationDirectory); else if (RepairUpdateFlag) - wcscpy(InstallDir, CurrentInstallation->SystemRoot); + wcscpy(InstallDir, CurrentInstallation->PathComponent); // SystemNtPath else wcscpy(InstallDir, L"\\ReactOS"); @@ -4049,20 +4048,34 @@ static PAGE_NUMBER RegistryPage(PINPUT_RECORD Ir) { + NTSTATUS Status; INFCONTEXT InfContext; PWSTR Action; PWSTR File; PWSTR Section; BOOLEAN Delete; - NTSTATUS Status; MUIDisplayPage(REGISTRY_PAGE); if (RepairUpdateFlag) { - // FIXME! - DPRINT1("FIXME: Updating / repairing the registry is NOT implemented yet!\n"); - return SUCCESS_PAGE; + BOOLEAN ShouldUpdateRegistry = FALSE; + + DPRINT1("TODO: Updating / repairing the registry is not completely implemented yet!\n"); + + /* Verify the registry hives and check whether we need to update or repair any of them */ + Status = VerifyRegistryHives(&DestinationPath, &ShouldUpdateRegistry); + if (!NT_SUCCESS(Status)) + { + DPRINT1("VerifyRegistryHives failed, Status 0x%08lx\n", Status); + ShouldUpdateRegistry = FALSE; + } + if (!ShouldUpdateRegistry) + { + DPRINT1("No need to update the registry\n"); + // return SUCCESS_PAGE; + goto Quit; + } } /* Initialize the registry and setup the default installation hives */ @@ -4079,7 +4092,7 @@ else /*************************************/ { - /* Something else (correct) failed */ + /* Something else failed */ MUIDisplayError(ERROR_CREATE_HIVE, Ir, POPUP_WAIT_ENTER); } return QUIT_PAGE; @@ -4091,9 +4104,8 @@ if (!SetupFindFirstLineW(SetupInf, L"HiveInfs.Install", NULL, &InfContext)) { DPRINT1("SetupFindFirstLine() failed\n"); - RegCleanupRegistry(); MUIDisplayError(ERROR_FIND_REGISTRY, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } do @@ -4108,27 +4120,19 @@ break; // Hackfix if (!_wcsicmp(Action, L"AddReg")) - { Delete = FALSE; - } else if (!_wcsicmp(Action, L"DelReg")) - { Delete = TRUE; - } else - { continue; - } CONSOLE_SetStatusText(MUIGetString(STRING_IMPORTFILE), File); if (!ImportRegistryFile(File, Section, LanguageId, Delete)) { DPRINT1("Importing %S failed\n", File); - - RegCleanupRegistry(); MUIDisplayError(ERROR_IMPORT_HIVE, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } } while (SetupFindNextLine(&InfContext, &InfContext)); @@ -4136,35 +4140,31 @@ CONSOLE_SetStatusText(MUIGetString(STRING_DISPLAYETTINGSUPDATE)); if (!ProcessDisplayRegistry(SetupInf, DisplayList)) { - RegCleanupRegistry(); MUIDisplayError(ERROR_UPDATE_DISPLAY_SETTINGS, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } /* Set the locale */ CONSOLE_SetStatusText(MUIGetString(STRING_LOCALESETTINGSUPDATE)); if (!ProcessLocaleRegistry(LanguageList)) { - RegCleanupRegistry(); MUIDisplayError(ERROR_UPDATE_LOCALESETTINGS, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } /* Add keyboard layouts */ CONSOLE_SetStatusText(MUIGetString(STRING_ADDKBLAYOUTS)); if (!AddKeyboardLayouts()) { - RegCleanupRegistry(); MUIDisplayError(ERROR_ADDING_KBLAYOUTS, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } /* Set GeoID */ if (!SetGeoID(MUIGetGeoID())) { - RegCleanupRegistry(); MUIDisplayError(ERROR_UPDATE_GEOID, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } if (!IsUnattendedSetup) @@ -4173,9 +4173,8 @@ CONSOLE_SetStatusText(MUIGetString(STRING_KEYBOARDSETTINGSUPDATE)); if (!ProcessKeyboardLayoutRegistry(LayoutList)) { - RegCleanupRegistry(); MUIDisplayError(ERROR_UPDATE_KBSETTINGS, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } } @@ -4183,26 +4182,34 @@ CONSOLE_SetStatusText(MUIGetString(STRING_CODEPAGEINFOUPDATE)); if (!AddCodePage()) { - RegCleanupRegistry(); MUIDisplayError(ERROR_ADDING_CODEPAGE, Ir, POPUP_WAIT_ENTER); - return QUIT_PAGE; + goto Cleanup; } /* Set the default pagefile entry */ SetDefaultPagefile(DestinationDriveLetter); /* Update the mounted devices list */ + // FIXME: This should technically be done by mountmgr (if AutoMount is enabled)! SetMountedDeviceValues(PartitionList); +Cleanup: // // TODO: Unload all the registry stuff, perform cleanup, - // and copy the created hive files into .sav ones. + // and copy the created hive files into .sav files. // - RegCleanupRegistry(); - - CONSOLE_SetStatusText(MUIGetString(STRING_DONE)); - - return BOOT_LOADER_PAGE; + RegCleanupRegistry(&DestinationPath); + +Quit: + if (NT_SUCCESS(Status)) + { + CONSOLE_SetStatusText(MUIGetString(STRING_DONE)); + return BOOT_LOADER_PAGE; + } + else + { + return QUIT_PAGE; + } } Modified: branches/setup_improvements/base/setup/usetup/registry.c URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/registry.c [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/registry.c [iso-8859-1] Mon Jun 12 00:09:16 2017 @@ -61,6 +61,9 @@ /* FUNCTIONS ****************************************************************/ +#define REGISTRY_SETUP_MACHINE L"\\Registry\\Machine\\SYSTEM\\USetup_Machine\\" +#define REGISTRY_SETUP_USER L"\\Registry\\Machine\\SYSTEM\\USetup_User\\" + typedef struct _ROOT_KEY { PCWSTR Name; @@ -70,11 +73,10 @@ ROOT_KEY RootKeys[] = { - // L"\\Registry\\Machine\\SYSTEM\\USetup_Machine\\SOFTWARE\\Classes\\" - { L"HKCR", L"\\Registry\\Machine\\USetup_SOFTWARE\\Classes\\", NULL }, /* "\\Registry\\Machine\\SOFTWARE\\Classes\\" */ // HKEY_CLASSES_ROOT - { L"HKCU", L"\\Registry\\User\\USetup_DEFAULT\\" , NULL }, /* "\\Registry\\User\\.DEFAULT\\" */ // HKEY_CURRENT_USER - { L"HKLM", L"\\Registry\\Machine\\SYSTEM\\USetup_Machine\\" , NULL }, /* "\\Registry\\Machine\\" */ // HKEY_LOCAL_MACHINE - { L"HKU" , L"\\Registry\\Machine\\SYSTEM\\USetup_User\\" , NULL }, /* "\\Registry\\User\\" */ // HKEY_USERS + { L"HKCR", REGISTRY_SETUP_MACHINE L"SOFTWARE\\Classes\\", NULL }, /* "\\Registry\\Machine\\SOFTWARE\\Classes\\" */ // HKEY_CLASSES_ROOT + { L"HKCU", REGISTRY_SETUP_USER L".DEFAULT\\" , NULL }, /* "\\Registry\\User\\.DEFAULT\\" */ // HKEY_CURRENT_USER + { L"HKLM", REGISTRY_SETUP_MACHINE , NULL }, /* "\\Registry\\Machine\\" */ // HKEY_LOCAL_MACHINE + { L"HKU" , REGISTRY_SETUP_USER , NULL }, /* "\\Registry\\User\\" */ // HKEY_USERS #if 0 { L"HKR", NULL, NULL }, #endif @@ -403,10 +405,17 @@ return TRUE; } +/* + * This function is similar to the one in dlls/win32/advapi32/reg/reg.c + * TODO: I should review both of them very carefully, because they may need + * some adjustments in their NtCreateKey calls, especially for CreateOptions + * stuff etc... + */ NTSTATUS CreateNestedKey(PHANDLE KeyHandle, ACCESS_MASK DesiredAccess, - POBJECT_ATTRIBUTES ObjectAttributes) + POBJECT_ATTRIBUTES ObjectAttributes, + ULONG CreateOptions) { OBJECT_ATTRIBUTES LocalObjectAttributes; UNICODE_STRING LocalKeyName; @@ -421,11 +430,16 @@ ObjectAttributes, 0, NULL, - 0, + CreateOptions, &Disposition); DPRINT("NtCreateKey(%wZ) called (Status %lx)\n", ObjectAttributes->ObjectName, Status); if (Status != STATUS_OBJECT_NAME_NOT_FOUND) + { + if (!NT_SUCCESS(Status)) + DPRINT1("CreateNestedKey: NtCreateKey(%wZ) failed (Status %lx)\n", ObjectAttributes->ObjectName, Status); + return Status; + } /* Copy object attributes */ RtlCopyMemory(&LocalObjectAttributes, @@ -439,55 +453,60 @@ /* Remove the last part of the key name and try to create the key again. */ while (Status == STATUS_OBJECT_NAME_NOT_FOUND) { - Ptr = wcsrchr (LocalKeyName.Buffer, '\\'); + Ptr = wcsrchr(LocalKeyName.Buffer, '\\'); if (Ptr == NULL || Ptr == LocalKeyName.Buffer) { Status = STATUS_UNSUCCESSFUL; break; } *Ptr = (WCHAR)0; - LocalKeyName.Length = wcslen (LocalKeyName.Buffer) * sizeof(WCHAR); + LocalKeyName.Length = wcslen(LocalKeyName.Buffer) * sizeof(WCHAR); + + Status = NtCreateKey(&LocalKeyHandle, + KEY_CREATE_SUB_KEY, + &LocalObjectAttributes, + 0, + NULL, + REG_OPTION_NON_VOLATILE, + &Disposition); + DPRINT("NtCreateKey(%wZ) called (Status %lx)\n", &LocalKeyName, Status); + if (!NT_SUCCESS(Status) && Status != STATUS_OBJECT_NAME_NOT_FOUND) + DPRINT1("CreateNestedKey: NtCreateKey(%wZ) failed (Status %lx)\n", LocalObjectAttributes.ObjectName, Status); + } + + if (!NT_SUCCESS(Status)) + { + RtlFreeUnicodeString(&LocalKeyName); + return Status; + } + + /* Add removed parts of the key name and create them too. */ + while (TRUE) + { + if (LocalKeyName.Length == FullNameLength) + { + Status = STATUS_SUCCESS; + *KeyHandle = LocalKeyHandle; + break; + } + NtClose(LocalKeyHandle); + + LocalKeyName.Buffer[LocalKeyName.Length / sizeof(WCHAR)] = L'\\'; + LocalKeyName.Length = wcslen(LocalKeyName.Buffer) * sizeof(WCHAR); Status = NtCreateKey(&LocalKeyHandle, KEY_ALL_ACCESS, &LocalObjectAttributes, 0, NULL, - 0, - &Disposition); - DPRINT("NtCreateKey(%wZ) called (Status %lx)\n", &LocalKeyName, Status); - } - - if (!NT_SUCCESS(Status)) - { - RtlFreeUnicodeString (&LocalKeyName); - return Status; - } - - /* Add removed parts of the key name and create them too. */ - while (TRUE) - { - if (LocalKeyName.Length == FullNameLength) - { - Status = STATUS_SUCCESS; - *KeyHandle = LocalKeyHandle; - break; - } - NtClose(LocalKeyHandle); - - LocalKeyName.Buffer[LocalKeyName.Length / sizeof(WCHAR)] = L'\\'; - LocalKeyName.Length = wcslen (LocalKeyName.Buffer) * sizeof(WCHAR); - - Status = NtCreateKey(&LocalKeyHandle, - KEY_ALL_ACCESS, - &LocalObjectAttributes, - 0, - NULL, - 0, + CreateOptions, &Disposition); DPRINT("NtCreateKey(%wZ) called (Status %lx)\n", &LocalKeyName, Status); if (!NT_SUCCESS(Status)) + { + DPRINT1("CreateNestedKey: NtCreateKey(%wZ) failed (Status %lx)\n", LocalObjectAttributes.ObjectName, Status); break; + } } RtlFreeUnicodeString(&LocalKeyName); @@ -562,7 +581,8 @@ { Status = CreateNestedKey(&KeyHandle, KEY_ALL_ACCESS, - &ObjectAttributes); + &ObjectAttributes, + REG_OPTION_NON_VOLATILE); if (!NT_SUCCESS(Status)) { DPRINT1("CreateNestedKey(%wZ) failed (Status %lx)\n", &Name, Status); @@ -651,29 +671,86 @@ /* * Should be called under privileges */ -// static -NTSTATUS +static NTSTATUS CreateRegistryFile( IN PUNICODE_STRING InstallPath, IN PCWSTR RegistryKey, - IN HANDLE ProtoKeyHandle) -{ + IN BOOLEAN IsHiveNew, + IN HANDLE ProtoKeyHandle +/* + IN PUCHAR Descriptor, + IN ULONG DescriptorLength +*/ + ) +{ + /* '.old' is for old valid hives, while '.brk' is for old broken hives */ + static PCWSTR Extensions[] = {L"old", L"brk"}; + NTSTATUS Status; HANDLE FileHandle; UNICODE_STRING FileName; OBJECT_ATTRIBUTES ObjectAttributes; IO_STATUS_BLOCK IoStatusBlock; + PCWSTR Extension; WCHAR PathBuffer[MAX_PATH]; - - /* Create the file */ + WCHAR PathBuffer2[MAX_PATH]; + CombinePaths(PathBuffer, ARRAYSIZE(PathBuffer), 3, InstallPath->Buffer, L"System32\\config", RegistryKey); + + Extension = Extensions[IsHiveNew ? 0 : 1]; + + // + // FIXME: The best, actually, would be to rename (move) the existing + // System32\config\RegistryKey file to System32\config\RegistryKey.old, + // and if it already existed some System32\config\RegistryKey.old, we should + // first rename this one into System32\config\RegistryKey_N.old before + // performing the original rename. + // + + /* Check whether the registry hive file already existed, and if so, rename it */ + if (DoesFileExist(NULL, PathBuffer)) + { + // UINT i; + + DPRINT1("Registry hive '%S' already exists, rename it\n", PathBuffer); + + // i = 1; + /* Try first by just appending the '.old' extension */ + StringCchPrintfW(PathBuffer2, ARRAYSIZE(PathBuffer2), L"%s.%s", PathBuffer, Extension); +#if 0 + while (DoesFileExist(NULL, PathBuffer2)) + { + /* An old file already exists, increments its index, but not too much */ + if (i <= 0xFFFF) + { + /* Append '_N.old' extension */ + StringCchPrintfW(PathBuffer2, ARRAYSIZE(PathBuffer2), L"%s_%lu.%s", PathBuffer, i, Extension); + ++i; + } + else + { + /* + * Too many old files exist, we will rename the file + * using the name of the oldest one. + */ + StringCchPrintfW(PathBuffer2, ARRAYSIZE(PathBuffer2), L"%s.%s", PathBuffer, Extension); + break; + } + } +#endif + + /* Now rename the file (force the move) */ + Status = SetupMoveFile(PathBuffer, PathBuffer2, MOVEFILE_REPLACE_EXISTING); + } + + /* Create the file */ RtlInitUnicodeString(&FileName, PathBuffer); InitializeObjectAttributes(&ObjectAttributes, &FileName, OBJ_CASE_INSENSITIVE, - NULL, // Could have been installpath, etc... - NULL); + NULL, // Could have been installpath, etc... + NULL); // Descriptor Status = NtCreateFile(&FileHandle, FILE_GENERIC_WRITE, @@ -775,18 +852,19 @@ /* * Should be called under privileges */ -// static -NTSTATUS +static NTSTATUS ConnectRegistry( IN HKEY RootKey OPTIONAL, + IN PCWSTR RegMountPoint, // IN HANDLE RootDirectory OPTIONAL, IN PUNICODE_STRING InstallPath, - IN PCWSTR RegistryKey, - // IN PUCHAR Descriptor, - // IN ULONG DescriptorLength, - IN PCWSTR RegMountPoint) -{ - NTSTATUS Status; + IN PCWSTR RegistryKey +/* + IN PUCHAR Descriptor, + IN ULONG DescriptorLength +*/ + ) +{ UNICODE_STRING KeyName, FileName; OBJECT_ATTRIBUTES KeyObjectAttributes; OBJECT_ATTRIBUTES FileObjectAttributes; @@ -797,7 +875,7 @@ &KeyName, OBJ_CASE_INSENSITIVE, RootKey, - NULL); + NULL); // Descriptor CombinePaths(PathBuffer, ARRAYSIZE(PathBuffer), 3, InstallPath->Buffer, L"System32\\config", RegistryKey); @@ -808,25 +886,190 @@ NULL, // RootDirectory, NULL); -#if 0 - IN PCMHIVE HiveToConnect; - /* - * Add security to the root key. - * NOTE: One can implement this using the lpSecurityAttributes - * parameter of RegCreateKeyExW. - */ - Status = CmiCreateSecurityKey(&HiveToConnect->Hive, - HiveToConnect->Hive.BaseBlock->RootCell, - Descriptor, DescriptorLength); - if (!NT_SUCCESS(Status)) - DPRINT1("Failed to add security for root key '%S'\n", Path); -#endif - /* Mount the registry hive in the registry namespace */ - Status = NtLoadKey(&KeyObjectAttributes, &FileObjectAttributes); + return NtLoadKey(&KeyObjectAttributes, &FileObjectAttributes); +} + + +static NTSTATUS +VerifyRegistryHive( + // IN HKEY RootKey OPTIONAL, + // // IN HANDLE RootDirectory OPTIONAL, + IN PUNICODE_STRING InstallPath, + IN PCWSTR RegistryKey /* , + IN PCWSTR RegMountPoint */) +{ + NTSTATUS Status; + UNICODE_STRING KeyName; + OBJECT_ATTRIBUTES KeyObjectAttributes; + + /* Try to mount the specified registry hive */ + Status = ConnectRegistry(NULL, + L"\\Registry\\Machine\\USetup_VerifyHive", + InstallPath, + RegistryKey + /* NULL, 0 */); + if (!NT_SUCCESS(Status)) + { + DPRINT1("ConnectRegistry(%S) failed, Status 0x%08lx\n", RegistryKey, Status); + } + + DPRINT1("VerifyRegistryHive: ConnectRegistry(%S) returns Status 0x%08lx\n", RegistryKey, Status); + + // + // TODO: Check the Status error codes: STATUS_SUCCESS, STATUS_REGISTRY_RECOVERED, + // STATUS_REGISTRY_HIVE_RECOVERED, STATUS_REGISTRY_CORRUPT, STATUS_REGISTRY_IO_FAILED, + // STATUS_NOT_REGISTRY_FILE, STATUS_CANNOT_LOAD_REGISTRY_FILE ; + //(STATUS_HIVE_UNLOADED) ; STATUS_SYSTEM_HIVE_TOO_LARGE + // + + if (Status == STATUS_REGISTRY_HIVE_RECOVERED) // NT_SUCCESS is still FALSE in this case! + DPRINT1("VerifyRegistryHive: Registry hive %S was recovered but some data may be lost (Status 0x%08lx)\n", RegistryKey, Status); + + if (!NT_SUCCESS(Status)) + { + DPRINT1("VerifyRegistryHive: Registry hive %S is corrupted (Status 0x%08lx)\n", RegistryKey, Status); + return Status; + } + + if (Status == STATUS_REGISTRY_RECOVERED) + DPRINT1("VerifyRegistryHive: Registry hive %S succeeded recovered (Status 0x%08lx)\n", RegistryKey, Status); + + /* Unmount the hive */ + InitializeObjectAttributes(&KeyObjectAttributes, + &KeyName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + + RtlInitUnicodeString(&KeyName, L"\\Registry\\Machine\\USetup_VerifyHive"); + Status = NtUnloadKey(&KeyObjectAttributes); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtUnloadKey(%S, %wZ) failed, Status 0x%08lx\n", RegistryKey, &KeyName, Status); + } return Status; } + + +typedef enum _HIVE_UPDATE_STATE +{ + Create, // Create a new hive file and save possibly existing old one with a .old extension. + Repair, // Re-create a new hive file and save possibly existing old one with a .brk extension. + Update // Hive update, do not need to be recreated. +} HIVE_UPDATE_STATE; + +typedef struct _HIVE_LIST_ENTRY +{ + PCWSTR HiveName; // HiveFileName; + PCWSTR HiveRegistryPath; // HiveRegMountPoint; + HANDLE PredefKeyHandle; + PCWSTR RegSymLink; + HIVE_UPDATE_STATE State; + // PUCHAR SecurityDescriptor; + // ULONG SecurityDescriptorLength; +} HIVE_LIST_ENTRY, *PHIVE_LIST_ENTRY; + +#define NUMBER_OF_STANDARD_REGISTRY_HIVES 3 + +HIVE_LIST_ENTRY RegistryHives[/*NUMBER_OF_STANDARD_REGISTRY_HIVES*/] = +{ + { L"SYSTEM" , L"\\Registry\\Machine\\USetup_SYSTEM" , HKEY_LOCAL_MACHINE, L"SYSTEM" , Create /* , SystemSecurity , sizeof(SystemSecurity) */ }, + { L"SOFTWARE", L"\\Registry\\Machine\\USetup_SOFTWARE", HKEY_LOCAL_MACHINE, L"SOFTWARE", Create /* , SoftwareSecurity, sizeof(SoftwareSecurity) */ }, + { L"DEFAULT" , L"\\Registry\\User\\USetup_DEFAULT" , HKEY_USERS , L".DEFAULT", Create /* , SystemSecurity , sizeof(SystemSecurity) */ }, + +// { L"BCD" , L"\\Registry\\Machine\\USetup_BCD", HKEY_LOCAL_MACHINE, L"BCD00000000", Create /* , BcdSecurity , sizeof(BcdSecurity) */ }, +}; +C_ASSERT(_countof(RegistryHives) == NUMBER_OF_STANDARD_REGISTRY_HIVES); + +#define NUMBER_OF_SECURITY_REGISTRY_HIVES 2 + +/** These hives are created by LSASS during 2nd stage setup */ +HIVE_LIST_ENTRY SecurityRegistryHives[/*NUMBER_OF_SECURITY_REGISTRY_HIVES*/] = +{ + { L"SAM" , L"\\Registry\\Machine\\USetup_SAM" , HKEY_LOCAL_MACHINE, L"SAM" , Create /* , SystemSecurity , sizeof(SystemSecurity) */ }, + { L"SECURITY", L"\\Registry\\Machine\\USetup_SECURITY", HKEY_LOCAL_MACHINE, L"SECURITY", Create /* , NULL , 0 */ }, +}; +C_ASSERT(_countof(SecurityRegistryHives) == NUMBER_OF_SECURITY_REGISTRY_HIVES); + + +NTSTATUS +VerifyRegistryHives( + IN PUNICODE_STRING InstallPath, + OUT PBOOLEAN ShouldUpdateRegistry) +{ + NTSTATUS Status; + BOOLEAN PrivilegeSet[2] = {FALSE, FALSE}; + UINT i; + + /* Suppose first the registry hives do not have to be updated/recreated */ + *ShouldUpdateRegistry = FALSE; + + /* Acquire restore privilege */ + Status = RtlAdjustPrivilege(SE_RESTORE_PRIVILEGE, TRUE, FALSE, &PrivilegeSet[0]); + if (!NT_SUCCESS(Status)) + { + DPRINT1("RtlAdjustPrivilege(SE_RESTORE_PRIVILEGE) failed (Status 0x%08lx)\n", Status); + /* Exit prematurely here.... */ + return Status; + } + + /* Acquire backup privilege */ + Status = RtlAdjustPrivilege(SE_BACKUP_PRIVILEGE, TRUE, FALSE, &PrivilegeSet[1]); + if (!NT_SUCCESS(Status)) + { + DPRINT1("RtlAdjustPrivilege(SE_BACKUP_PRIVILEGE) failed (Status 0x%08lx)\n", Status); + RtlAdjustPrivilege(SE_RESTORE_PRIVILEGE, PrivilegeSet[0], FALSE, &PrivilegeSet[0]); + /* Exit prematurely here.... */ + return Status; + } + + for (i = 0; i < ARRAYSIZE(RegistryHives); ++i) + { + Status = VerifyRegistryHive(InstallPath, RegistryHives[i].HiveName); + if (!NT_SUCCESS(Status)) + { + DPRINT1("Registry hive '%S' needs repair!\n", RegistryHives[i].HiveName); + RegistryHives[i].State = Repair; + *ShouldUpdateRegistry = TRUE; + } + else + { + RegistryHives[i].State = Update; + } + } + + /** These hives are created by LSASS during 2nd stage setup */ + for (i = 0; i < ARRAYSIZE(SecurityRegistryHives); ++i) + { + Status = VerifyRegistryHive(InstallPath, SecurityRegistryHives[i].HiveName); + if (!NT_SUCCESS(Status)) + { + DPRINT1("Registry hive '%S' needs repair!\n", SecurityRegistryHives[i].HiveName); + SecurityRegistryHives[i].State = Repair; + /* + * Note that it's not the role of the 1st-stage installer to fix + * the security hives. This should be done at 2nd-stage installation + * by LSASS. + */ + } + else + { + SecurityRegistryHives[i].State = Update; + } + } + + /* Reset the status (we succeeded in checking all the hives) */ + Status = STATUS_SUCCESS; + + /* Remove restore and backup privileges */ + RtlAdjustPrivilege(SE_BACKUP_PRIVILEGE, PrivilegeSet[1], FALSE, &PrivilegeSet[1]); + RtlAdjustPrivilege(SE_RESTORE_PRIVILEGE, PrivilegeSet[0], FALSE, &PrivilegeSet[0]); + + return Status; +} + NTSTATUS RegInitializeRegistry( @@ -839,25 +1082,6 @@ BOOLEAN PrivilegeSet[2] = {FALSE, FALSE}; ULONG Disposition; UINT i; - PCWSTR RegistryKeys[] = - { - L"SYSTEM", - L"SOFTWARE", - L"DEFAULT", // L".DEFAULT", - // L"SAM", - // L"SECURITY", - // L"BCD00000000", - }; - -#if 0 - /* Initialize the current session registry */ - Status = NtInitializeRegistry(CM_BOOT_FLAG_SETUP); - if (!NT_SUCCESS(Status)) - { - DPRINT1("NtInitializeRegistry() failed (Status %lx)\n", Status); - return Status; - } -#endif /* Acquire restore privilege */ Status = RtlAdjustPrivilege(SE_RESTORE_PRIVILEGE, TRUE, FALSE, &PrivilegeSet[0]); @@ -887,8 +1111,7 @@ * See
https://github.com/libyal/winreg-kb/blob/master/documentation/Registry%20fi…
* for more information. */ - RtlInitUnicodeString(&KeyName, - L"\\Registry\\Machine\\SYSTEM\\$$$PROTO.HIV"); + RtlInitUnicodeString(&KeyName, L"\\Registry\\Machine\\SYSTEM\\$$$PROTO.HIV"); InitializeObjectAttributes(&ObjectAttributes, &KeyName, OBJ_CASE_INSENSITIVE, @@ -908,14 +1131,18 @@ } NtFlushKey(KeyHandle); - for (i = 0; i < ARRAYSIZE(RegistryKeys); ++i) - { + for (i = 0; i < ARRAYSIZE(RegistryHives); ++i) + { + if (RegistryHives[i].State != Create && RegistryHives[i].State != Repair) + continue; + Status = CreateRegistryFile(InstallPath, - RegistryKeys[i], + RegistryHives[i].HiveName, + RegistryHives[i].State != Repair, // RegistryHives[i].State == Create, KeyHandle); if (!NT_SUCCESS(Status)) { - DPRINT1("CreateRegistryFile(%S) failed, Status 0x%08lx\n", RegistryKeys[i], Status); + DPRINT1("CreateRegistryFile(%S) failed, Status 0x%08lx\n", RegistryHives[i].HiveName, Status); /* Exit prematurely here.... */ /* That is now done, clean everything up! */ NtDeleteKey(KeyHandle); @@ -930,7 +1157,7 @@ /* - * Prepare the installation roots. Since we cannot create real registry keys + * Prepare the registry root keys. Since we cannot create real registry keys * inside the master keys (\Registry, \Registry\Machine or \Registry\User), * we need to perform some SymLink tricks instead. */ @@ -948,7 +1175,7 @@ &ObjectAttributes, 0, NULL, - REG_OPTION_VOLATILE, + REG_OPTION_NON_VOLATILE, // REG_OPTION_VOLATILE, // FIXME! &Disposition); if (!NT_SUCCESS(Status)) { @@ -970,7 +1197,7 @@ &ObjectAttributes, 0, NULL, - REG_OPTION_VOLATILE, + REG_OPTION_NON_VOLATILE, // REG_OPTION_VOLATILE, // FIXME! &Disposition); if (!NT_SUCCESS(Status)) { @@ -978,74 +1205,63 @@ // return Status; } RootKeys[GetPredefKeyIndex(HKEY_USERS)].Handle = KeyHandle; - /* * Now properly mount the offline hive files */ - - /* Create SYSTEM key */ - Status = - ConnectRegistry(NULL, - InstallPath, - RegistryKeys[0], - // SystemSecurity, sizeof(SystemSecurity), - L"\\Registry\\Machine\\USetup_SYSTEM"); - if (!NT_SUCCESS(Status)) - { - DPRINT1("ConnectRegistry(SYSTEM) failed, Status 0x%08lx\n", Status); - } - - /* Create the 'HKLM\SYSTEM' symlink to this key */ - if (!CmpLinkKeyToHive(RootKeys[GetPredefKeyIndex(HKEY_LOCAL_MACHINE)].Handle, - L"SYSTEM", - L"\\Registry\\Machine\\USetup_SYSTEM")) - { - DPRINT1("CmpLinkKeyToHive(SYSTEM) failed!\n"); - } - - - /* Create SOFTWARE key */ - Status = - ConnectRegistry(NULL, - InstallPath, - RegistryKeys[1], - // SoftwareSecurity, sizeof(SoftwareSecurity), - L"\\Registry\\Machine\\USetup_SOFTWARE"); - if (!NT_SUCCESS(Status)) - { - DPRINT1("ConnectRegistry(SOFTWARE) failed, Status 0x%08lx\n", Status); - } - - /* Create the 'HKLM\Software' symlink to this key */ - if (!CmpLinkKeyToHive(RootKeys[GetPredefKeyIndex(HKEY_LOCAL_MACHINE)].Handle, - L"Software", - L"\\Registry\\Machine\\USetup_SOFTWARE")) - { - DPRINT1("CmpLinkKeyToHive(SOFTWARE) failed!\n"); - } - - - /* Create DEFAULT key */ - Status = - ConnectRegistry(NULL, - InstallPath, - RegistryKeys[2], - // SystemSecurity, sizeof(SystemSecurity), - L"\\Registry\\User\\USetup_DEFAULT"); - if (!NT_SUCCESS(Status)) - { - DPRINT1("ConnectRegistry(DEFAULT) failed, Status 0x%08lx\n", Status); - } - - /* Create the 'HKU\.DEFAULT' symlink to this key */ - if (!CmpLinkKeyToHive(RootKeys[GetPredefKeyIndex(HKEY_USERS)].Handle, - L".DEFAULT", - L"\\Registry\\User\\USetup_DEFAULT")) - { - DPRINT1("CmpLinkKeyToHive(DEFAULT) failed!\n"); - } + for (i = 0; i < ARRAYSIZE(RegistryHives); ++i) + { + // if (RegistryHives[i].State != Create && RegistryHives[i].State != Repair) + // continue; + + if (RegistryHives[i].State == Create || RegistryHives[i].State == Repair) + { + Status = ConnectRegistry(NULL, + RegistryHives[i].HiveRegistryPath, + InstallPath, + RegistryHives[i].HiveName + /* SystemSecurity, sizeof(SystemSecurity) */); + if (!NT_SUCCESS(Status)) + { + DPRINT1("ConnectRegistry(%S) failed, Status 0x%08lx\n", RegistryHives[i].HiveName, Status); + } + + /* Create the registry symlink to this key */ + if (!CmpLinkKeyToHive(RootKeys[GetPredefKeyIndex(RegistryHives[i].PredefKeyHandle)].Handle, + RegistryHives[i].RegSymLink, + RegistryHives[i].HiveRegistryPath)) + { + DPRINT1("CmpLinkKeyToHive(%S) failed!\n", RegistryHives[i].HiveName); + } + } + else + { + /* Create *DUMMY* volatile hives just to make the update procedure work */ + + RtlInitUnicodeString(&KeyName, RegistryHives[i].RegSymLink); + InitializeObjectAttributes(&ObjectAttributes, + &KeyName, + OBJ_CASE_INSENSITIVE, + RootKeys[GetPredefKeyIndex(RegistryHives[i].PredefKeyHandle)].Handle, + NULL); + KeyHandle = NULL; + Status = NtCreateKey(&KeyHandle, + KEY_ALL_ACCESS, + &ObjectAttributes, + 0, + NULL, + REG_OPTION_NON_VOLATILE, // REG_OPTION_VOLATILE, // FIXME! + &Disposition); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtCreateKey(%wZ) failed (Status 0x%08lx)\n", &KeyName, Status); + // return Status; + } + NtClose(KeyHandle); + } + } + /* HKCU is a handle to 'HKU\.DEFAULT' */ #if 0 @@ -1091,12 +1307,13 @@ NULL); #endif KeyHandle = NULL; + /* We use NtCreateKey instead of NtOpenKey because Software\Classes doesn't exist originally */ Status = NtCreateKey(&KeyHandle, KEY_ALL_ACCESS, &ObjectAttributes, 0, NULL, - 0, + REG_OPTION_NON_VOLATILE, &Disposition); if (!NT_SUCCESS(Status)) { @@ -1111,31 +1328,11 @@ RootKeys[GetPredefKeyIndex(HKEY_CLASSES_ROOT)].Handle = KeyHandle; -#if 0 - /* Create SAM key */ - ConnectRegistry(NULL, - &SamHive, - // SystemSecurity, sizeof(SystemSecurity), - L"\\Registry\\Machine\\USetup_SAM"); - - /* Create SECURITY key */ - ConnectRegistry(NULL, - &SecurityHive, - // NULL, 0, - L"\\Registry\\Machine\\USetup_SECURITY"); - - /* Create BCD key */ - ConnectRegistry(NULL, - &BcdHive, - // BcdSecurity, sizeof(BcdSecurity), - L"\\Registry\\Machine\\USetup_BCD00000000"); -#endif - Status = STATUS_SUCCESS; /* Create the 'HKLM\SYSTEM\ControlSet001' key */ - // L"\\Registry\\Machine\\SYSTEM\\USetup_Machine\\SYSTEM\\ControlSet001" + // REGISTRY_SETUP_MACHINE L"SYSTEM\\ControlSet001" RtlInitUnicodeString(&KeyName, L"SYSTEM\\ControlSet001"); InitializeObjectAttributes(&ObjectAttributes, &KeyName, @@ -1165,10 +1362,13 @@ /* Create the 'HKLM\SYSTEM\CurrentControlSet' symlink */ if (!CmpLinkKeyToHive(RootKeys[GetPredefKeyIndex(HKEY_LOCAL_MACHINE)].Handle, L"SYSTEM\\CurrentControlSet", - L"\\Registry\\Machine\\SYSTEM\\USetup_Machine\\SYSTEM\\ControlSet001")) + REGISTRY_SETUP_MACHINE L"SYSTEM\\ControlSet001")) { DPRINT1("CmpLinkKeyToHive(CurrentControlSet) failed!\n"); } + + + Status = STATUS_SUCCESS; Quit: @@ -1180,18 +1380,22 @@ } VOID -RegCleanupRegistry(VOID) +RegCleanupRegistry( + IN PUNICODE_STRING InstallPath) { NTSTATUS Status; UNICODE_STRING KeyName; OBJECT_ATTRIBUTES KeyObjectAttributes; BOOLEAN PrivilegeSet[2] = {FALSE, FALSE}; - UCHAR i; + UINT i; + WCHAR SrcPath[MAX_PATH]; + WCHAR DstPath[MAX_PATH]; for (i = 0; i < ARRAYSIZE(RootKeys); ++i) { if (RootKeys[i].Handle) { + NtFlushKey(RootKeys[i].Handle); NtClose(RootKeys[i].Handle); RootKeys[i].Handle = NULL; } @@ -1222,25 +1426,38 @@ NULL, NULL); - RtlInitUnicodeString(&KeyName, L"\\Registry\\Machine\\USetup_SYSTEM"); - Status = NtUnloadKey(&KeyObjectAttributes); - - RtlInitUnicodeString(&KeyName, L"\\Registry\\Machine\\USetup_SOFTWARE"); - Status = NtUnloadKey(&KeyObjectAttributes); - - RtlInitUnicodeString(&KeyName, L"\\Registry\\User\\USetup_DEFAULT"); - Status = NtUnloadKey(&KeyObjectAttributes); - -#if 0 - RtlInitUnicodeString(&KeyName, L"\\Registry\\Machine\\USetup_SAM"); - Status = NtUnloadKey(&KeyObjectAttributes); - - RtlInitUnicodeString(&KeyName, L"\\Registry\\Machine\\USetup_SECURITY"); - Status = NtUnloadKey(&KeyObjectAttributes); - - RtlInitUnicodeString(&KeyName, L"\\Registry\\Machine\\USetup_BCD00000000"); - Status = NtUnloadKey(&KeyObjectAttributes); -#endif + for (i = 0; i < ARRAYSIZE(RegistryHives); ++i) + { + if (RegistryHives[i].State != Create && RegistryHives[i].State != Repair) + continue; + + RtlInitUnicodeString(&KeyName, RegistryHives[i].HiveRegistryPath); + Status = NtUnloadKey(&KeyObjectAttributes); + DPRINT1("Unmounting '%S' %s\n", RegistryHives[i].HiveRegistryPath, NT_SUCCESS(Status) ? "succeeded" : "failed"); + } + + // + // RegBackupRegistry() + // + /* Now backup the hives into .sav files */ + for (i = 0; i < ARRAYSIZE(RegistryHives); ++i) + { + if (RegistryHives[i].State != Create && RegistryHives[i].State != Repair) + continue; + + CombinePaths(SrcPath, ARRAYSIZE(SrcPath), 3, + InstallPath->Buffer, L"System32\\config", RegistryHives[i].HiveName); + StringCchCopyW(DstPath, ARRAYSIZE(DstPath), SrcPath); + StringCchCatW(DstPath, ARRAYSIZE(DstPath), L".sav"); + + DPRINT1("Copy hive: %S ==> %S\n", SrcPath, DstPath); + Status = SetupCopyFile(SrcPath, DstPath, FALSE); + if (!NT_SUCCESS(Status)) + { + DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status); + // return Status; + } + } /* Remove restore and backup privileges */ RtlAdjustPrivilege(SE_BACKUP_PRIVILEGE, PrivilegeSet[1], FALSE, &PrivilegeSet[1]); Modified: branches/setup_improvements/base/setup/usetup/registry.h URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/registry.h [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/registry.h [iso-8859-1] Mon Jun 12 00:09:16 2017 @@ -44,11 +44,17 @@ BOOLEAN Delete); NTSTATUS +VerifyRegistryHives( + IN PUNICODE_STRING InstallPath, + OUT PBOOLEAN ShouldUpdateRegistry); + +NTSTATUS RegInitializeRegistry( IN PUNICODE_STRING InstallPath); VOID -RegCleanupRegistry(VOID); +RegCleanupRegistry( + IN PUNICODE_STRING InstallPath); VOID SetDefaultPagefile(
7 years, 10 months
1
0
0
0
[hbelusca] 75009: [USETUP]: Addendum to r75008: Adjust the code that calls SetupCopyFile().
by hbelusca@svn.reactos.org
Author: hbelusca Date: Sun Jun 11 23:59:24 2017 New Revision: 75009 URL:
http://svn.reactos.org/svn/reactos?rev=75009&view=rev
Log: [USETUP]: Addendum to r75008: Adjust the code that calls SetupCopyFile(). Modified: branches/setup_improvements/base/setup/usetup/bootsup.c branches/setup_improvements/base/setup/usetup/filequeue.c Modified: branches/setup_improvements/base/setup/usetup/bootsup.c URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/bootsup.c [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/bootsup.c [iso-8859-1] Sun Jun 11 23:59:24 2017 @@ -1755,7 +1755,7 @@ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer, L"freeldr.sys"); DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath); - Status = SetupCopyFile(SrcPath, DstPath); + Status = SetupCopyFile(SrcPath, DstPath, FALSE); if (!NT_SUCCESS(Status)) { DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status); @@ -2066,7 +2066,7 @@ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer, L"freeldr.sys"); DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath); - Status = SetupCopyFile(SrcPath, DstPath); + Status = SetupCopyFile(SrcPath, DstPath, FALSE); if (!NT_SUCCESS(Status)) { DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status); @@ -2231,7 +2231,7 @@ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, FloppyDevice.Buffer, L"freeldr.sys"); DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath); - Status = SetupCopyFile(SrcPath, DstPath); + Status = SetupCopyFile(SrcPath, DstPath, FALSE); if (!NT_SUCCESS(Status)) { DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status); Modified: branches/setup_improvements/base/setup/usetup/filequeue.c URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/filequeue.c [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/filequeue.c [iso-8859-1] Sun Jun 11 23:59:24 2017 @@ -428,7 +428,7 @@ else { /* Copy the file */ - Status = SetupCopyFile(FileSrcPath, FileDstPath); + Status = SetupCopyFile(FileSrcPath, FileDstPath, FALSE); } if (!NT_SUCCESS(Status))
7 years, 10 months
1
0
0
0
[hbelusca] 75008: [USETUP]: Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already-existing SetupCopyFile()) in order to implement moving / renaming existing files. Will be use...
by hbelusca@svn.reactos.org
Author: hbelusca Date: Sun Jun 11 23:58:43 2017 New Revision: 75008 URL:
http://svn.reactos.org/svn/reactos?rev=75008&view=rev
Log: [USETUP]: Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already-existing SetupCopyFile()) in order to implement moving / renaming existing files. Will be used soon to make backups of system files, like the registry hive files just freshly created. - Make the SetupCopyFile() function closer to its win32 counterpart. Modified: branches/setup_improvements/base/setup/usetup/filesup.c branches/setup_improvements/base/setup/usetup/filesup.h Modified: branches/setup_improvements/base/setup/usetup/filesup.c URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/filesup.c [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/filesup.c [iso-8859-1] Sun Jun 11 23:58:43 2017 @@ -144,26 +144,115 @@ } NTSTATUS +SetupDeleteFile( + IN PCWSTR FileName, + IN BOOLEAN ForceDelete) // ForceDelete can be used to delete read-only files +{ + NTSTATUS Status; + UNICODE_STRING NtPathU; + OBJECT_ATTRIBUTES ObjectAttributes; + IO_STATUS_BLOCK IoStatusBlock; + HANDLE FileHandle; + FILE_DISPOSITION_INFORMATION FileDispInfo; + BOOLEAN RetryOnce = FALSE; + + /* Open the directory name that was passed in */ + RtlInitUnicodeString(&NtPathU, FileName); + InitializeObjectAttributes(&ObjectAttributes, + &NtPathU, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + +Retry: // We go back there once if RetryOnce == TRUE + Status = NtOpenFile(&FileHandle, + DELETE | FILE_READ_ATTRIBUTES | + (RetryOnce ? FILE_WRITE_ATTRIBUTES : 0), + &ObjectAttributes, + &IoStatusBlock, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_NON_DIRECTORY_FILE | FILE_OPEN_FOR_BACKUP_INTENT); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtOpenFile failed with Status 0x%08lx\n", Status); + return Status; + } + + if (RetryOnce) + { + FILE_BASIC_INFORMATION FileInformation; + + Status = NtQueryInformationFile(FileHandle, + &IoStatusBlock, + &FileInformation, + sizeof(FILE_BASIC_INFORMATION), + FileBasicInformation); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtQueryInformationFile failed with Status 0x%08lx\n", Status); + NtClose(FileHandle); + return Status; + } + + FileInformation.FileAttributes = FILE_ATTRIBUTE_NORMAL; + Status = NtSetInformationFile(FileHandle, + &IoStatusBlock, + &FileInformation, + sizeof(FILE_BASIC_INFORMATION), + FileBasicInformation); + NtClose(FileHandle); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtSetInformationFile failed with Status 0x%08lx\n", Status); + return Status; + } + } + + /* Ask for the file to be deleted */ + FileDispInfo.DeleteFile = TRUE; + Status = NtSetInformationFile(FileHandle, + &IoStatusBlock, + &FileDispInfo, + sizeof(FILE_DISPOSITION_INFORMATION), + FileDispositionInformation); + NtClose(FileHandle); + + if (!NT_SUCCESS(Status)) + DPRINT1("Deletion of file '%S' failed, Status 0x%08lx\n", FileName, Status); + + // FIXME: Check the precise value of Status! + if (!NT_SUCCESS(Status) && ForceDelete && !RetryOnce) + { + /* Retry once */ + RetryOnce = TRUE; + goto Retry; + } + + /* Return result to the caller */ + return Status; +} + +NTSTATUS SetupCopyFile( - PWCHAR SourceFileName, - PWCHAR DestinationFileName) + IN PCWSTR SourceFileName, + IN PCWSTR DestinationFileName, + IN BOOLEAN FailIfExists) { + NTSTATUS Status; + UNICODE_STRING FileName; OBJECT_ATTRIBUTES ObjectAttributes; HANDLE FileHandleSource; HANDLE FileHandleDest; - static IO_STATUS_BLOCK IoStatusBlock; + IO_STATUS_BLOCK IoStatusBlock; FILE_STANDARD_INFORMATION FileStandard; FILE_BASIC_INFORMATION FileBasic; ULONG RegionSize; - UNICODE_STRING FileName; - NTSTATUS Status; - PVOID SourceFileMap = 0; HANDLE SourceFileSection; + PVOID SourceFileMap = NULL; SIZE_T SourceSectionSize = 0; LARGE_INTEGER ByteOffset; - RtlInitUnicodeString(&FileName, - SourceFileName); + RtlInitUnicodeString(&FileName, SourceFileName); InitializeObjectAttributes(&ObjectAttributes, &FileName, @@ -195,7 +284,8 @@ } Status = NtQueryInformationFile(FileHandleSource, - &IoStatusBlock,&FileBasic, + &IoStatusBlock, + &FileBasic, sizeof(FILE_BASIC_INFORMATION), FileBasicInformation); if (!NT_SUCCESS(Status)) @@ -226,15 +316,14 @@ &SourceSectionSize, ViewUnmap, 0, - PAGE_READONLY ); + PAGE_READONLY); if (!NT_SUCCESS(Status)) { DPRINT1("NtMapViewOfSection failed: %x, %S\n", Status, SourceFileName); goto closesrcsec; } - RtlInitUnicodeString(&FileName, - DestinationFileName); + RtlInitUnicodeString(&FileName, DestinationFileName); InitializeObjectAttributes(&ObjectAttributes, &FileName, @@ -247,9 +336,9 @@ &ObjectAttributes, &IoStatusBlock, NULL, - FILE_ATTRIBUTE_NORMAL, + FileBasic.FileAttributes, // FILE_ATTRIBUTE_NORMAL, 0, - FILE_OVERWRITE_IF, + FailIfExists ? FILE_CREATE : FILE_OVERWRITE_IF, FILE_NO_INTERMEDIATE_BUFFERING | FILE_SEQUENTIAL_ONLY | FILE_SYNCHRONOUS_IO_NONALERT, @@ -275,7 +364,8 @@ NULL); if (!NT_SUCCESS(Status)) { - DPRINT1("NtWriteFile failed: %x:%x, iosb: %p src: %p, size: %x\n", Status, IoStatusBlock.Status, &IoStatusBlock, SourceFileMap, RegionSize); + DPRINT1("NtWriteFile failed: %x:%x, iosb: %p src: %p, size: %x\n", + Status, IoStatusBlock.Status, &IoStatusBlock, SourceFileMap, RegionSize); goto closedest; } @@ -291,7 +381,7 @@ goto closedest; } - /* shorten the file back to it's real size after completing the write */ + /* Shorten the file back to its real size after completing the write */ Status = NtSetInformationFile(FileHandleDest, &IoStatusBlock, &FileStandard.EndOfFile, @@ -315,6 +405,125 @@ NtClose(FileHandleSource); done: + return Status; +} + +/* + * Synchronized with its kernel32 counterpart, but we don't manage reparse points here. + */ +NTSTATUS +SetupMoveFile( + IN PCWSTR ExistingFileName, + IN PCWSTR NewFileName, + IN ULONG Flags) +{ + NTSTATUS Status; + IO_STATUS_BLOCK IoStatusBlock; + OBJECT_ATTRIBUTES ObjectAttributes; + PFILE_RENAME_INFORMATION RenameInfo; + UNICODE_STRING NewPathU, ExistingPathU; + HANDLE SourceHandle = NULL; + BOOLEAN ReplaceIfExists; + + RtlInitUnicodeString(&ExistingPathU, ExistingFileName); + RtlInitUnicodeString(&NewPathU, NewFileName); + + _SEH2_TRY + { + ReplaceIfExists = !!(Flags & MOVEFILE_REPLACE_EXISTING); + + /* Unless we manage a proper opening, we'll attempt to reopen without reparse support */ + InitializeObjectAttributes(&ObjectAttributes, + &ExistingPathU, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + /* Attempt to open source file */ + Status = NtOpenFile(&SourceHandle, + FILE_READ_ATTRIBUTES | DELETE | SYNCHRONIZE, + &ObjectAttributes, + &IoStatusBlock, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + FILE_OPEN_FOR_BACKUP_INTENT | ((Flags & MOVEFILE_WRITE_THROUGH) ? FILE_WRITE_THROUGH : 0)); + if (!NT_SUCCESS(Status)) + { + if (Status != STATUS_INVALID_PARAMETER) + { + _SEH2_LEAVE; + } + } + + /* At that point, we MUST have a source handle */ + ASSERT(SourceHandle); + + /* Allocate renaming buffer and fill it */ + RenameInfo = RtlAllocateHeap(RtlGetProcessHeap(), 0, NewPathU.Length + sizeof(FILE_RENAME_INFORMATION)); + if (RenameInfo == NULL) + { + Status = STATUS_NO_MEMORY; + _SEH2_LEAVE; + } + + RtlCopyMemory(&RenameInfo->FileName, NewPathU.Buffer, NewPathU.Length); + RenameInfo->ReplaceIfExists = ReplaceIfExists; + RenameInfo->RootDirectory = NULL; + RenameInfo->FileNameLength = NewPathU.Length; + + /* Attempt to rename the file */ + Status = NtSetInformationFile(SourceHandle, + &IoStatusBlock, + RenameInfo, + NewPathU.Length + sizeof(FILE_RENAME_INFORMATION), + FileRenameInformation); + RtlFreeHeap(RtlGetProcessHeap(), 0, RenameInfo); + if (NT_SUCCESS(Status)) + { + /* If it succeeded, all fine, quit */ + _SEH2_LEAVE; + } + /* + * If we failed for any other reason than not the same device, fail. + * If we failed because of different devices, only allow renaming + * if user allowed copy. + */ + if (Status != STATUS_NOT_SAME_DEVICE || !(Flags & MOVEFILE_COPY_ALLOWED)) + { + /* ReactOS hack! To be removed once all FSD have proper renaming support + * Just leave status to error and leave + */ + if (Status == STATUS_NOT_IMPLEMENTED) + { + DPRINT1("Forcing copy, renaming not supported by FSD\n"); + } + else + { + _SEH2_LEAVE; + } + } + + /* Close the source file */ + NtClose(SourceHandle); + SourceHandle = NULL; + + /* Perform the file copy */ + Status = SetupCopyFile(ExistingFileName, + NewFileName, + !ReplaceIfExists); + + /* If it succeeded, delete the source file */ + if (NT_SUCCESS(Status)) + { + /* Force-delete files even if read-only */ + SetupDeleteFile(ExistingFileName, TRUE); + } + } + _SEH2_FINALLY + { + if (SourceHandle) + NtClose(SourceHandle); + } + _SEH2_END; + return Status; } Modified: branches/setup_improvements/base/setup/usetup/filesup.h URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/filesup.h [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/filesup.h [iso-8859-1] Sun Jun 11 23:58:43 2017 @@ -13,9 +13,36 @@ PWCHAR DirectoryName); NTSTATUS +SetupDeleteFile( + IN PCWSTR FileName, + IN BOOLEAN ForceDelete); // ForceDelete can be used to delete read-only files + +NTSTATUS SetupCopyFile( - PWCHAR SourceFileName, - PWCHAR DestinationFileName); + IN PCWSTR SourceFileName, + IN PCWSTR DestinationFileName, + IN BOOLEAN FailIfExists); + +#ifndef _WINBASE_ + +#define MOVEFILE_REPLACE_EXISTING 1 +#define MOVEFILE_COPY_ALLOWED 2 +#define MOVEFILE_WRITE_THROUGH 8 + +#endif + +// ACHTUNG! HAXX FIXME!! +#define _SEH2_TRY +#define _SEH2_LEAVE goto __SEH2_FINALLY__label; +#define _SEH2_FINALLY __SEH2_FINALLY__label: +#define _SEH2_END + + +NTSTATUS +SetupMoveFile( + IN PCWSTR ExistingFileName, + IN PCWSTR NewFileName, + IN ULONG Flags); NTSTATUS SetupExtractFile(
7 years, 10 months
1
0
0
0
[hbelusca] 75007: [USETUP]: Explicitely use the REG_OPTION_(NON_)VOLATILE flags in NtCreateKey calls.
by hbelusca@svn.reactos.org
Author: hbelusca Date: Sun Jun 11 23:47:11 2017 New Revision: 75007 URL:
http://svn.reactos.org/svn/reactos?rev=75007&view=rev
Log: [USETUP]: Explicitely use the REG_OPTION_(NON_)VOLATILE flags in NtCreateKey calls. Modified: branches/setup_improvements/base/setup/usetup/interface/devinst.c branches/setup_improvements/base/setup/usetup/mui.c Modified: branches/setup_improvements/base/setup/usetup/interface/devinst.c URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/interface/devinst.c [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/interface/devinst.c [iso-8859-1] Sun Jun 11 23:47:11 2017 @@ -97,7 +97,7 @@ /* Create service key */ RtlInitUnicodeString(&StringU, Driver); InitializeObjectAttributes(&ObjectAttributes, &StringU, 0, hServices, NULL); - Status = NtCreateKey(&hService, KEY_SET_VALUE, &ObjectAttributes, 0, NULL, 0, &Disposition); + Status = NtCreateKey(&hService, KEY_SET_VALUE, &ObjectAttributes, 0, NULL, REG_OPTION_NON_VOLATILE, &Disposition); if (!NT_SUCCESS(Status)) { DPRINT1("NtCreateKey('%wZ') failed with status 0x%08x\n", &StringU, Status); @@ -341,7 +341,7 @@ } InitializeObjectAttributes(&ObjectAttributes, &ServicesU, OBJ_CASE_INSENSITIVE, NULL, NULL); - Status = NtCreateKey(&hServices, KEY_ALL_ACCESS, &ObjectAttributes, 0, NULL, 0, NULL); + Status = NtCreateKey(&hServices, KEY_ALL_ACCESS, &ObjectAttributes, 0, NULL, REG_OPTION_NON_VOLATILE, NULL); if (!NT_SUCCESS(Status)) { DPRINT1("NtCreateKey('%wZ') failed with status 0x%08lx\n", &ServicesU, Status); Modified: branches/setup_improvements/base/setup/usetup/mui.c URL:
http://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/u…
============================================================================== --- branches/setup_improvements/base/setup/usetup/mui.c [iso-8859-1] (original) +++ branches/setup_improvements/base/setup/usetup/mui.c [iso-8859-1] Sun Jun 11 23:47:11 2017 @@ -309,7 +309,7 @@ &ObjectAttributes, 0, NULL, - 0, + REG_OPTION_NON_VOLATILE, &Disposition); if(!NT_SUCCESS(Status)) @@ -401,7 +401,7 @@ &ObjectAttributes, 0, NULL, - 0, + REG_OPTION_NON_VOLATILE, &Disposition); if(NT_SUCCESS(Status)) @@ -433,7 +433,7 @@ &ObjectAttributes, 0, NULL, - 0, + REG_OPTION_NON_VOLATILE, &Disposition); if (!NT_SUCCESS(Status)) @@ -454,7 +454,7 @@ &ObjectAttributes, 0, NULL, - 0, + REG_OPTION_NON_VOLATILE, &Disposition); if(!NT_SUCCESS(Status))
7 years, 10 months
1
0
0
0
[pschweitzer] 75006: [NTOSKRNL] Implement SystemExtendedHandleInformation based on SystemHandleInformation. To be improved... Passes ntdll_winetest:info. CORE-13368
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Sun Jun 11 17:32:56 2017 New Revision: 75006 URL:
http://svn.reactos.org/svn/reactos?rev=75006&view=rev
Log: [NTOSKRNL] Implement SystemExtendedHandleInformation based on SystemHandleInformation. To be improved... Passes ntdll_winetest:info. CORE-13368 Modified: trunk/reactos/ntoskrnl/ex/sysinfo.c Modified: trunk/reactos/ntoskrnl/ex/sysinfo.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/sysinfo.c?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/ex/sysinfo.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ex/sysinfo.c [iso-8859-1] Sun Jun 11 17:32:56 2017 @@ -2375,24 +2375,133 @@ /* Class 64 - Extended handle information */ QSI_DEF(SystemExtendedHandleInformation) { - PSYSTEM_HANDLE_INFORMATION_EX HandleInformation = (PSYSTEM_HANDLE_INFORMATION_EX)Buffer; - - DPRINT1("NtQuerySystemInformation - SystemExtendedHandleInformation not implemented\n"); + PSYSTEM_HANDLE_INFORMATION_EX HandleInformation; + PLIST_ENTRY NextTableEntry; + PHANDLE_TABLE HandleTable; + PHANDLE_TABLE_ENTRY HandleTableEntry; + EXHANDLE Handle; + ULONG Index = 0; + NTSTATUS Status; + PMDL Mdl; + PAGED_CODE(); + + DPRINT("NtQuerySystemInformation - SystemExtendedHandleInformation\n"); /* Set initial required buffer size */ *ReqSize = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handle); - /* Validate input size */ + /* Check user's buffer size */ if (Size < *ReqSize) { return STATUS_INFO_LENGTH_MISMATCH; } - /* FIXME */ + /* We need to lock down the memory */ + Status = ExLockUserBuffer(Buffer, + Size, + ExGetPreviousMode(), + IoWriteAccess, + (PVOID*)&HandleInformation, + &Mdl); + if (!NT_SUCCESS(Status)) + { + DPRINT1("Failed to lock the user buffer: 0x%lx\n", Status); + return Status; + } + + /* Reset of count of handles */ HandleInformation->Count = 0; - return STATUS_SUCCESS; -} - + + /* Enter a critical region */ + KeEnterCriticalRegion(); + + /* Acquire the handle table lock */ + ExAcquirePushLockShared(&HandleTableListLock); + + /* Enumerate all system handles */ + for (NextTableEntry = HandleTableListHead.Flink; + NextTableEntry != &HandleTableListHead; + NextTableEntry = NextTableEntry->Flink) + { + /* Get current handle table */ + HandleTable = CONTAINING_RECORD(NextTableEntry, HANDLE_TABLE, HandleTableList); + + /* Set the initial value and loop the entries */ + Handle.Value = 0; + while ((HandleTableEntry = ExpLookupHandleTableEntry(HandleTable, Handle))) + { + /* Validate the entry */ + if ((HandleTableEntry->Object) && + (HandleTableEntry->NextFreeTableEntry != -2)) + { + /* Increase of count of handles */ + ++HandleInformation->Count; + + /* Lock the entry */ + if (ExpLockHandleTableEntry(HandleTable, HandleTableEntry)) + { + /* Increase required buffer size */ + *ReqSize += sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX); + + /* Check user's buffer size */ + if (*ReqSize > Size) + { + Status = STATUS_INFO_LENGTH_MISMATCH; + } + else + { + POBJECT_HEADER ObjectHeader = ObpGetHandleObject(HandleTableEntry); + + /* Filling handle information */ + HandleInformation->Handle[Index].UniqueProcessId = + (USHORT)(ULONG_PTR) HandleTable->UniqueProcessId; + + HandleInformation->Handle[Index].CreatorBackTraceIndex = 0; + +#if 0 /* FIXME!!! Type field currupted */ + HandleInformation->Handles[Index].ObjectTypeIndex = + (UCHAR) ObjectHeader->Type->Index; +#else + HandleInformation->Handle[Index].ObjectTypeIndex = 0; +#endif + + HandleInformation->Handle[Index].HandleAttributes = + HandleTableEntry->ObAttributes & OBJ_HANDLE_ATTRIBUTES; + + HandleInformation->Handle[Index].HandleValue = + (USHORT)(ULONG_PTR) Handle.GenericHandleOverlay; + + HandleInformation->Handle[Index].Object = &ObjectHeader->Body; + + HandleInformation->Handle[Index].GrantedAccess = + HandleTableEntry->GrantedAccess; + + HandleInformation->Handle[Index].Reserved = 0; + + ++Index; + } + + /* Unlock it */ + ExUnlockHandleTableEntry(HandleTable, HandleTableEntry); + } + } + + /* Go to the next entry */ + Handle.Value += sizeof(HANDLE); + } + } + + /* Release the lock */ + ExReleasePushLockShared(&HandleTableListLock); + + /* Leave the critical region */ + KeLeaveCriticalRegion(); + + /* Release the locked user buffer */ + ExUnlockUserBuffer(Mdl); + + return Status; +} /* Query/Set Calls Table */ typedef
7 years, 10 months
1
0
0
0
[gadamopoulos] 75005: [SHELL32] -CDrivesFolder: Implement returning the appropriate type string in GetDetailsOf. Simplify GetDetailsOf and CDrivesExtractIcon_CreateInstance.
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Sun Jun 11 14:02:14 2017 New Revision: 75005 URL:
http://svn.reactos.org/svn/reactos?rev=75005&view=rev
Log: [SHELL32] -CDrivesFolder: Implement returning the appropriate type string in GetDetailsOf. Simplify GetDetailsOf and CDrivesExtractIcon_CreateInstance. Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] Sun Jun 11 14:02:14 2017 @@ -35,6 +35,24 @@ 3. The parsing name returned for my computer is incorrect. It should be "My Computer" */ +static int iDriveIconIds[7] = { IDI_SHELL_DRIVE, /* DRIVE_UNKNOWN */ + IDI_SHELL_CDROM, /* DRIVE_NO_ROOT_DIR*/ + IDI_SHELL_3_14_FLOPPY, /* DRIVE_REMOVABLE*/ + IDI_SHELL_DRIVE, /* DRIVE_FIXED*/ + IDI_SHELL_NETDRIVE, /* DRIVE_REMOTE*/ + IDI_SHELL_CDROM, /* DRIVE_CDROM*/ + IDI_SHELL_RAMDISK /* DRIVE_RAMDISK*/ + }; + +static int iDriveTypeIds[7] = { IDS_DRIVE_FIXED, /* DRIVE_UNKNOWN */ + IDS_DRIVE_FIXED, /* DRIVE_NO_ROOT_DIR*/ + IDS_DRIVE_FLOPPY, /* DRIVE_REMOVABLE*/ + IDS_DRIVE_FIXED, /* DRIVE_FIXED*/ + IDS_DRIVE_NETWORK, /* DRIVE_REMOTE*/ + IDS_DRIVE_CDROM, /* DRIVE_CDROM*/ + IDS_DRIVE_FIXED /* DRIVE_RAMDISK*/ + }; + /*********************************************************************** * IShellFolder implementation */ @@ -125,41 +143,21 @@ return hr; CHAR* pszDrive = _ILGetDataPointer(pidl)->u.drive.szDriveName; + UINT DriveType = GetDriveTypeA(pszDrive); + if (DriveType > DRIVE_RAMDISK) + DriveType = DRIVE_FIXED; + WCHAR wTemp[MAX_PATH]; - int icon_idx = -1; - - if (pszDrive) - { - switch(GetDriveTypeA(pszDrive)) - { - case DRIVE_REMOVABLE: - icon_idx = IDI_SHELL_3_14_FLOPPY; - break; - case DRIVE_CDROM: - icon_idx = IDI_SHELL_CDROM; - break; - case DRIVE_REMOTE: - icon_idx = IDI_SHELL_NETDRIVE; - break; - case DRIVE_RAMDISK: - icon_idx = IDI_SHELL_RAMDISK; - break; - case DRIVE_NO_ROOT_DIR: - icon_idx = IDI_SHELL_CDROM; - break; - } - } - - if (icon_idx != -1) - { + int icon_idx; + if ((DriveType == DRIVE_FIXED || DriveType == DRIVE_UNKNOWN) && + (HCR_GetIconW(L"Drive", wTemp, NULL, MAX_PATH, &icon_idx))) + { + initIcon->SetNormalIcon(wTemp, icon_idx); + } + else + { + icon_idx = iDriveIconIds[DriveType]; initIcon->SetNormalIcon(swShell32Name, -icon_idx); - } - else - { - if (HCR_GetIconW(L"Drive", wTemp, NULL, MAX_PATH, &icon_idx)) - initIcon->SetNormalIcon(wTemp, icon_idx); - else - initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_DRIVE); } return initIcon->QueryInterface(riid, ppvOut); @@ -827,43 +825,41 @@ psd->cxChar = MyComputerSFHeader[iColumn].cxChar; return SHSetStrRet(&psd->str, MyComputerSFHeader[iColumn].colnameid); } - else if (_ILIsSpecialFolder(pidl)) + else if (!_ILIsDrive(pidl)) { return m_regFolder->GetDetailsOf(pidl, iColumn, psd); } else { - char szPath[MAX_PATH]; - ULARGE_INTEGER ulBytes; - - psd->str.cStr[0] = 0x00; - psd->str.uType = STRRET_CSTR; + ULARGE_INTEGER ulTotalBytes, ulFreeBytes; + CHAR* pszDrive = _ILGetDataPointer(pidl)->u.drive.szDriveName; + UINT DriveType = GetDriveTypeA(pszDrive); + if (DriveType > DRIVE_RAMDISK) + DriveType = DRIVE_FIXED; + switch (iColumn) { case 0: /* name */ hr = GetDisplayNameOf(pidl, SHGDN_NORMAL | SHGDN_INFOLDER, &psd->str); break; case 1: /* type */ - _ILGetFileType(pidl, psd->str.cStr, MAX_PATH); + hr = SHSetStrRet(&psd->str, iDriveTypeIds[DriveType]); break; case 2: /* total size */ - _ILSimpleGetText (pidl, szPath, MAX_PATH); - if (GetVolumeInformationA(szPath, NULL, 0, NULL, NULL, NULL, NULL, 0)) + case 3: /* free size */ + psd->str.cStr[0] = 0x00; + psd->str.uType = STRRET_CSTR; + if (GetVolumeInformationA(pszDrive, NULL, 0, NULL, NULL, NULL, NULL, 0)) { - GetDiskFreeSpaceExA(szPath, NULL, &ulBytes, NULL); - StrFormatByteSize64A(ulBytes.QuadPart, psd->str.cStr, MAX_PATH); + GetDiskFreeSpaceExA(pszDrive, &ulFreeBytes, &ulTotalBytes, NULL); + if (iColumn == 2) + StrFormatByteSize64A(ulTotalBytes.QuadPart, psd->str.cStr, MAX_PATH); + else + StrFormatByteSize64A(ulFreeBytes.QuadPart, psd->str.cStr, MAX_PATH); } + hr = S_OK; break; - case 3: /* free size */ - _ILSimpleGetText (pidl, szPath, MAX_PATH); - if (GetVolumeInformationA(szPath, NULL, 0, NULL, NULL, NULL, NULL, 0)) - { - GetDiskFreeSpaceExA(szPath, &ulBytes, NULL, NULL); - StrFormatByteSize64A(ulBytes.QuadPart, psd->str.cStr, MAX_PATH); - } - break; - } - hr = S_OK; + } } return hr;
7 years, 10 months
1
0
0
0
[mjansen] 75004: [APPHELP_APITEST] Addendum to r74986, make the test work on win7. CORE-13284
by mjansen@svn.reactos.org
Author: mjansen Date: Sun Jun 11 13:09:43 2017 New Revision: 75004 URL:
http://svn.reactos.org/svn/reactos?rev=75004&view=rev
Log: [APPHELP_APITEST] Addendum to r74986, make the test work on win7. CORE-13284 Modified: trunk/rostests/apitests/apphelp/env.c Modified: trunk/rostests/apitests/apphelp/env.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/apphelp/env.c?re…
============================================================================== --- trunk/rostests/apitests/apphelp/env.c [iso-8859-1] (original) +++ trunk/rostests/apitests/apphelp/env.c [iso-8859-1] Sun Jun 11 13:09:43 2017 @@ -1111,7 +1111,7 @@ ok_hex(Reason, CHECKREASON(ExpectedReason, (1 << n))); if (AppCompatData && AppCompatDataSize == sizeof(SDBQUERYRESULT_VISTA)) { - if (ExpectedReason != 0x400 && g_ModuleVersion < WINVER_WIN10) + if (ExpectedReason != 0x400 && g_ModuleVersion < WINVER_WIN7) expect_layeronly(AppCompatData, "256Color", expect_flags); else ok(!memcmp(AppCompatData, &empty_result, sizeof(empty_result)), "Expected result to be empty\n"); @@ -1234,10 +1234,10 @@ DWORD ShimDataType; NTSTATUS ExceptionStatus = STATUS_SUCCESS; - SetEnvironmentVariable("SHIM_DEBUG_LEVEL", "127"); - SetEnvironmentVariable("SHIMENG_DEBUG_LEVEL", "127"); - - //silence_debug_output(); + //SetEnvironmentVariable("SHIM_DEBUG_LEVEL", "127"); + //SetEnvironmentVariable("SHIMENG_DEBUG_LEVEL", "127"); + + silence_debug_output(); hdll = LoadLibraryA("apphelp.dll"); @@ -1299,6 +1299,7 @@ return; } + /* New version of Win10.. */ if (g_WinVersion == WINVER_WIN10 && ShimDataType == 3) g_ShimDataSize = 4096;
7 years, 10 months
1
0
0
0
[tfaber] 75003: [BUGCODES] - Add DIRTY_NOWRITE_PAGES_CONGESTION and BUGCODE_USB_DRIVER
by tfaber@svn.reactos.org
Author: tfaber Date: Sun Jun 11 12:46:15 2017 New Revision: 75003 URL:
http://svn.reactos.org/svn/reactos?rev=75003&view=rev
Log: [BUGCODES] - Add DIRTY_NOWRITE_PAGES_CONGESTION and BUGCODE_USB_DRIVER Modified: trunk/reactos/sdk/include/reactos/mc/bugcodes.mc Modified: trunk/reactos/sdk/include/reactos/mc/bugcodes.mc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/reactos/mc/bug…
============================================================================== --- trunk/reactos/sdk/include/reactos/mc/bugcodes.mc [iso-8859-1] (original) +++ trunk/reactos/sdk/include/reactos/mc/bugcodes.mc [iso-8859-1] Sun Jun 11 12:46:15 2017 @@ -1684,6 +1684,22 @@ An attempt was made to execute to non-executable memory. . +MessageId=0xFD +Severity=Success +Facility=System +SymbolicName=DIRTY_NOWRITE_PAGES_CONGESTION +Language=English +DIRTY_NOWRITE_PAGES_CONGESTION +. + +MessageId=0xFE +Severity=Success +Facility=System +SymbolicName=BUGCODE_USB_DRIVER +Language=English +A fatal error occurred in the USB driver stack. +. + MessageId=0x139 Severity=Success Facility=System
7 years, 10 months
1
0
0
0
[tfaber] 75002: [PSDK] - Fix C++ version of BM_REQUEST_TYPE without breaking the C version
by tfaber@svn.reactos.org
Author: tfaber Date: Sun Jun 11 12:26:48 2017 New Revision: 75002 URL:
http://svn.reactos.org/svn/reactos?rev=75002&view=rev
Log: [PSDK] - Fix C++ version of BM_REQUEST_TYPE without breaking the C version Modified: trunk/reactos/sdk/include/psdk/usb200.h trunk/reactos/sdk/lib/drivers/libusb/hub_controller.cpp trunk/reactos/sdk/lib/drivers/libusb/usb_device.cpp Modified: trunk/reactos/sdk/include/psdk/usb200.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/usb200.h?…
============================================================================== --- trunk/reactos/sdk/include/psdk/usb200.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/usb200.h [iso-8859-1] Sun Jun 11 12:26:48 2017 @@ -55,12 +55,16 @@ typedef union _BM_REQUEST_TYPE { +#ifdef __cplusplus + struct { +#else struct _BM { +#endif UCHAR Recipient:2; UCHAR Reserved:3; UCHAR Type:2; UCHAR Dir:1; - } _BM; + }; UCHAR B; } BM_REQUEST_TYPE, *PBM_REQUEST_TYPE; Modified: trunk/reactos/sdk/lib/drivers/libusb/hub_controller.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/lib/drivers/libusb/hub…
============================================================================== --- trunk/reactos/sdk/lib/drivers/libusb/hub_controller.cpp [iso-8859-1] (original) +++ trunk/reactos/sdk/lib/drivers/libusb/hub_controller.cpp [iso-8859-1] Sun Jun 11 12:26:48 2017 @@ -1426,8 +1426,8 @@ // generate setup packet // CtrlSetup.bmRequestType.B = 0; - CtrlSetup.bmRequestType._BM.Recipient = BMREQUEST_TO_DEVICE; - CtrlSetup.bmRequestType._BM.Type = BMREQUEST_CLASS; + CtrlSetup.bmRequestType.Recipient = BMREQUEST_TO_DEVICE; + CtrlSetup.bmRequestType.Type = BMREQUEST_CLASS; CtrlSetup.bRequest = Urb->UrbControlVendorClassRequest.Request; CtrlSetup.wValue.W = Urb->UrbControlVendorClassRequest.Value; CtrlSetup.wIndex.W = Urb->UrbControlVendorClassRequest.Index; @@ -1438,7 +1438,7 @@ // // data direction is device to host // - CtrlSetup.bmRequestType._BM.Dir = BMREQUEST_DEVICE_TO_HOST; + CtrlSetup.bmRequestType.Dir = BMREQUEST_DEVICE_TO_HOST; } // @@ -1889,8 +1889,8 @@ // initialize setup packet // CtrlSetup.bmRequestType.B = 0; - CtrlSetup.bmRequestType._BM.Recipient = BMREQUEST_TO_DEVICE; - CtrlSetup.bmRequestType._BM.Type = BMREQUEST_VENDOR; + CtrlSetup.bmRequestType.Recipient = BMREQUEST_TO_DEVICE; + CtrlSetup.bmRequestType.Type = BMREQUEST_VENDOR; CtrlSetup.bRequest = Urb->UrbControlVendorClassRequest.Request; CtrlSetup.wValue.W = Urb->UrbControlVendorClassRequest.Value; CtrlSetup.wIndex.W = Urb->UrbControlVendorClassRequest.Index; @@ -1901,7 +1901,7 @@ // // data direction is device to host // - CtrlSetup.bmRequestType._BM.Dir = BMREQUEST_DEVICE_TO_HOST; + CtrlSetup.bmRequestType.Dir = BMREQUEST_DEVICE_TO_HOST; } // Modified: trunk/reactos/sdk/lib/drivers/libusb/usb_device.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/lib/drivers/libusb/usb…
============================================================================== --- trunk/reactos/sdk/lib/drivers/libusb/usb_device.cpp [iso-8859-1] (original) +++ trunk/reactos/sdk/lib/drivers/libusb/usb_device.cpp [iso-8859-1] Sun Jun 11 12:26:48 2017 @@ -698,10 +698,10 @@ // // build setup packet // - CtrlSetup.bmRequestType._BM.Recipient = BMREQUEST_TO_DEVICE; - CtrlSetup.bmRequestType._BM.Type = BMREQUEST_STANDARD; - CtrlSetup.bmRequestType._BM.Reserved = 0; - CtrlSetup.bmRequestType._BM.Dir = BMREQUEST_DEVICE_TO_HOST; + CtrlSetup.bmRequestType.Recipient = BMREQUEST_TO_DEVICE; + CtrlSetup.bmRequestType.Type = BMREQUEST_STANDARD; + CtrlSetup.bmRequestType.Reserved = 0; + CtrlSetup.bmRequestType.Dir = BMREQUEST_DEVICE_TO_HOST; CtrlSetup.bRequest = USB_REQUEST_GET_DESCRIPTOR; CtrlSetup.wValue.LowByte = ConfigurationIndex; CtrlSetup.wValue.HiByte = USB_CONFIGURATION_DESCRIPTOR_TYPE;
7 years, 10 months
1
0
0
0
← Newer
1
...
22
23
24
25
26
27
28
...
53
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
Results per page:
10
25
50
100
200