ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
February 2007
----- 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
16 participants
265 discussions
Start a n
N
ew thread
[dgorbachev] 25882: Indonesian translation by Zaenal Mutaqin (ade999 at gmail dot com)
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Fri Feb 23 04:42:52 2007 New Revision: 25882 URL:
http://svn.reactos.org/svn/reactos?rev=25882&view=rev
Log: Indonesian translation by Zaenal Mutaqin (ade999 at gmail dot com) Added: trunk/reactos/base/applications/cacls/lang/id-ID.rc trunk/reactos/base/applications/calc/lang/id-ID.rc trunk/reactos/base/applications/charmap/lang/id-ID.rc trunk/reactos/base/applications/control/lang/id-ID.rc trunk/reactos/base/applications/devmgmt/lang/id-ID.rc trunk/reactos/base/applications/downloader/translations/id.rc trunk/reactos/base/applications/games/solitaire/lang/id-ID.rc trunk/reactos/base/applications/games/winemine/lang/id-ID.rc trunk/reactos/base/applications/getfirefox/lang/id-ID.rc trunk/reactos/base/applications/imagesoft/lang/id-ID.rc trunk/reactos/base/applications/msconfig/lang/id-ID.rc trunk/reactos/base/applications/network/ipconfig/id-ID.rc trunk/reactos/base/applications/notepad/lang/id-ID.rc trunk/reactos/base/applications/reporterror/lang/id-ID.rc trunk/reactos/base/applications/servman/id-ID.rc trunk/reactos/base/applications/sm/lang/id-ID.rc trunk/reactos/base/applications/sndvol32/lang/id-ID.rc trunk/reactos/base/applications/taskmgr/lang/id-ID.rc trunk/reactos/base/setup/reactos/id-ID.rc trunk/reactos/base/setup/vmwinst/lang/id-ID.rc trunk/reactos/base/setup/welcome/lang/id-ID.rc trunk/reactos/base/shell/explorer/explorer-id.rc trunk/reactos/base/system/expand/lang/id-ID.rc trunk/reactos/base/system/format/lang/id-ID.rc trunk/reactos/base/system/regsvr32/lang/id-ID.rc trunk/reactos/base/system/rundll32/lang/id-ID.rc trunk/reactos/base/system/userinit/lang/id-ID.rc trunk/reactos/base/system/winlogon/lang/id-ID.rc Modified: trunk/reactos/base/applications/cacls/rsrc.rc trunk/reactos/base/applications/calc/rsrc.rc trunk/reactos/base/applications/charmap/rsrc.rc trunk/reactos/base/applications/control/rsrc.rc trunk/reactos/base/applications/devmgmt/rsrc.rc trunk/reactos/base/applications/downloader/rsrc.rc trunk/reactos/base/applications/games/solitaire/rsrc.rc trunk/reactos/base/applications/games/winemine/rsrc.rc trunk/reactos/base/applications/getfirefox/rsrc.rc trunk/reactos/base/applications/imagesoft/rsrc.rc trunk/reactos/base/applications/msconfig/rsrc.rc trunk/reactos/base/applications/network/ipconfig/ipconfig.rc trunk/reactos/base/applications/notepad/rsrc.rc trunk/reactos/base/applications/reporterror/rsrc.rc trunk/reactos/base/applications/sm/rsrc.rc trunk/reactos/base/applications/sndvol32/rsrc.rc trunk/reactos/base/applications/taskmgr/taskmgr.rc trunk/reactos/base/setup/reactos/reactos.rc trunk/reactos/base/setup/vmwinst/rsrc.rc trunk/reactos/base/setup/welcome/rsrc.rc trunk/reactos/base/system/expand/rsrc.rc trunk/reactos/base/system/format/rsrc.rc trunk/reactos/base/system/regsvr32/rsrc.rc trunk/reactos/base/system/rundll32/rsrc.rc trunk/reactos/base/system/userinit/rsrc.rc trunk/reactos/base/system/winlogon/rsrc.rc [This mail would be too long, it was shortened to contain the URLs only.] Added: trunk/reactos/base/applications/cacls/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cacls/la…
Modified: trunk/reactos/base/applications/cacls/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cacls/rs…
Added: trunk/reactos/base/applications/calc/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/calc/lan…
Modified: trunk/reactos/base/applications/calc/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/calc/rsr…
Added: trunk/reactos/base/applications/charmap/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/charmap/…
Modified: trunk/reactos/base/applications/charmap/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/charmap/…
Added: trunk/reactos/base/applications/control/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
Modified: trunk/reactos/base/applications/control/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
Added: trunk/reactos/base/applications/devmgmt/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/devmgmt/…
Modified: trunk/reactos/base/applications/devmgmt/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/devmgmt/…
Modified: trunk/reactos/base/applications/downloader/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/download…
Added: trunk/reactos/base/applications/downloader/translations/id.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/download…
Added: trunk/reactos/base/applications/games/solitaire/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/games/so…
Modified: trunk/reactos/base/applications/games/solitaire/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/games/so…
Added: trunk/reactos/base/applications/games/winemine/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/games/wi…
Modified: trunk/reactos/base/applications/games/winemine/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/games/wi…
Added: trunk/reactos/base/applications/getfirefox/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/getfiref…
Modified: trunk/reactos/base/applications/getfirefox/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/getfiref…
Added: trunk/reactos/base/applications/imagesoft/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/imagesof…
Modified: trunk/reactos/base/applications/imagesoft/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/imagesof…
Added: trunk/reactos/base/applications/msconfig/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig…
Modified: trunk/reactos/base/applications/msconfig/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig…
Added: trunk/reactos/base/applications/network/ipconfig/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
Modified: trunk/reactos/base/applications/network/ipconfig/ipconfig.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
Added: trunk/reactos/base/applications/notepad/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/notepad/…
Modified: trunk/reactos/base/applications/notepad/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/notepad/…
Added: trunk/reactos/base/applications/reporterror/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/reporter…
Modified: trunk/reactos/base/applications/reporterror/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/reporter…
Added: trunk/reactos/base/applications/servman/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/servman/…
Added: trunk/reactos/base/applications/sm/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sm/lang/…
Modified: trunk/reactos/base/applications/sm/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sm/rsrc.…
Added: trunk/reactos/base/applications/sndvol32/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
Modified: trunk/reactos/base/applications/sndvol32/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/sndvol32…
Added: trunk/reactos/base/applications/taskmgr/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/taskmgr/…
Modified: trunk/reactos/base/applications/taskmgr/taskmgr.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/taskmgr/…
Added: trunk/reactos/base/setup/reactos/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/reactos/id-ID.r…
Modified: trunk/reactos/base/setup/reactos/reactos.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/reactos/reactos…
Added: trunk/reactos/base/setup/vmwinst/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/vmwinst/lang/id…
Modified: trunk/reactos/base/setup/vmwinst/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/vmwinst/rsrc.rc…
Added: trunk/reactos/base/setup/welcome/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/welcome/lang/id…
Modified: trunk/reactos/base/setup/welcome/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/welcome/rsrc.rc…
Added: trunk/reactos/base/shell/explorer/explorer-id.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/explor…
Added: trunk/reactos/base/system/expand/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/expand/lang/id…
Modified: trunk/reactos/base/system/expand/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/expand/rsrc.rc…
Added: trunk/reactos/base/system/format/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/format/lang/id…
Modified: trunk/reactos/base/system/format/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/format/rsrc.rc…
Added: trunk/reactos/base/system/regsvr32/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/regsvr32/lang/…
Modified: trunk/reactos/base/system/regsvr32/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/regsvr32/rsrc.…
Added: trunk/reactos/base/system/rundll32/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/rundll32/lang/…
Modified: trunk/reactos/base/system/rundll32/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/rundll32/rsrc.…
Added: trunk/reactos/base/system/userinit/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/userinit/lang/…
Modified: trunk/reactos/base/system/userinit/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/userinit/rsrc.…
Added: trunk/reactos/base/system/winlogon/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/winlogon/lang/…
Modified: trunk/reactos/base/system/winlogon/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/winlogon/rsrc.…
17 years, 10 months
1
0
0
0
[ion] 25881: - Move some Mm routines from pe.c to sysldr.c where they belong. - Create and initialize Mm Loader lock. - Re-arrange some code in MmLoadSystemImage, no code changes yet. - Add new LDRP_ flags for LDR_DATA_TABLE_ENTRY to the NDK.
by ion@svn.reactos.org
Author: ion Date: Thu Feb 22 23:55:02 2007 New Revision: 25881 URL:
http://svn.reactos.org/svn/reactos?rev=25881&view=rev
Log: - Move some Mm routines from pe.c to sysldr.c where they belong. - Create and initialize Mm Loader lock. - Re-arrange some code in MmLoadSystemImage, no code changes yet. - Add new LDRP_ flags for LDR_DATA_TABLE_ENTRY to the NDK. Modified: trunk/reactos/include/ndk/ldrtypes.h trunk/reactos/ntoskrnl/ldr/loader.c trunk/reactos/ntoskrnl/mm/mminit.c trunk/reactos/ntoskrnl/mm/pe.c trunk/reactos/ntoskrnl/mm/sysldr.c Modified: trunk/reactos/include/ndk/ldrtypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/ldrtypes.h?rev…
============================================================================== --- trunk/reactos/include/ndk/ldrtypes.h (original) +++ trunk/reactos/include/ndk/ldrtypes.h Thu Feb 22 23:55:02 2007 @@ -49,8 +49,14 @@ #define LDRP_IMAGE_NOT_AT_BASE 0x00200000 #define LDRP_COR_IMAGE 0x00400000 #define LDR_COR_OWNS_UNMAP 0x00800000 -#define LDRP_DRIVER_VERIFYING 0x02000000 +#define LDRP_SYSTEM_MAPPED 0x01000000 +#define LDRP_IMAGE_VERIFYING 0x02000000 +#define LDRP_DRIVER_DEPENDENT_DLL 0x04000000 +#define LDRP_ENTRY_NATIVE 0x08800000 #define LDRP_REDIRECTED 0x10000000 +#define LDRP_NON_PAGED_DEBUG_INFO 0x20000000 +#define LDRP_MM_LOADED 0x40000000 +#define LDRP_COMPAT_DATABASE_PROCESSED 0x80000000 // // Dll Characteristics for LdrLoadDll Modified: trunk/reactos/ntoskrnl/ldr/loader.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ldr/loader.c?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/ldr/loader.c (original) +++ trunk/reactos/ntoskrnl/ldr/loader.c Thu Feb 22 23:55:02 2007 @@ -201,11 +201,71 @@ PLOAD_IMPORTS LoadedImports = (PVOID)-2; PCHAR MissingApiName, Buffer; PWCHAR MissingDriverName; + PAGED_CODE(); + + /* Detect session-load */ + if (Flags) + { + /* Sanity checks */ + ASSERT(NamePrefix == NULL); + ASSERT(LoadedName == NULL); + + /* Make sure the process is in session too */ + if (!PsGetCurrentProcess()->ProcessInSession) return STATUS_NO_MEMORY; + } if (ModuleObject) *ModuleObject = NULL; if (ImageBaseAddress) *ImageBaseAddress = NULL; - DPRINT("Loading Module %wZ...\n", FileName); + /* Allocate a buffer we'll use for names */ + Buffer = ExAllocatePoolWithTag(NonPagedPool, MAX_PATH, TAG_LDR_WSTR); + if (!Buffer) + { + /* Fail */ + return STATUS_INSUFFICIENT_RESOURCES; + } + + /* Check for a separator */ + if (FileName->Buffer[0] == OBJ_NAME_PATH_SEPARATOR) + { + PWCHAR p; + ULONG BaseLength; + + /* Loop the path until we get to the base name */ + p = &FileName->Buffer[FileName->Length / sizeof(WCHAR)]; + while (*(p - 1) != OBJ_NAME_PATH_SEPARATOR) p--; + + /* Get the length */ + BaseLength = (ULONG)(&FileName->Buffer[FileName->Length / sizeof(WCHAR)] - p); + BaseLength *= sizeof(WCHAR); + + /* Setup the string */ + BaseName.Length = (USHORT)BaseLength; + BaseName.Buffer = p; + } + else + { + /* Otherwise, we already have a base name */ + BaseName.Length = FileName->Length; + BaseName.Buffer = FileName->Buffer; + } + + /* Setup the maximum length */ + BaseName.MaximumLength = BaseName.Length; + + /* Now compute the base directory */ + BaseDirectory = *FileName; + BaseDirectory.Length -= BaseName.Length; + BaseDirectory.MaximumLength = BaseDirectory.Length; + + /* And the prefix, which for now is just the name itself */ + PrefixName = *FileName; + + /* Check if we have a prefix */ + if (NamePrefix) DPRINT1("Prefixed images are not yet supported!\n"); + + /* Check if we already have a name, use it instead */ + if (LoadedName) BaseName = *LoadedName; /* Open the Module */ InitializeObjectAttributes(&ObjectAttributes, @@ -370,50 +430,6 @@ return Status; } - /* Allocate a buffer we'll use for names */ - Buffer = ExAllocatePoolWithTag(NonPagedPool, MAX_PATH, TAG_LDR_WSTR); - if (!Buffer) - { - /* Fail */ - return STATUS_INSUFFICIENT_RESOURCES; - } - - /* Check for a separator */ - if (FileName->Buffer[0] == OBJ_NAME_PATH_SEPARATOR) - { - PWCHAR p; - ULONG BaseLength; - - /* Loop the path until we get to the base name */ - p = &FileName->Buffer[FileName->Length / sizeof(WCHAR)]; - while (*(p - 1) != OBJ_NAME_PATH_SEPARATOR) p--; - - /* Get the length */ - BaseLength = (ULONG)(&FileName->Buffer[FileName->Length / sizeof(WCHAR)] - p); - BaseLength *= sizeof(WCHAR); - - /* Setup the string */ - BaseName.Length = (USHORT)BaseLength; - BaseName.Buffer = p; - } - else - { - /* Otherwise, we already have a base name */ - BaseName.Length = FileName->Length; - BaseName.Buffer = FileName->Buffer; - } - - /* Setup the maximum length */ - BaseName.MaximumLength = BaseName.Length; - - /* Now compute the base directory */ - BaseDirectory = *FileName; - BaseDirectory.Length -= BaseName.Length; - BaseDirectory.MaximumLength = BaseDirectory.Length; - - /* And the prefix */ - PrefixName = *FileName; - /* Calculate the size we'll need for the entry and allocate it */ EntrySize = sizeof(LDR_DATA_TABLE_ENTRY) + BaseName.Length + Modified: trunk/reactos/ntoskrnl/mm/mminit.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mminit.c?rev=2…
============================================================================== --- trunk/reactos/ntoskrnl/mm/mminit.c (original) +++ trunk/reactos/ntoskrnl/mm/mminit.c Thu Feb 22 23:55:02 2007 @@ -453,6 +453,7 @@ } BOOLEAN RmapReady, PageOpReady, SectionsReady, PagingReady; +extern KMUTANT MmSystemLoadLock; BOOLEAN NTAPI @@ -461,6 +462,9 @@ { if (Phase == 0) { + /* Initialize the Loader Lock */ + KeInitializeMutant(&MmSystemLoadLock, FALSE); + /* Reload boot drivers */ MiReloadBootLoadedDrivers(LoaderBlock); Modified: trunk/reactos/ntoskrnl/mm/pe.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/pe.c?rev=25881…
============================================================================== --- trunk/reactos/ntoskrnl/mm/pe.c (original) +++ trunk/reactos/ntoskrnl/mm/pe.c Thu Feb 22 23:55:02 2007 @@ -677,108 +677,4 @@ return nStatus; } -BOOLEAN -NTAPI -MmVerifyImageIsOkForMpUse(IN PVOID BaseAddress) -{ - PIMAGE_NT_HEADERS NtHeader; - PAGED_CODE(); - - /* Get NT Headers */ - NtHeader = RtlImageNtHeader(BaseAddress); - if (NtHeader) - { - /* Check if this image is only safe for UP while we have 2+ CPUs */ - if ((KeNumberProcessors > 1) && - (NtHeader->FileHeader.Characteristics & IMAGE_FILE_UP_SYSTEM_ONLY)) - { - /* Fail */ - return FALSE; - } - } - - /* Otherwise, it's safe */ - return TRUE; -} - -NTSTATUS -NTAPI -MmCheckSystemImage(IN HANDLE ImageHandle, - IN BOOLEAN PurgeSection) -{ - NTSTATUS Status; - HANDLE SectionHandle; - PVOID ViewBase = NULL; - SIZE_T ViewSize = 0; - IO_STATUS_BLOCK IoStatusBlock; - FILE_STANDARD_INFORMATION FileStandardInfo; - KAPC_STATE ApcState; - PAGED_CODE(); - - /* Create a section for the DLL */ - Status = ZwCreateSection(&SectionHandle, - SECTION_MAP_EXECUTE, - NULL, - NULL, - PAGE_EXECUTE, - SEC_COMMIT, - ImageHandle); - if (!NT_SUCCESS(Status)) return Status; - - /* Make sure we're in the system process */ - KeStackAttachProcess(&PsInitialSystemProcess->Pcb, &ApcState); - - /* Map it */ - Status = ZwMapViewOfSection(SectionHandle, - NtCurrentProcess(), - &ViewBase, - 0, - 0, - NULL, - &ViewSize, - ViewShare, - 0, - PAGE_EXECUTE); - if (!NT_SUCCESS(Status)) - { - /* We failed, close the handle and return */ - KeUnstackDetachProcess(&ApcState); - ZwClose(SectionHandle); - return Status; - } - - /* Now query image information */ - Status = ZwQueryInformationFile(ImageHandle, - &IoStatusBlock, - &FileStandardInfo, - sizeof(FileStandardInfo), - FileStandardInformation); - if ( NT_SUCCESS(Status) ) - { - /* First, verify the checksum */ - if (!LdrVerifyMappedImageMatchesChecksum(ViewBase, - FileStandardInfo. - EndOfFile.LowPart, - FileStandardInfo. - EndOfFile.LowPart)) - { - /* Set checksum failure */ - Status = STATUS_IMAGE_CHECKSUM_MISMATCH; - } - - /* Check that it's a valid SMP image if we have more then one CPU */ - if (!MmVerifyImageIsOkForMpUse(ViewBase)) - { - /* Otherwise it's not the right image */ - Status = STATUS_IMAGE_MP_UP_MISMATCH; - } - } - - /* Unmap the section, close the handle, and return status */ - ZwUnmapViewOfSection(NtCurrentProcess(), ViewBase); - KeUnstackDetachProcess(&ApcState); - ZwClose(SectionHandle); - return Status; -} - /* EOF */ Modified: trunk/reactos/ntoskrnl/mm/sysldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/sysldr.c?rev=2…
============================================================================== --- trunk/reactos/ntoskrnl/mm/sysldr.c (original) +++ trunk/reactos/ntoskrnl/mm/sysldr.c Thu Feb 22 23:55:02 2007 @@ -17,6 +17,7 @@ LIST_ENTRY PsLoadedModuleList; KSPIN_LOCK PsLoadedModuleSpinLock; PVOID PsNtosImageBase; +KMUTANT MmSystemLoadLock; /* FUNCTIONS *****************************************************************/ @@ -914,3 +915,107 @@ /* We're done */ return TRUE; } + +BOOLEAN +NTAPI +MmVerifyImageIsOkForMpUse(IN PVOID BaseAddress) +{ + PIMAGE_NT_HEADERS NtHeader; + PAGED_CODE(); + + /* Get NT Headers */ + NtHeader = RtlImageNtHeader(BaseAddress); + if (NtHeader) + { + /* Check if this image is only safe for UP while we have 2+ CPUs */ + if ((KeNumberProcessors > 1) && + (NtHeader->FileHeader.Characteristics & IMAGE_FILE_UP_SYSTEM_ONLY)) + { + /* Fail */ + return FALSE; + } + } + + /* Otherwise, it's safe */ + return TRUE; +} + +NTSTATUS +NTAPI +MmCheckSystemImage(IN HANDLE ImageHandle, + IN BOOLEAN PurgeSection) +{ + NTSTATUS Status; + HANDLE SectionHandle; + PVOID ViewBase = NULL; + SIZE_T ViewSize = 0; + IO_STATUS_BLOCK IoStatusBlock; + FILE_STANDARD_INFORMATION FileStandardInfo; + KAPC_STATE ApcState; + PAGED_CODE(); + + /* Create a section for the DLL */ + Status = ZwCreateSection(&SectionHandle, + SECTION_MAP_EXECUTE, + NULL, + NULL, + PAGE_EXECUTE, + SEC_COMMIT, + ImageHandle); + if (!NT_SUCCESS(Status)) return Status; + + /* Make sure we're in the system process */ + KeStackAttachProcess(&PsInitialSystemProcess->Pcb, &ApcState); + + /* Map it */ + Status = ZwMapViewOfSection(SectionHandle, + NtCurrentProcess(), + &ViewBase, + 0, + 0, + NULL, + &ViewSize, + ViewShare, + 0, + PAGE_EXECUTE); + if (!NT_SUCCESS(Status)) + { + /* We failed, close the handle and return */ + KeUnstackDetachProcess(&ApcState); + ZwClose(SectionHandle); + return Status; + } + + /* Now query image information */ + Status = ZwQueryInformationFile(ImageHandle, + &IoStatusBlock, + &FileStandardInfo, + sizeof(FileStandardInfo), + FileStandardInformation); + if ( NT_SUCCESS(Status) ) + { + /* First, verify the checksum */ + if (!LdrVerifyMappedImageMatchesChecksum(ViewBase, + FileStandardInfo. + EndOfFile.LowPart, + FileStandardInfo. + EndOfFile.LowPart)) + { + /* Set checksum failure */ + Status = STATUS_IMAGE_CHECKSUM_MISMATCH; + } + + /* Check that it's a valid SMP image if we have more then one CPU */ + if (!MmVerifyImageIsOkForMpUse(ViewBase)) + { + /* Otherwise it's not the right image */ + Status = STATUS_IMAGE_MP_UP_MISMATCH; + } + } + + /* Unmap the section, close the handle, and return status */ + ZwUnmapViewOfSection(NtCurrentProcess(), ViewBase); + KeUnstackDetachProcess(&ApcState); + ZwClose(SectionHandle); + return Status; +}
17 years, 10 months
1
0
0
0
[tretiakov] 25880: Handle WM_INPUTLANGCHANGE and WM_INPUTLANGCHANGEREQUEST in DefWindowProc.
by tretiakov@svn.reactos.org
Author: tretiakov Date: Thu Feb 22 22:43:27 2007 New Revision: 25880 URL:
http://svn.reactos.org/svn/reactos?rev=25880&view=rev
Log: Handle WM_INPUTLANGCHANGE and WM_INPUTLANGCHANGEREQUEST in DefWindowProc. Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c trunk/reactos/include/psdk/winuser.h Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/d…
============================================================================== --- trunk/reactos/dll/win32/user32/windows/defwnd.c (original) +++ trunk/reactos/dll/win32/user32/windows/defwnd.c Thu Feb 22 22:43:27 2007 @@ -987,6 +987,8 @@ } + + LRESULT STDCALL User32DefWindowProc(HWND hWnd, UINT Msg, @@ -1522,7 +1524,34 @@ { return (1); } - + + case WM_INPUTLANGCHANGEREQUEST: + { + HKL NewHkl; + + if(wParam & INPUTLANGCHANGE_BACKWARD + && wParam & INPUTLANGCHANGE_FORWARD) + { + return FALSE; + } + + //FIXME: What to do with INPUTLANGCHANGE_SYSCHARSET ? + + if(wParam & INPUTLANGCHANGE_BACKWARD) NewHkl = HKL_PREV; + else if(wParam & INPUTLANGCHANGE_FORWARD) NewHkl = HKL_NEXT; + else NewHkl = lParam; + + NtUserActivateKeyboardLayout(NewHkl, 0); + + return TRUE; + } + + case WM_INPUTLANGCHANGE: + { + //FIXME: What to do? + return TRUE; + } + case WM_ENDSESSION: if (wParam) PostQuitMessage(0); return 0; Modified: trunk/reactos/include/psdk/winuser.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winuser.h?rev…
============================================================================== --- trunk/reactos/include/psdk/winuser.h (original) +++ trunk/reactos/include/psdk/winuser.h Thu Feb 22 22:43:27 2007 @@ -90,6 +90,9 @@ #define KLF_NOTELLSHELL 128 #define KLF_SETFORPROCESS 256 #define KL_NAMELENGTH 9 +#define INPUTLANGCHANGE_BACKWARD 4 +#define INPUTLANGCHANGE_FORWARD 2 +#define INPUTLANGCHANGE_SYSCHARSET 1 #define MF_ENABLED 0 #define MF_GRAYED 1 #define MF_DISABLED 2
17 years, 10 months
1
0
0
0
[tretiakov] 25879: NtUserLoadKeyboardLayoutEx: Support KLF_REORDER and KLF_ACTIVATE. NtUserActivateKeyboardLayout: Support HKL_NEXT, HKL_PREV, KLF_REORDER.
by tretiakov@svn.reactos.org
Author: tretiakov Date: Thu Feb 22 22:41:10 2007 New Revision: 25879 URL:
http://svn.reactos.org/svn/reactos?rev=25879&view=rev
Log: NtUserLoadKeyboardLayoutEx: Support KLF_REORDER and KLF_ACTIVATE. NtUserActivateKeyboardLayout: Support HKL_NEXT, HKL_PREV, KLF_REORDER. Modified: trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c Modified: trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c Thu Feb 22 22:41:10 2007 @@ -328,7 +328,7 @@ Thread->KeyboardLayout = pKbl; pKbl->RefCount++; - // Post WM_INPUTLANGCHANGE to thread's focus window + // Send WM_INPUTLANGCHANGE to thread's focus window Msg.hwnd = Thread->MessageQueue->FocusWindow; Msg.message = WM_INPUTLANGCHANGE; @@ -457,33 +457,46 @@ IN DWORD Unused4) { HKL Ret = NULL; - PKBL pKbl; + PKBL pKbl = NULL, Cur; UserEnterExclusive(); - pKbl = KBLList; + Cur = KBLList; do { - if(pKbl->klid == dwKLID) - { - Ret = pKbl->hkl; + if(Cur->klid == dwKLID) + { + pKbl = Cur; + break; + } + + Cur = (PKBL) Cur->List.Flink; + } while(Cur != KBLList); + + if(!pKbl) + { + pKbl = UserLoadDllAndCreateKbl(dwKLID); + + if(!pKbl) + { goto the_end; } - pKbl = (PKBL) pKbl->List.Flink; - } while(pKbl != KBLList); - - pKbl = UserLoadDllAndCreateKbl(dwKLID); - - if(!pKbl) - { - goto the_end; - } - - InsertTailList(&KBLList->List, &pKbl->List); + InsertTailList(&KBLList->List, &pKbl->List); + } + + if(Flags & KLF_REORDER) KBLList = pKbl; + + if(Flags & KLF_ACTIVATE) + { + UserActivateKbl(PsGetCurrentThreadWin32Thread(), pKbl); + } + Ret = pKbl->hkl; //FIXME: Respect Flags! + // KLF_NOTELLSHELL KLF_SETFORPROCESS + // KLF_REPLACELANG KLF_SUBSTITUTE_OK the_end: UserLeave(); @@ -502,17 +515,35 @@ UserEnterExclusive(); - pKbl = UserHklToKbl(hKl); - - //FIXME: Respect flags! + pWThread = PsGetCurrentThreadWin32Thread(); + + if(pWThread->KeyboardLayout->hkl == hKl) + { + Ret = hKl; + goto the_end; + } + + if(hKl == (HKL)HKL_NEXT) + { + pKbl = (PKBL)pWThread->KeyboardLayout->List.Flink; + } + else if(hKl == (HKL)HKL_PREV) + { + pKbl = (PKBL)pWThread->KeyboardLayout->List.Blink; + } + else pKbl = UserHklToKbl(hKl); + + //FIXME: KLF_RESET, KLF_SHIFTLOCK + //FIXME: KLF_SETFORPROCESS if(pKbl) { - pWThread = PsGetCurrentThreadWin32Thread(); - - if(pWThread->KeyboardLayout->hkl == hKl) - { - Ret = hKl; + if(Flags & KLF_REORDER) + KBLList = pKbl; + + if(pKbl == pWThread->KeyboardLayout) + { + Ret = pKbl->hkl; } else { @@ -521,6 +552,7 @@ } } +the_end: UserLeave(); return Ret; }
17 years, 10 months
1
0
0
0
[greatlrd] 25878: win32k dx test are now compatible with all Windows and ReactOS that got a d3d8thk.dll file rember that file are diffent for Windows 2000 and Windows XP/2003 ReactOS d38thk.dll are Windows XP/2003 compatible.
by greatlrd@svn.reactos.org
Author: greatlrd Date: Thu Feb 22 22:21:10 2007 New Revision: 25878 URL:
http://svn.reactos.org/svn/reactos?rev=25878&view=rev
Log: win32k dx test are now compatible with all Windows and ReactOS that got a d3d8thk.dll file rember that file are diffent for Windows 2000 and Windows XP/2003 ReactOS d38thk.dll are Windows XP/2003 compatible. Removed: trunk/rosapps/dxtest/win32kdxtest/Windows2000Sp4.h trunk/rosapps/dxtest/win32kdxtest/sysreactos.h trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.sln trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.vcproj trunk/rosapps/dxtest/win32kdxtest/windowsos.h Modified: trunk/rosapps/dxtest/win32kdxtest/dump.c trunk/rosapps/dxtest/win32kdxtest/main.c trunk/rosapps/dxtest/win32kdxtest/test.h trunk/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild Removed: trunk/rosapps/dxtest/win32kdxtest/Windows2000Sp4.h URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/Window…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/Windows2000Sp4.h (original) +++ trunk/rosapps/dxtest/win32kdxtest/Windows2000Sp4.h (removed) @@ -1,11 +1,0 @@ - - -#if !defined(__REACTOS__) - - #define syscallid_NtGdiDdCreateDirectDrawObject 0x1039 - #define syscallid_NtGdiDdDeleteDirectDrawObject 0x103E - #define syscallid_NtGdiDdQueryDirectDrawObject 0x1053 - -#endif - - Modified: trunk/rosapps/dxtest/win32kdxtest/dump.c URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/dump.c…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/dump.c (original) +++ trunk/rosapps/dxtest/win32kdxtest/dump.c Thu Feb 22 22:21:10 2007 @@ -11,7 +11,7 @@ void -dump(DD_HALINFO *pHalInfo, char *text) +dump_halinfo(DD_HALINFO *pHalInfo, char *text) { printf("dumping the DD_HALINFO from %s\n",text); Modified: trunk/rosapps/dxtest/win32kdxtest/main.c URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/main.c…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/main.c (original) +++ trunk/rosapps/dxtest/win32kdxtest/main.c Thu Feb 22 22:21:10 2007 @@ -9,41 +9,17 @@ #include <wingdi.h> #include <winddi.h> #include <d3dnthal.h> - - - - +#include <dll/directx/d3d8thk.h> #include "test.h" -/* which syscall table shall we use WIndows or ReactOS */ +/* we using d3d8thk.dll it is doing the real syscall in windows 2000 + * in ReactOS and Windows XP and higher d3d8thk.dll it linking to + * gdi32.dll instead doing syscall, gdi32.dll export DdEntry1-56 + * and doing the syscall direcly. I did forget about it, This + * test program are now working on any Windows and ReactOS + * that got d3d8thk.dll + */ -/* Windows 2000 sp4 syscall table for win32k */ -#include "Windows2000Sp4.h" - -/* Windows syscall code */ -#include "windowsos.h" - -/* ReactOS syscall code */ -#include "sysreactos.h" - - -/* -#define DdQueryDirectDrawObject GdiEntry2 - -#define DdCreateSurfaceObject GdiEntry4 -#define DdDeleteSurfaceObject GdiEntry5 -#define DdResetVisrgn GdiEntry6 -#define DdGetDC GdiEntry7 -#define DdReleaseDC GdiEntry8 -#define DdCreateDIBSection GdiEntry9 -#define DdReenableDirectDrawObject GdiEntry10 -#define DdAttachSurface GdiEntry11 -#define DdUnattachSurface GdiEntry12 -#define DdQueryDisplaySettingsUniqueness GdiEntry13 -#define DdGetDxHandle GdiEntry14 -#define DdSetGammaRamp GdiEntry15 -#define DdSwapTextureHandles GdiEntry16 -*/ int main(int argc, char **argv) { HANDLE hDirectDrawLocal; @@ -69,10 +45,10 @@ printf("Start testing of NtGdiDdCreateDirectDrawObject\n"); - retValue = sysNtGdiDdCreateDirectDrawObject(NULL); + retValue = OsThunkDdCreateDirectDrawObject(NULL); testing_noteq(retValue,NULL,fails,"NtGdiDdCreateDirectDrawObject(NULL);\0"); - retValue = sysNtGdiDdCreateDirectDrawObject(hdc); + retValue = OsThunkDdCreateDirectDrawObject(hdc); testing_eq(retValue,NULL,fails,"NtGdiDdCreateDirectDrawObject(hdc);\0"); show_status(fails, "NtGdiDdCreateDirectDrawObject\0"); @@ -107,9 +83,9 @@ D3DNTHAL_GLOBALDRIVERDATA D3dDriverData; DD_D3DBUFCALLBACKS D3dBufferCallbacks; DDSURFACEDESC D3dTextureFormats; - //DWORD NumHeaps = 0; + // DWORD NumHeaps = 0; VIDEOMEMORY vmList; - //DWORD NumFourCC = 0; + // DWORD NumFourCC = 0; //DWORD FourCC = 0; /* clear data */ @@ -124,7 +100,7 @@ printf("Start testing of NtGdiDdQueryDirectDrawObject\n"); /* testing NULL */ - retValue = sysNtGdiDdQueryDirectDrawObject( NULL, pHalInfo, + retValue = OsThunkDdQueryDirectDrawObject( NULL, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, @@ -140,7 +116,7 @@ testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - retValue = sysNtGdiDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, @@ -163,7 +139,7 @@ */ pHalInfo = &HalInfo; - retValue = sysNtGdiDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, @@ -181,18 +157,12 @@ testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); testing_noteq(pHalInfo->dwSize,sizeof(DD_HALINFO),fails,"10. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); -#if DBG - dump(pHalInfo, "NtGdiDdQueryDirectDrawObject frist call"); -#endif - //pCallBackFlags = (DWORD *)&CallBackFlags; - //retValue = sysNtGdiDdQueryDirectDrawObject( hDirectDrawLocal, NULL, - // pCallBackFlags, puD3dCallbacks, - // puD3dDriverData, puD3dBufferCallbacks, - // puD3dTextureFormats, puNumHeaps, - // puvmList, puNumFourCC, - // puFourCC); + + + + show_status(fails, "NtGdiDdQueryDirectDrawObject\0"); } @@ -208,10 +178,10 @@ BOOL retValue=FALSE; printf("Start testing of NtGdiDdDeleteDirectDrawObject\n"); - retValue = sysNtGdiDdDeleteDirectDrawObject(hDirectDrawLocal); + retValue = OsThunkDdDeleteDirectDrawObject(hDirectDrawLocal); testing_eq(retValue,FALSE,fails,"NtGdiDdDeleteDirectDrawObject(hDirectDrawLocal);\0"); - retValue = sysNtGdiDdDeleteDirectDrawObject(NULL); + retValue = OsThunkDdDeleteDirectDrawObject(NULL); testing_eq(retValue,TRUE,fails,"NtGdiDdDeleteDirectDrawObject(NULL);\0"); show_status(fails, "NtGdiDdDeleteDirectDrawObject\0"); Removed: trunk/rosapps/dxtest/win32kdxtest/sysreactos.h URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/sysrea…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/sysreactos.h (original) +++ trunk/rosapps/dxtest/win32kdxtest/sysreactos.h (removed) @@ -1,7 +1,0 @@ - - -#if defined(__REACTOS__) - #define sysNtGdiDdCreateDirectDrawObject NtGdiDdCreateDirectDrawObject - #define sysNtGdiDdDeleteDirectDrawObject NtGdiDdDeleteDirectDrawObject - #define sysNtGdiDdQueryDirectDrawObject NtGdiDdQueryDirectDrawObject -#endif Modified: trunk/rosapps/dxtest/win32kdxtest/test.h URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/test.h…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/test.h (original) +++ trunk/rosapps/dxtest/win32kdxtest/test.h Thu Feb 22 22:21:10 2007 @@ -4,30 +4,13 @@ void test_NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal); void test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal); -void dump(DD_HALINFO *pHalInfo, char *text); +void dump_halinfo(DD_HALINFO *pHalInfo, char *text); -HANDLE sysNtGdiDdCreateDirectDrawObject(HDC hdc); -BOOL sysNtGdiDdDeleteDirectDrawObject( HANDLE hDirectDrawLocal); -BOOL sysNtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal, DD_HALINFO *pHalInfo, - DWORD *pCallBackFlags, - LPD3DNTHAL_CALLBACKS puD3dCallbacks, - LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, - PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, - LPDDSURFACEDESC puD3dTextureFormats, - DWORD *puNumHeaps, VIDEOMEMORY *puvmList, - DWORD *puNumFourCC, DWORD *puFourCC); -HANDLE NtGdiDdCreateDirectDrawObject(HDC hdc); -BOOL NtGdiDdDeleteDirectDrawObject( HANDLE hDirectDrawLocal); -BOOL NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal, DD_HALINFO *pHalInfo, - DWORD *pCallBackFlags, - LPD3DNTHAL_CALLBACKS puD3dCallbacks, - LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, - PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, - LPDDSURFACEDESC puD3dTextureFormats, - DWORD *puNumHeaps, VIDEOMEMORY *puvmList, - DWORD *puNumFourCC, DWORD *puFourCC); + + + Modified: trunk/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/win32k…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild (original) +++ trunk/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild Thu Feb 22 22:21:10 2007 @@ -7,9 +7,7 @@ <library>kernel32</library> <library>user32</library> <library>gdi32</library> + <library>d3d8thk</library> <file>main.c</file> - <file>dump.c</file> - <file>../../../../dll/win32/gdi32/misc/win32k.S</file> - - + <file>dump.c</file> </module> Removed: trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.sln URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/win32k…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.sln (original) +++ trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.sln (removed) @@ -1,32 +1,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "win32kdxtest", "win32kdxtest_vc8_auto.vcproj", "{40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug - Wine headers|Win32 = Debug - Wine headers|Win32 - Debug|Win32 = Debug|Win32 - Release - Wine headers|Win32 = Release - Wine headers|Win32 - Release|Win32 = Release|Win32 - Speed - Wine headers|Win32 = Speed - Wine headers|Win32 - Speed|Win32 = Speed|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Debug - Wine headers|Win32.ActiveCfg = Debug - Wine headers|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Debug - Wine headers|Win32.Build.0 = Debug - Wine headers|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Debug|Win32.ActiveCfg = Debug|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Debug|Win32.Build.0 = Debug|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Release - Wine headers|Win32.ActiveCfg = Release - Wine headers|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Release - Wine headers|Win32.Build.0 = Release - Wine headers|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Release|Win32.ActiveCfg = Release|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Release|Win32.Build.0 = Release|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Speed - Wine headers|Win32.ActiveCfg = Speed - Wine headers|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Speed - Wine headers|Win32.Build.0 = Speed - Wine headers|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Speed|Win32.ActiveCfg = Speed|Win32 - {40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}.Speed|Win32.Build.0 = Speed|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal Removed: trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.vcproj URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/win32k…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.vcproj (original) +++ trunk/rosapps/dxtest/win32kdxtest/win32kdxtest_vc8_auto.vcproj (removed) @@ -1,617 +1,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="win32kdxtest" - ProjectGUID="{40A5198A-36E0-4ABF-B17B-2C7C1F8365EF}" - RootNamespace="win32kdxtest" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - <DefaultToolFile - FileName="masm.rules" - /> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="..\..\..\..\output-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Debug" - IntermediateDirectory="..\..\..\..\obj-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Debug" - ConfigurationType="1" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="MASM" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - WholeProgramOptimization="false" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs" - PreprocessorDefinitions=";DBG;STDCALL=__stdcall;_DEBUG;_LIB;_M_IX86;_REACTOS_;_WIN32_IE=0x0501;_WIN32_WINNT=0x0501;_X86_;__USE_W32API;__i386__" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - BufferSecurityCheck="true" - EnableFunctionLevelLinking="true" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="false" - DebugInformationFormat="4" - CallingConvention="0" - CompileAs="1" - ForcedIncludeFiles="warning.h" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib user32.lib" - OutputFile="$(OutDir)/win32kdxtest.exe" - LinkIncremental="2" - AdditionalLibraryDirectories="..\..\..\..\output-i386\dll\win32\kernel32\vc8\Debug;..\..\..\..\output-i386\dll\win32\user32\vc8\Debug" - GenerateDebugInformation="true" - ProgramDatabaseFile="$(OutDir)/win32kdxtest.pdb" - SubSystem="1" - LinkTimeCodeGeneration="0" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - EmbedManifest="false" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="..\..\..\..\output-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Release" - IntermediateDirectory="..\..\..\..\obj-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Release" - ConfigurationType="1" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="MASM" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - FavorSizeOrSpeed="1" - WholeProgramOptimization="false" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs" - PreprocessorDefinitions=";DBG;STDCALL=__stdcall;_LIB;_M_IX86;_REACTOS_;_WIN32_IE=0x0501;_WIN32_WINNT=0x0501;_X86_;__USE_W32API;__i386__" - StringPooling="true" - MinimalRebuild="true" - BasicRuntimeChecks="0" - BufferSecurityCheck="false" - EnableFunctionLevelLinking="false" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="false" - DebugInformationFormat="3" - CallingConvention="0" - CompileAs="1" - ForcedIncludeFiles="warning.h" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib user32.lib" - OutputFile="$(OutDir)/win32kdxtest.exe" - LinkIncremental="1" - AdditionalLibraryDirectories="..\..\..\..\output-i386\dll\win32\kernel32\vc8\Release;..\..\..\..\output-i386\dll\win32\user32\vc8\Release" - GenerateDebugInformation="true" - SubSystem="1" - LinkTimeCodeGeneration="0" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - EmbedManifest="false" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Speed|Win32" - OutputDirectory="..\..\..\..\output-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Speed" - IntermediateDirectory="..\..\..\..\obj-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Speed" - ConfigurationType="1" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="MASM" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - WholeProgramOptimization="false" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs" - PreprocessorDefinitions=";DBG;STDCALL=__stdcall;_LIB;_M_IX86;_REACTOS_;_WIN32_IE=0x0501;_WIN32_WINNT=0x0501;_X86_;__USE_W32API;__i386__" - MinimalRebuild="false" - BasicRuntimeChecks="0" - BufferSecurityCheck="false" - EnableFunctionLevelLinking="false" - UsePrecompiledHeader="0" - WarningLevel="0" - Detect64BitPortabilityProblems="false" - DebugInformationFormat="0" - CallingConvention="0" - CompileAs="1" - ForcedIncludeFiles="warning.h" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib user32.lib" - OutputFile="$(OutDir)/win32kdxtest.exe" - LinkIncremental="1" - AdditionalLibraryDirectories="..\..\..\..\output-i386\dll\win32\kernel32\vc8\Speed;..\..\..\..\output-i386\dll\win32\user32\vc8\Speed" - GenerateDebugInformation="false" - SubSystem="1" - LinkTimeCodeGeneration="0" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - EmbedManifest="false" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug - Wine headers|Win32" - OutputDirectory="..\..\..\..\output-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Debug - Wine headers" - IntermediateDirectory="..\..\..\..\obj-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Debug - Wine headers" - ConfigurationType="1" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="MASM" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - WholeProgramOptimization="false" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs;../../../../include/psdk;../../../../include/crt;../../../../include/ddk;../../../../include/GL" - PreprocessorDefinitions=";DBG;_DEBUG;_LIB;_M_IX86;_REACTOS_;_WIN32_IE=0x0501;_WIN32_WINNT=0x0501;_X86_;__USE_W32API;__i386__" - GeneratePreprocessedFile="0" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - BufferSecurityCheck="true" - EnableFunctionLevelLinking="true" - UsePrecompiledHeader="0" - AssemblerOutput="3" - WarningLevel="3" - Detect64BitPortabilityProblems="false" - DebugInformationFormat="4" - CallingConvention="0" - CompileAs="1" - ForcedIncludeFiles="warning.h" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs;../../../../include/psdk;../../../../include/crt;../../../../include/ddk;../../../../include/GL" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib user32.lib" - OutputFile="$(OutDir)/win32kdxtest.exe" - LinkIncremental="2" - AdditionalLibraryDirectories="..\..\..\..\output-i386\dll\win32\kernel32\vc8\Debug - Wine headers;..\..\..\..\output-i386\dll\win32\user32\vc8\Debug - Wine headers" - GenerateDebugInformation="true" - ProgramDatabaseFile="$(OutDir)/win32kdxtest.pdb" - SubSystem="1" - LinkTimeCodeGeneration="0" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - EmbedManifest="false" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release - Wine headers|Win32" - OutputDirectory="..\..\..\..\output-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Release - Wine headers" - IntermediateDirectory="..\..\..\..\obj-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Release - Wine headers" - ConfigurationType="1" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="MASM" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - FavorSizeOrSpeed="1" - WholeProgramOptimization="false" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs;../../../../include/psdk;../../../../include/crt;../../../../include/ddk;../../../../include/GL" - PreprocessorDefinitions=";DBG;_LIB;_M_IX86;_REACTOS_;_WIN32_IE=0x0501;_WIN32_WINNT=0x0501;_X86_;__USE_W32API;__i386__" - StringPooling="true" - MinimalRebuild="true" - BasicRuntimeChecks="0" - BufferSecurityCheck="false" - EnableFunctionLevelLinking="false" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="false" - DebugInformationFormat="3" - CallingConvention="0" - CompileAs="1" - ForcedIncludeFiles="warning.h" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs;../../../../include/psdk;../../../../include/crt;../../../../include/ddk;../../../../include/GL" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib user32.lib" - OutputFile="$(OutDir)/win32kdxtest.exe" - LinkIncremental="1" - AdditionalLibraryDirectories="..\..\..\..\output-i386\dll\win32\kernel32\vc8\Release - Wine headers;..\..\..\..\output-i386\dll\win32\user32\vc8\Release - Wine headers" - GenerateDebugInformation="true" - SubSystem="1" - LinkTimeCodeGeneration="0" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - EmbedManifest="false" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Speed - Wine headers|Win32" - OutputDirectory="..\..\..\..\output-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Speed - Wine headers" - IntermediateDirectory="..\..\..\..\obj-i386\modules\rosapps\dxtest\win32kdxtest\vc8\Speed - Wine headers" - ConfigurationType="1" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="MASM" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - WholeProgramOptimization="false" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs;../../../../include/psdk;../../../../include/crt;../../../../include/ddk;../../../../include/GL" - PreprocessorDefinitions=";DBG;_LIB;_M_IX86;_REACTOS_;_WIN32_IE=0x0501;_WIN32_WINNT=0x0501;_X86_;__USE_W32API;__i386__" - MinimalRebuild="false" - BasicRuntimeChecks="0" - BufferSecurityCheck="false" - EnableFunctionLevelLinking="false" - UsePrecompiledHeader="0" - WarningLevel="0" - Detect64BitPortabilityProblems="false" - DebugInformationFormat="0" - CallingConvention="0" - CompileAs="1" - ForcedIncludeFiles="warning.h" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - AdditionalIncludeDirectories="./;../../../../.;../../../../include;../../../../include/ndk;../../../../include/reactos;../../../../include/reactos/libs;../../../../include/psdk;../../../../include/crt;../../../../include/ddk;../../../../include/GL" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib user32.lib" - OutputFile="$(OutDir)/win32kdxtest.exe" - LinkIncremental="1" - AdditionalLibraryDirectories="..\..\..\..\output-i386\dll\win32\kernel32\vc8\Speed - Wine headers;..\..\..\..\output-i386\dll\win32\user32\vc8\Speed - Wine headers" - GenerateDebugInformation="false" - SubSystem="1" - LinkTimeCodeGeneration="0" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - EmbedManifest="false" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;S" - > - <File - RelativePath=".\dump.c" - > - </File> - <File - RelativePath=".\main.c" - > - </File> - <File - RelativePath=".\sysreactos.h" - > - </File> - <File - RelativePath=".\test.h" - > - </File> - <File - RelativePath=".\Windows2000Sp4.h" - > - </File> - <File - RelativePath=".\windowsos.h" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Removed: trunk/rosapps/dxtest/win32kdxtest/windowsos.h URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/dxtest/win32kdxtest/window…
============================================================================== --- trunk/rosapps/dxtest/win32kdxtest/windowsos.h (original) +++ trunk/rosapps/dxtest/win32kdxtest/windowsos.h (removed) @@ -1,32 +1,0 @@ - -#if !defined(__REACTOS__) - - HANDLE sysNtGdiDdCreateDirectDrawObject(HDC hdc) - { - INT retValue; - win_syscall(hdc,retValue, syscallid_NtGdiDdCreateDirectDrawObject); - return retValue; - } - - BOOL sysNtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal) - { - INT retValue; - win_syscall(hDirectDrawLocal,retValue, syscallid_NtGdiDdDeleteDirectDrawObject); - return retValue; - } - - BOOL sysNtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal, DD_HALINFO *pHalInfo, - DWORD *pCallBackFlags, - LPD3DNTHAL_CALLBACKS puD3dCallbacks, - LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, - PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, - LPDDSURFACEDESC puD3dTextureFormats, - DWORD *puNumHeaps, VIDEOMEMORY *puvmList, - DWORD *puNumFourCC, DWORD *puFourCC) - { - INT retValue; - win_syscall(hDirectDrawLocal,retValue, syscallid_NtGdiDdQueryDirectDrawObject); - return retValue; - } - -#endif
17 years, 10 months
1
0
0
0
[greatlrd] 25877: Move d3d8thk.h for it being use for apps that need todo win32k syscall for directx graphice part
by greatlrd@svn.reactos.org
Author: greatlrd Date: Thu Feb 22 22:10:40 2007 New Revision: 25877 URL:
http://svn.reactos.org/svn/reactos?rev=25877&view=rev
Log: Move d3d8thk.h for it being use for apps that need todo win32k syscall for directx graphice part Added: trunk/reactos/include/reactos/dll/ trunk/reactos/include/reactos/dll/directx/ trunk/reactos/include/reactos/dll/directx/d3d8thk.h - copied, changed from r25874, trunk/reactos/dll/directx/d3d8thk/d3d8thk.h Removed: trunk/reactos/dll/directx/d3d8thk/d3d8thk.h Removed: trunk/reactos/dll/directx/d3d8thk/d3d8thk.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d8thk/d3d8th…
============================================================================== --- trunk/reactos/dll/directx/d3d8thk/d3d8thk.h (original) +++ trunk/reactos/dll/directx/d3d8thk/d3d8thk.h (removed) @@ -1,325 +1,0 @@ - -#ifndef __D3D8THK_H -#define __D3D8THK_H - -#include <ddrawint.h> -#include <d3dnthal.h> - -#ifdef __cplusplus -extern "C" { -#endif - -BOOL STDCALL OsThunkD3dContextCreate( - HANDLE hDirectDrawLocal, - HANDLE hSurfColor, - HANDLE hSurfZ, - PD3DNTHAL_CONTEXTCREATEDATA pdcci -); - -DWORD STDCALL OsThunkD3dContextDestroy( - PD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData -); - -DWORD STDCALL OsThunkD3dContextDestroyAll(VOID); - -DWORD STDCALL OsThunkD3dDrawPrimitives2( - HANDLE hCmdBuf, - HANDLE hVBuf, - PD3DNTHAL_DRAWPRIMITIVES2DATA pded, - FLATPTR *pfpVidMemCmd, - DWORD *pdwSizeCmd, - FLATPTR *pfpVidMemVtx, - DWORD *pdwSizeVtx -); - -DWORD STDCALL OsThunkD3dValidateTextureStageState( - PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData -); - -DWORD STDCALL OsThunkDdAddAttachedSurface( - HANDLE hSurface, - HANDLE hSurfaceAttached, - PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData -); - -DWORD STDCALL OsThunkDdAlphaBlt(VOID); - -BOOL STDCALL OsThunkDdAttachSurface( - HANDLE hSurfaceFrom, - HANDLE hSurfaceTo -); - -DWORD STDCALL OsThunkDdBeginMoCompFrame( - HANDLE hMoComp, - PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData -); - -DWORD STDCALL OsThunkDdBlt( - HANDLE hSurfaceDest, - HANDLE hSurfaceSrc, - PDD_BLTDATA puBltData -); - -DWORD STDCALL OsThunkDdCanCreateD3DBuffer( - HANDLE hDirectDraw, - PDD_CANCREATESURFACEDATA puCanCreateSurfaceData -); - -DWORD STDCALL OsThunkDdCanCreateSurface( - HANDLE hDirectDraw, - PDD_CANCREATESURFACEDATA puCanCreateSurfaceData -); - -DWORD STDCALL OsThunkDdColorControl( - HANDLE hSurface, - PDD_COLORCONTROLDATA puColorControlData -); - -DWORD STDCALL OsThunkDdCreateD3DBuffer( - HANDLE hDirectDraw, - HANDLE *hSurface, - DDSURFACEDESC *puSurfaceDescription, - DD_SURFACE_GLOBAL *puSurfaceGlobalData, - DD_SURFACE_LOCAL *puSurfaceLocalData, - DD_SURFACE_MORE *puSurfaceMoreData, - PDD_CREATESURFACEDATA puCreateSurfaceData, - HANDLE *puhSurface -); - -HANDLE STDCALL OsThunkDdCreateDirectDrawObject( - HDC hdc -); - -HANDLE STDCALL OsThunkDdCreateMoComp( - HANDLE hDirectDraw, - PDD_CREATEMOCOMPDATA puCreateMoCompData -); - -DWORD STDCALL OsThunkDdCreateSurface( - HANDLE hDirectDraw, - HANDLE *hSurface, - DDSURFACEDESC *puSurfaceDescription, - DD_SURFACE_GLOBAL *puSurfaceGlobalData, - DD_SURFACE_LOCAL *puSurfaceLocalData, - DD_SURFACE_MORE *puSurfaceMoreData, - PDD_CREATESURFACEDATA puCreateSurfaceData, - HANDLE *puhSurface -); - -DWORD STDCALL OsThunkDdCreateSurfaceEx( - HANDLE hDirectDraw, - HANDLE hSurface, - DWORD dwSurfaceHandle -); - -HANDLE STDCALL OsThunkDdCreateSurfaceObject( - HANDLE hDirectDrawLocal, - HANDLE hSurface, - PDD_SURFACE_LOCAL puSurfaceLocal, - PDD_SURFACE_MORE puSurfaceMore, - PDD_SURFACE_GLOBAL puSurfaceGlobal, - BOOL bComplete -); - -BOOL STDCALL OsThunkDdDeleteDirectDrawObject( - HANDLE hDirectDrawLocal -); - -BOOL STDCALL OsThunkDdDeleteSurfaceObject( - HANDLE hSurface -); - -DWORD STDCALL OsThunkDdDestroyD3DBuffer( - HANDLE hSurface -); - -DWORD STDCALL OsThunkDdDestroyMoComp( - HANDLE hMoComp, - PDD_DESTROYMOCOMPDATA puBeginFrameData -); - -DWORD STDCALL OsThunkDdDestroySurface( - HANDLE hSurface, - BOOL bRealDestroy -); - -DWORD STDCALL OsThunkDdEndMoCompFrame( - HANDLE hMoComp, - PDD_ENDMOCOMPFRAMEDATA puEndFrameData -); - -DWORD STDCALL OsThunkDdFlip( - HANDLE hSurfaceCurrent, - HANDLE hSurfaceTarget, - HANDLE hSurfaceCurrentLeft, - HANDLE hSurfaceTargetLeft, - PDD_FLIPDATA puFlipData -); - -DWORD STDCALL OsThunkDdFlipToGDISurface( - HANDLE hDirectDraw, - PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData -); - -DWORD STDCALL OsThunkDdGetAvailDriverMemory( - HANDLE hDirectDraw, - PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData -); - -DWORD STDCALL OsThunkDdGetBltStatus( - HANDLE hSurface, - PDD_GETBLTSTATUSDATA puGetBltStatusData -); - -HDC STDCALL OsThunkDdGetDC( - HANDLE hSurface, - PALETTEENTRY *puColorTable -); - -DWORD STDCALL OsThunkDdGetDriverInfo( - HANDLE hDirectDraw, - PDD_GETDRIVERINFODATA puGetDriverInfoData -); - -DWORD STDCALL OsThunkDdGetDriverState( - PDD_GETDRIVERSTATEDATA pdata -); - -DWORD STDCALL OsThunkDdGetDxHandle( - HANDLE hDirectDraw, - HANDLE hSurface, - BOOL bRelease -); - -DWORD STDCALL OsThunkDdGetFlipStatus( - HANDLE hSurface, - PDD_GETFLIPSTATUSDATA puGetFlipStatusData -); - -DWORD STDCALL OsThunkDdGetInternalMoCompInfo( - HANDLE hDirectDraw, - PDD_GETINTERNALMOCOMPDATA puGetInternalData -); - -DWORD STDCALL OsThunkDdGetMoCompBuffInfo( - HANDLE hDirectDraw, - PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData -); - -DWORD STDCALL OsThunkDdGetMoCompFormats( - HANDLE hDirectDraw, - PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData -); - -DWORD STDCALL OsThunkDdGetMoCompGuids( - HANDLE hDirectDraw, - PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData -); - -DWORD STDCALL OsThunkDdGetScanLine( - HANDLE hDirectDraw, - PDD_GETSCANLINEDATA puGetScanLineData -); - -DWORD STDCALL OsThunkDdLock( - HANDLE hSurface, - PDD_LOCKDATA puLockData, - HDC hdcClip -); - -DWORD STDCALL OsThunkDdLockD3D( - HANDLE hSurface, - PDD_LOCKDATA puLockData -); - -BOOL STDCALL OsThunkDdQueryDirectDrawObject( - HANDLE hDirectDrawLocal, - DD_HALINFO *pHalInfo, - DWORD *pCallBackFlags, - PD3DNTHAL_CALLBACKS puD3dCallbacks, - PD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, - PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, - LPDDSURFACEDESC puD3dTextureFormats, - DWORD *puNumHeaps, - VIDEOMEMORY *puvmList, - DWORD *puNumFourCC, - DWORD *puFourCC -); - -DWORD STDCALL OsThunkDdQueryMoCompStatus( - HANDLE hMoComp, - PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData -); - -BOOL STDCALL OsThunkDdReenableDirectDrawObject( - HANDLE hDirectDrawLocal, - BOOL *pubNewMode -); - -BOOL STDCALL OsThunkDdReleaseDC( - HANDLE hSurface -); - -DWORD STDCALL OsThunkDdRenderMoComp( - HANDLE hMoComp, - PDD_RENDERMOCOMPDATA puRenderMoCompData -); - -BOOL STDCALL OsThunkDdResetVisrgn( - HANDLE hSurface, - HWND hwnd -); - -DWORD STDCALL OsThunkDdSetColorKey( - HANDLE hSurface, - PDD_SETCOLORKEYDATA puSetColorKeyData -); - -DWORD STDCALL OsThunkDdSetExclusiveMode( - HANDLE hDirectDraw, - PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData -); - -BOOL STDCALL OsThunkDdSetGammaRamp( - HANDLE hDirectDraw, - HDC hdc, - LPVOID lpGammaRamp -); - -DWORD STDCALL OsThunkDdSetOverlayPosition( - HANDLE hSurfaceSource, - HANDLE hSurfaceDestination, - PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData -); - -VOID STDCALL OsThunkDdUnattachSurface( - HANDLE hSurface, - HANDLE hSurfaceAttached -); - -DWORD STDCALL OsThunkDdUnlock( - HANDLE hSurface, - PDD_UNLOCKDATA puUnlockData -); - -DWORD STDCALL OsThunkDdUnlockD3D( - HANDLE hSurface, - PDD_UNLOCKDATA puUnlockData -); - -DWORD STDCALL OsThunkDdUpdateOverlay( - HANDLE hSurfaceDestination, - HANDLE hSurfaceSource, - PDD_UPDATEOVERLAYDATA puUpdateOverlayData -); - -DWORD STDCALL OsThunkDdWaitForVerticalBlank( - HANDLE hDirectDraw, - PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData -); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif // __D3D8THK_H Copied: trunk/reactos/include/reactos/dll/directx/d3d8thk.h (from r25874, trunk/reactos/dll/directx/d3d8thk/d3d8thk.h) URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/dll/direct…
============================================================================== --- trunk/reactos/dll/directx/d3d8thk/d3d8thk.h (original) +++ trunk/reactos/include/reactos/dll/directx/d3d8thk.h Thu Feb 22 22:10:40 2007 @@ -9,6 +9,7 @@ extern "C" { #endif +/* FIXME missing PD3DNTHAL_CONTEXTCREATEDATA BOOL STDCALL OsThunkD3dContextCreate( HANDLE hDirectDrawLocal, HANDLE hSurfColor, @@ -16,12 +17,15 @@ PD3DNTHAL_CONTEXTCREATEDATA pdcci ); + DWORD STDCALL OsThunkD3dContextDestroy( PD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData ); +*/ DWORD STDCALL OsThunkD3dContextDestroyAll(VOID); +/* FIXME PD3DNTHAL_DRAWPRIMITIVES2DATA, PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA missing DWORD STDCALL OsThunkD3dDrawPrimitives2( HANDLE hCmdBuf, HANDLE hVBuf, @@ -35,6 +39,7 @@ DWORD STDCALL OsThunkD3dValidateTextureStageState( PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData ); +*/ DWORD STDCALL OsThunkDdAddAttachedSurface( HANDLE hSurface, @@ -86,9 +91,7 @@ HANDLE *puhSurface ); -HANDLE STDCALL OsThunkDdCreateDirectDrawObject( - HDC hdc -); +HANDLE STDCALL OsThunkDdCreateDirectDrawObject(HDC hdc); HANDLE STDCALL OsThunkDdCreateMoComp( HANDLE hDirectDraw, @@ -232,12 +235,13 @@ PDD_LOCKDATA puLockData ); -BOOL STDCALL OsThunkDdQueryDirectDrawObject( + +BOOL STDCALL OsThunkDdQueryDirectDrawObject( HANDLE hDirectDrawLocal, - DD_HALINFO *pHalInfo, + DD_HALINFO *pHalInfo, DWORD *pCallBackFlags, - PD3DNTHAL_CALLBACKS puD3dCallbacks, - PD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, + LPD3DNTHAL_CALLBACKS puD3dCallbacks, + LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, LPDDSURFACEDESC puD3dTextureFormats, DWORD *puNumHeaps, @@ -246,6 +250,7 @@ DWORD *puFourCC ); + DWORD STDCALL OsThunkDdQueryMoCompStatus( HANDLE hMoComp, PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData
17 years, 10 months
1
0
0
0
[spetreolle] 25876: fix build
by spetreolle@svn.reactos.org
Author: spetreolle Date: Thu Feb 22 21:48:01 2007 New Revision: 25876 URL:
http://svn.reactos.org/svn/reactos?rev=25876&view=rev
Log: fix build Modified: trunk/reactos/ntoskrnl/mm/sysldr.c Modified: trunk/reactos/ntoskrnl/mm/sysldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/sysldr.c?rev=2…
============================================================================== --- trunk/reactos/ntoskrnl/mm/sysldr.c (original) +++ trunk/reactos/ntoskrnl/mm/sysldr.c Thu Feb 22 21:48:01 2007 @@ -148,7 +148,7 @@ /* Get the hint and check if it's valid */ Hint = NameImport->Hint; if ((Hint < ExportDirectory->NumberOfNames) && - !(strcmp(NameImport->Name, (PCHAR)DllBase + NameTable[Hint]))) + !(strcmp((PCHAR) NameImport->Name, (PCHAR)DllBase + NameTable[Hint]))) { /* We have a match, get the ordinal number from here */ Ordinal = OrdinalTable[Hint]; @@ -163,7 +163,7 @@ Mid = (Low + High) >> 1; /* Compare name */ - Ret = strcmp(NameImport->Name, (PCHAR)DllBase + NameTable[Mid]); + Ret = strcmp((PCHAR)NameImport->Name, (PCHAR)DllBase + NameTable[Mid]); if (Ret < 0) { /* Update high */
17 years, 10 months
1
0
0
0
[ion] 25875: - Rename LdrLoadModule to MmLoadSystemImage and change prototype. No code change except update callers and return ImageBaseAddress parameter when requested.
by ion@svn.reactos.org
Author: ion Date: Thu Feb 22 21:30:50 2007 New Revision: 25875 URL:
http://svn.reactos.org/svn/reactos?rev=25875&view=rev
Log: - Rename LdrLoadModule to MmLoadSystemImage and change prototype. No code change except update callers and return ImageBaseAddress parameter when requested. Modified: trunk/reactos/ntoskrnl/ex/sysinfo.c trunk/reactos/ntoskrnl/include/internal/ldr.h trunk/reactos/ntoskrnl/io/iomgr/driver.c trunk/reactos/ntoskrnl/ldr/loader.c trunk/reactos/ntoskrnl/mm/sysldr.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 (original) +++ trunk/reactos/ntoskrnl/ex/sysinfo.c Thu Feb 22 21:30:50 2007 @@ -1267,7 +1267,6 @@ PVOID ImageBase; ULONG_PTR EntryPoint; NTSTATUS Status; - PLDR_DATA_TABLE_ENTRY ModuleObject; ULONG DirSize; PIMAGE_NT_HEADERS NtHeader; @@ -1283,11 +1282,15 @@ /* Load the driver */ ImageName = DriverInfo->DriverName; - Status = LdrLoadModule(&ImageName, &ModuleObject); + Status = MmLoadSystemImage(&ImageName, + NULL, + NULL, + 0, + NULL, + &ImageBase); if (!NT_SUCCESS(Status)) return Status; /* Return the export pointer */ - ImageBase = ModuleObject->DllBase; DriverInfo->ExportSectionPointer = RtlImageDirectoryEntryToData(ImageBase, TRUE, @@ -1479,11 +1482,15 @@ ImageName = *(PUNICODE_STRING)Buffer; /* Load the image */ - Status = LdrLoadModule(&ImageName, &ModuleObject); + Status = MmLoadSystemImage(&ImageName, + NULL, + NULL, + 0, + (PVOID)&ModuleObject, + &ImageBase); if (!NT_SUCCESS(Status)) return Status; /* Get the headers */ - ImageBase = ModuleObject->DllBase; NtHeader = RtlImageNtHeader(ImageBase); if (!NtHeader) { Modified: trunk/reactos/ntoskrnl/include/internal/ldr.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
============================================================================== --- trunk/reactos/ntoskrnl/include/internal/ldr.h (original) +++ trunk/reactos/ntoskrnl/include/internal/ldr.h Thu Feb 22 21:30:50 2007 @@ -66,10 +66,12 @@ NTSTATUS NTAPI -LdrLoadModule( - PUNICODE_STRING Filename, - PLDR_DATA_TABLE_ENTRY *ModuleObject -); +MmLoadSystemImage(IN PUNICODE_STRING FileName, + IN PUNICODE_STRING NamePrefix OPTIONAL, + IN PUNICODE_STRING LoadedName OPTIONAL, + IN ULONG Flags, + OUT PVOID *ModuleObject, + OUT PVOID *ImageBaseAddress); NTSTATUS NTAPI Modified: trunk/reactos/ntoskrnl/io/iomgr/driver.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/driver.c…
============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/driver.c (original) +++ trunk/reactos/ntoskrnl/io/iomgr/driver.c Thu Feb 22 21:30:50 2007 @@ -455,7 +455,7 @@ else { DPRINT("Loading module\n"); - Status = LdrLoadModule(&ServiceImagePath, ModuleObject); + Status = MmLoadSystemImage(&ServiceImagePath, NULL, NULL, 0, (PVOID)ModuleObject, NULL); } } else @@ -1721,11 +1721,10 @@ * Load the driver module */ - Status = LdrLoadModule(&ImagePath, &ModuleObject); - + Status = MmLoadSystemImage(&ImagePath, NULL, NULL, 0, (PVOID)&ModuleObject, NULL); if (!NT_SUCCESS(Status)) { - DPRINT("LdrLoadModule() failed (Status %lx)\n", Status); + DPRINT("MmLoadSystemImage() failed (Status %lx)\n", Status); IopFreeDeviceNode(DeviceNode); goto ReleaseCapturedString; } Modified: trunk/reactos/ntoskrnl/ldr/loader.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ldr/loader.c?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/ldr/loader.c (original) +++ trunk/reactos/ntoskrnl/ldr/loader.c Thu Feb 22 21:30:50 2007 @@ -173,9 +173,12 @@ // NTSTATUS NTAPI -LdrLoadModule( - PUNICODE_STRING FileName, - PLDR_DATA_TABLE_ENTRY *ModuleObject ) +MmLoadSystemImage(IN PUNICODE_STRING FileName, + IN PUNICODE_STRING NamePrefix OPTIONAL, + IN PUNICODE_STRING LoadedName OPTIONAL, + IN ULONG Flags, + OUT PVOID *ModuleObject, + OUT PVOID *ImageBaseAddress) { PVOID ModuleLoadBase; NTSTATUS Status; @@ -199,7 +202,8 @@ PCHAR MissingApiName, Buffer; PWCHAR MissingDriverName; - *ModuleObject = NULL; + if (ModuleObject) *ModuleObject = NULL; + if (ImageBaseAddress) *ImageBaseAddress = NULL; DPRINT("Loading Module %wZ...\n", FileName); @@ -507,7 +511,8 @@ /* Cleanup */ ExFreePool(ModuleLoadBase); - *ModuleObject = Module; + if (ModuleObject) *ModuleObject = Module; + if (ImageBaseAddress) *ImageBaseAddress = Module->DllBase; /* Hook for KDB on loading a driver. */ KDB_LOADDRIVER_HOOK(FileName, Module); Modified: trunk/reactos/ntoskrnl/mm/sysldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/sysldr.c?rev=2…
============================================================================== --- trunk/reactos/ntoskrnl/mm/sysldr.c (original) +++ trunk/reactos/ntoskrnl/mm/sysldr.c Thu Feb 22 21:30:50 2007 @@ -484,7 +484,12 @@ DllName.Buffer[(DllName.MaximumLength - 1) / 2] = UNICODE_NULL; /* Load the image */ - Status = LdrLoadModule(&DllName, &DllEntry); + Status = MmLoadSystemImage(&DllName, + NamePrefix, + NULL, + 0, + (PVOID)&DllEntry, + &DllBase); if (NT_SUCCESS(Status)) { /* We can free the DLL Name */ @@ -511,8 +516,7 @@ /* We're now loaded */ Loaded = TRUE; - /* Get the base address and other information */ - DllBase = DllEntry->DllBase; + /* Sanity check */ ASSERT(DllBase = DllEntry->DllBase); /* Call the initialization routines */
17 years, 10 months
1
0
0
0
[ion] 25874: - Improve LdrGetModuleObject (in FreeLDR) to handle partial names too, so NTOSKRNL will still match NTOSKRNL.EXE. This is needed for forwarder support. - Implement LdrPEFixupForward in FreeLDR and update LdrPEGetExportByName to use it, so that FreeLDR can now parse import tables with forwarders. - Add call to MmInitSystem for Phase 0 in ExpInitializeExecutive. - Completely redesign the way boot drivers are handled. They're now re-mapped during Phase 0 MmInit (part of the re-mapping
by ion@svn.reactos.org
Author: ion Date: Thu Feb 22 21:02:53 2007 New Revision: 25874 URL:
http://svn.reactos.org/svn/reactos?rev=25874&view=rev
Log: - Improve LdrGetModuleObject (in FreeLDR) to handle partial names too, so NTOSKRNL will still match NTOSKRNL.EXE. This is needed for forwarder support. - Implement LdrPEFixupForward in FreeLDR and update LdrPEGetExportByName to use it, so that FreeLDR can now parse import tables with forwarders. - Add call to MmInitSystem for Phase 0 in ExpInitializeExecutive. - Completely redesign the way boot drivers are handled. They're now re-mapped during Phase 0 MmInit (part of the re-mapping is a hack until FreeLDR 2.5 is ready) and the IoMgr only does I/O stuff, not PE loading anymore (this is only half-true, we still process imports until FreeLDR 2.5 is done). - Also re-design the way the module list head is initialized and used. LdrInit1 is now gone, Phase 0 MmInit now handles initializing it and copying boot loader data to it. - Some code is still missing and functions still need to be improved. - When FreeLDR 2.5 is ready some of the hacks will go away, they're #ifed for now to make it easy to switch. Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c trunk/reactos/ntoskrnl/ex/init.c trunk/reactos/ntoskrnl/include/internal/ex.h trunk/reactos/ntoskrnl/include/internal/mm.h trunk/reactos/ntoskrnl/io/iomgr/driver.c trunk/reactos/ntoskrnl/ke/i386/kiinit.c trunk/reactos/ntoskrnl/ldr/loader.c trunk/reactos/ntoskrnl/mm/mminit.c trunk/reactos/ntoskrnl/mm/sysldr.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c Thu Feb 22 21:02:53 2007 @@ -127,6 +127,12 @@ IN INT nPos, IN BOOLEAN IsKernel); +PVOID +NTAPI +LdrPEGetExportByName(PVOID BaseAddress, + PUCHAR SymbolName, + USHORT Hint); + /* FUNCTIONS *****************************************************************/ /*++ @@ -300,6 +306,46 @@ PageDir->Pde[0].PageFrameNumber = 1; } +PLOADER_MODULE +NTAPI +LdrGetModuleObject(PCHAR ModuleName) +{ + ULONG i; + + for (i = 0; i < LoaderBlock.ModsCount; i++) + { + if (strstr(_strupr((PCHAR)reactos_modules[i].String), _strupr(ModuleName))) + { + return &reactos_modules[i]; + } + } + + return NULL; +} + +PVOID +NTAPI +LdrPEFixupForward(IN PCHAR ForwardName) +{ + CHAR NameBuffer[128]; + PCHAR p; + PLOADER_MODULE ModuleObject; + + strcpy(NameBuffer, ForwardName); + p = strchr(NameBuffer, '.'); + if (p == NULL) return NULL; + *p = 0; + + ModuleObject = LdrGetModuleObject(NameBuffer); + if (!ModuleObject) + { + DbgPrint("LdrPEFixupForward: failed to find module %s\n", NameBuffer); + return NULL; + } + + return LdrPEGetExportByName((PVOID)ModuleObject->ModStart, (PUCHAR)(p + 1), 0xffff); +} + PVOID NTAPI LdrPEGetExportByName(PVOID BaseAddress, @@ -360,10 +406,10 @@ if ((ULONG_PTR)Function >= (ULONG_PTR)ExportDir && (ULONG_PTR)Function < (ULONG_PTR)ExportDir + ExportDirSize) { - Function = NULL; + Function = LdrPEFixupForward((PCHAR)Function); if (Function == NULL) { - DbgPrint("LdrPEGetExportByName(): failed to find %s\n",SymbolName); + DbgPrint("LdrPEGetExportByName(): failed to find %s\n", Function); } return Function; } @@ -390,10 +436,10 @@ if ((ULONG_PTR)Function >= (ULONG_PTR)ExportDir && (ULONG_PTR)Function < (ULONG_PTR)ExportDir + ExportDirSize) { - Function = NULL; + Function = LdrPEFixupForward((PCHAR)Function); if (Function == NULL) { - DbgPrint("LdrPEGetExportByName(): failed to find %s\n",SymbolName); + DbgPrint("1: failed to find %s\n", Function); } return Function; } @@ -413,7 +459,7 @@ } ExName = RVA(BaseAddress, ExNames[mid]); - DbgPrint("LdrPEGetExportByName(): failed to find %s\n",SymbolName); + DbgPrint("2: failed to find %s\n",SymbolName); return (PVOID)NULL; } @@ -472,23 +518,6 @@ FunctionNameList++; } return STATUS_SUCCESS; -} - -PLOADER_MODULE -NTAPI -LdrGetModuleObject(PCHAR ModuleName) -{ - ULONG i; - - for (i = 0; i < LoaderBlock.ModsCount; i++) - { - if (!_stricmp((PCHAR)reactos_modules[i].String, ModuleName)) - { - return &reactos_modules[i]; - } - } - - return NULL; } NTSTATUS Modified: trunk/reactos/ntoskrnl/ex/init.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=258…
============================================================================== --- trunk/reactos/ntoskrnl/ex/init.c (original) +++ trunk/reactos/ntoskrnl/ex/init.c Thu Feb 22 21:02:53 2007 @@ -896,6 +896,9 @@ /* Initialize the executive at phase 0 */ if (!ExInitSystem()) KEBUGCHECK(PHASE0_INITIALIZATION_FAILED); + /* Initialize the memory manager at phase 0 */ + if (!MmInitSystem(0, LoaderBlock)) KeBugCheck(MEMORY1_INITIALIZATION_FAILED); + /* Load boot symbols */ ExpLoadBootSymbols(LoaderBlock); Modified: trunk/reactos/ntoskrnl/include/internal/ex.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
============================================================================== --- trunk/reactos/ntoskrnl/include/internal/ex.h (original) +++ trunk/reactos/ntoskrnl/include/internal/ex.h Thu Feb 22 21:02:53 2007 @@ -20,6 +20,7 @@ ULONG ExpAnsiCodePageDataOffset, ExpOemCodePageDataOffset; ULONG ExpUnicodeCaseTableDataOffset; PVOID ExpNlsSectionPointer; +extern ULONG ExpInitializationPhase; typedef struct _EXHANDLE { Modified: trunk/reactos/ntoskrnl/include/internal/mm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
============================================================================== --- trunk/reactos/ntoskrnl/include/internal/mm.h (original) +++ trunk/reactos/ntoskrnl/include/internal/mm.h Thu Feb 22 21:02:53 2007 @@ -1429,4 +1429,17 @@ OUT PULONG ResultLength ); +VOID +NTAPI +MiReloadBootLoadedDrivers( + IN PLOADER_PARAMETER_BLOCK LoaderBlock +); + +BOOLEAN +NTAPI +MiInitializeLoadedModuleList( + IN PLOADER_PARAMETER_BLOCK LoaderBlock +); + + #endif Modified: trunk/reactos/ntoskrnl/io/iomgr/driver.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/driver.c…
============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/driver.c (original) +++ trunk/reactos/ntoskrnl/io/iomgr/driver.c Thu Feb 22 21:02:53 2007 @@ -34,10 +34,10 @@ /* DECLARATIONS ***************************************************************/ NTSTATUS -LdrProcessModule( - PVOID ModuleLoadBase, - PUNICODE_STRING ModuleName, - PLDR_DATA_TABLE_ENTRY *ModuleObject +NTAPI +LdrTemporaryDriverHack( + PLDR_DATA_TABLE_ENTRY ModuleObject, + PUNICODE_STRING ModuleName ); /* PRIVATE FUNCTIONS **********************************************************/ @@ -452,66 +452,6 @@ /* FIXME: Check if it is the right status code */ Status = STATUS_PLUGPLAY_NO_DEVICE; } - - /* - * Special case for boot modules that were loaded by boot loader. - */ - - else if (KeLoaderBlock) - { - WCHAR SearchNameBuffer[256]; - UNICODE_STRING SearchName; - PLIST_ENTRY ListHead, NextEntry; - PLDR_DATA_TABLE_ENTRY LdrEntry; - - Status = STATUS_UNSUCCESSFUL; - - /* - * FIXME: - * Improve this searching algorithm by using the image name - * stored in registry entry ImageName and use the whole path - * (requires change in FreeLoader). - */ - swprintf(SearchNameBuffer, L"%wZ.sys", ServiceName); - RtlInitUnicodeString(&SearchName, SearchNameBuffer); - - /* Loop the boot modules */ - ListHead = &KeLoaderBlock->LoadOrderListHead; - NextEntry = ListHead->Flink->Flink; - while (ListHead != NextEntry) - { - /* Get the entry */ - LdrEntry = CONTAINING_RECORD(NextEntry, - LDR_DATA_TABLE_ENTRY, - InLoadOrderLinks); - - /* Compare names */ - if (RtlEqualUnicodeString(&LdrEntry->BaseDllName, &SearchName, TRUE)) - { - /* Tell, that the module is already loaded */ - LdrEntry->Flags |= LDRP_ENTRY_INSERTED; - - Status = LdrProcessModule(LdrEntry->DllBase, - &ServiceImagePath, - ModuleObject); - - KDB_SYMBOLFILE_HOOK(&SearchName); - break; - } - - /* Go to the next driver */ - NextEntry = NextEntry->Flink; - } - - if (!NT_SUCCESS(Status)) - /* Try to load it. It may just have been installed by PnP manager */ - Status = LdrLoadModule(&ServiceImagePath, ModuleObject); - } - - /* - * Case for rest of the drivers - */ - else { DPRINT("Loading module\n"); @@ -805,28 +745,116 @@ return STATUS_SUCCESS; } +NTSTATUS +NTAPI +MiResolveImageReferences(IN PVOID ImageBase, + IN PUNICODE_STRING ImageFileDirectory, + IN PUNICODE_STRING NamePrefix OPTIONAL, + OUT PCHAR *MissingApi, + OUT PWCHAR *MissingDriver, + OUT PLOAD_IMPORTS *LoadImports); + +extern KSPIN_LOCK PsLoadedModuleSpinLock; + +// +// Used for images already loaded (boot drivers) +// +NTSTATUS +NTAPI +LdrProcessDriverModule(PLDR_DATA_TABLE_ENTRY LdrEntry, + PUNICODE_STRING FileName, + PLDR_DATA_TABLE_ENTRY *ModuleObject) +{ + NTSTATUS Status; + PLDR_DATA_TABLE_ENTRY NewEntry; + UNICODE_STRING BaseName, BaseDirectory; + PLOAD_IMPORTS LoadedImports = (PVOID)-2; + PCHAR MissingApiName, Buffer; + PWCHAR MissingDriverName; + PVOID DriverBase = LdrEntry->DllBase; + + /* Allocate a buffer we'll use for names */ + Buffer = ExAllocatePoolWithTag(NonPagedPool, MAX_PATH, TAG_LDR_WSTR); + if (!Buffer) + { + /* Fail */ + return STATUS_INSUFFICIENT_RESOURCES; + } + + /* Check for a separator */ + if (FileName->Buffer[0] == OBJ_NAME_PATH_SEPARATOR) + { + PWCHAR p; + ULONG BaseLength; + + /* Loop the path until we get to the base name */ + p = &FileName->Buffer[FileName->Length / sizeof(WCHAR)]; + while (*(p - 1) != OBJ_NAME_PATH_SEPARATOR) p--; + + /* Get the length */ + BaseLength = (ULONG)(&FileName->Buffer[FileName->Length / sizeof(WCHAR)] - p); + BaseLength *= sizeof(WCHAR); + + /* Setup the string */ + BaseName.Length = (USHORT)BaseLength; + BaseName.Buffer = p; + } + else + { + /* Otherwise, we already have a base name */ + BaseName.Length = FileName->Length; + BaseName.Buffer = FileName->Buffer; + } + + /* Setup the maximum length */ + BaseName.MaximumLength = BaseName.Length; + + /* Now compute the base directory */ + BaseDirectory = *FileName; + BaseDirectory.Length -= BaseName.Length; + BaseDirectory.MaximumLength = BaseDirectory.Length; + + NewEntry = LdrEntry; + + /* Resolve imports */ + MissingApiName = Buffer; + Status = MiResolveImageReferences(DriverBase, + &BaseDirectory, + NULL, + &MissingApiName, + &MissingDriverName, + &LoadedImports); + if (!NT_SUCCESS(Status)) + { + /* Fail */ + ExFreePool(LdrEntry->FullDllName.Buffer); + ExFreePool(LdrEntry); + return Status; + } + + /* Return */ + *ModuleObject = LdrEntry; + return STATUS_SUCCESS; +} + /* * IopInitializeBuiltinDriver * * Initialize a driver that is already loaded in memory. */ -NTSTATUS FASTCALL INIT_FUNCTION -IopInitializeBuiltinDriver( - PDEVICE_NODE ModuleDeviceNode, - PVOID ModuleLoadBase, - PUNICODE_STRING ModuleName, - ULONG ModuleLength) -{ - PLDR_DATA_TABLE_ENTRY ModuleObject; - PDEVICE_NODE DeviceNode; - PDRIVER_OBJECT DriverObject; - NTSTATUS Status; - PWCHAR FileNameWithoutPath; - LPWSTR FileExtension; - - DPRINT("Initializing driver '%wZ' at %08lx, length 0x%08lx\n", - ModuleName, ModuleLoadBase, ModuleLength); +NTSTATUS +NTAPI +IopInitializeBuiltinDriver(IN PLDR_DATA_TABLE_ENTRY LdrEntry) +{ + PDEVICE_NODE DeviceNode; + PDRIVER_OBJECT DriverObject; + NTSTATUS Status; + PWCHAR FileNameWithoutPath; + LPWSTR FileExtension; + PUNICODE_STRING ModuleName = &LdrEntry->BaseDllName; + PLDR_DATA_TABLE_ENTRY ModuleObject; + /* * Display 'Loading XXX...' message @@ -836,9 +864,6 @@ /* * Determine the right device object */ - - if (ModuleDeviceNode == NULL) - { /* Use IopRootDeviceNode for now */ Status = IopCreateDeviceNode(IopRootDeviceNode, NULL, &DeviceNode); if (!NT_SUCCESS(Status)) @@ -846,15 +871,11 @@ CPRINT("Driver '%wZ' load failed, status (%x)\n", ModuleName, Status); return(Status); } - } else - { - DeviceNode = ModuleDeviceNode; - } + /* * Generate filename without path (not needed by freeldr) */ - FileNameWithoutPath = wcsrchr(ModuleName->Buffer, L'\\'); if (FileNameWithoutPath == NULL) { @@ -866,17 +887,15 @@ } /* - * Load the module + * Load the module. Remove for FreeLDR 2.5. */ RtlCreateUnicodeString(&DeviceNode->ServiceName, FileNameWithoutPath); - Status = LdrProcessModule(ModuleLoadBase, &DeviceNode->ServiceName, - &ModuleObject); + Status = LdrProcessDriverModule(LdrEntry, &DeviceNode->ServiceName, &ModuleObject); if (!NT_SUCCESS(Status)) { - if (ModuleDeviceNode == NULL) - IopFreeDeviceNode(DeviceNode); - CPRINT("Driver '%wZ' load failed, status (%x)\n", ModuleName, Status); - return Status; + IopFreeDeviceNode(DeviceNode); + CPRINT("Driver '%wZ' load failed, status (%x)\n", ModuleName, Status); + return Status; } /* Load symbols */ @@ -885,7 +904,6 @@ /* * Strip the file extension from ServiceName */ - FileExtension = wcsrchr(DeviceNode->ServiceName.Buffer, '.'); if (FileExtension != NULL) { @@ -896,13 +914,11 @@ /* * Initialize the driver */ - Status = IopInitializeDriverModule(DeviceNode, ModuleObject, &DeviceNode->ServiceName, FALSE, &DriverObject); if (!NT_SUCCESS(Status)) { - if (ModuleDeviceNode == NULL) IopFreeDeviceNode(DeviceNode); CPRINT("Driver '%wZ' load failed, status (%x)\n", ModuleName, Status); return Status; @@ -1005,31 +1021,9 @@ if (!(LdrEntry->Flags & LDRP_ENTRY_INSERTED)) { /* Initialize it */ - IopInitializeBuiltinDriver(NULL, - LdrEntry->DllBase, - &LdrEntry->BaseDllName, - LdrEntry->SizeOfImage); + IopInitializeBuiltinDriver(LdrEntry); } } - - /* Go to the next driver */ - NextEntry = NextEntry->Flink; - } - - /* Loop modules again */ - NextEntry = ListHead->Flink; - while (ListHead != NextEntry) - { - /* Get the entry */ - LdrEntry = CONTAINING_RECORD(NextEntry, - LDR_DATA_TABLE_ENTRY, - InLoadOrderLinks); - - /* Free memory */ - DPRINT("Driver at: %p ending at: %p for module: %wZ\n", - LdrEntry->DllBase, - (ULONG_PTR)LdrEntry->DllBase+ LdrEntry->SizeOfImage, - &LdrEntry->FullDllName); /* Go to the next driver */ NextEntry = NextEntry->Flink; Modified: trunk/reactos/ntoskrnl/ke/i386/kiinit.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/kiinit.c?…
============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/kiinit.c (original) +++ trunk/reactos/ntoskrnl/ke/i386/kiinit.c Thu Feb 22 21:02:53 2007 @@ -533,9 +533,6 @@ 0, 4096); - /* Sets up the Text Sections of the Kernel and HAL for debugging */ - LdrInit1(); - /* Set the NX Support policy */ SharedUserData->NXSupportPolicy = (UCHAR)NXSupportPolicy; Modified: trunk/reactos/ntoskrnl/ldr/loader.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ldr/loader.c?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/ldr/loader.c (original) +++ trunk/reactos/ntoskrnl/ldr/loader.c Thu Feb 22 21:02:53 2007 @@ -17,13 +17,6 @@ #include <ntoskrnl.h> #define NDEBUG #include <debug.h> - -/* GLOBALS *******************************************************************/ - -LIST_ENTRY PsLoadedModuleList; -KSPIN_LOCK ModuleListLock; -LDR_DATA_TABLE_ENTRY NtoskrnlModuleObject; -LDR_DATA_TABLE_ENTRY HalModuleObject; /* FUNCTIONS *****************************************************************/ @@ -105,52 +98,7 @@ return(0); } -VOID -INIT_FUNCTION -NTAPI -LdrInit1(VOID) -{ - PLDR_DATA_TABLE_ENTRY HalModuleObject, NtoskrnlModuleObject, LdrEntry; - - /* Initialize the module list and spinlock */ - InitializeListHead(&PsLoadedModuleList); - KeInitializeSpinLock(&ModuleListLock); - - /* Get the NTOSKRNL Entry from the loader */ - LdrEntry = CONTAINING_RECORD(KeLoaderBlock->LoadOrderListHead.Flink, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); - - /* Initialize ModuleObject for NTOSKRNL */ - NtoskrnlModuleObject = ExAllocatePoolWithTag(PagedPool, - sizeof(LDR_DATA_TABLE_ENTRY), - TAG('M', 'm', 'L', 'd')); - NtoskrnlModuleObject->DllBase = LdrEntry->DllBase; - RtlInitUnicodeString(&NtoskrnlModuleObject->FullDllName, KERNEL_MODULE_NAME); - NtoskrnlModuleObject->BaseDllName = NtoskrnlModuleObject->FullDllName; - NtoskrnlModuleObject->EntryPoint = LdrEntry->EntryPoint; - NtoskrnlModuleObject->SizeOfImage = LdrEntry->SizeOfImage; - - /* Insert it into the list */ - InsertTailList(&PsLoadedModuleList, &NtoskrnlModuleObject->InLoadOrderLinks); - - /* Get the HAL Entry from the loader */ - LdrEntry = CONTAINING_RECORD(KeLoaderBlock->LoadOrderListHead.Flink->Flink, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); - - /* Initialize ModuleObject for HAL */ - HalModuleObject = ExAllocatePoolWithTag(PagedPool, - sizeof(LDR_DATA_TABLE_ENTRY), - TAG('M', 'm', 'L', 'd')); - HalModuleObject->DllBase = LdrEntry->DllBase; - RtlInitUnicodeString(&HalModuleObject->FullDllName, HAL_MODULE_NAME); - HalModuleObject->BaseDllName = HalModuleObject->FullDllName; - HalModuleObject->EntryPoint = LdrEntry->EntryPoint; - HalModuleObject->SizeOfImage = LdrEntry->SizeOfImage; - - /* Insert it into the list */ - InsertTailList(&PsLoadedModuleList, &HalModuleObject->InLoadOrderLinks); - - /* Hook for KDB on initialization of the loader. */ - KDB_LOADERINIT_HOOK(NtoskrnlModuleObject, HalModuleObject); -} +extern KSPIN_LOCK PsLoadedModuleSpinLock; // // Used for checking if a module is already in the module list. @@ -166,7 +114,7 @@ DPRINT("LdrGetModuleObject(%wZ) called\n", ModuleName); - KeAcquireSpinLock(&ModuleListLock,&Irql); + KeAcquireSpinLock(&PsLoadedModuleSpinLock,&Irql); Entry = PsLoadedModuleList.Flink; while (Entry != &PsLoadedModuleList) @@ -180,14 +128,14 @@ if (!LdrpCompareModuleNames(&Module->BaseDllName, ModuleName)) { DPRINT("Module %wZ\n", &Module->BaseDllName); - KeReleaseSpinLock(&ModuleListLock, Irql); + KeReleaseSpinLock(&PsLoadedModuleSpinLock, Irql); return(Module); } Entry = Entry->Flink; } - KeReleaseSpinLock(&ModuleListLock, Irql); + KeReleaseSpinLock(&PsLoadedModuleSpinLock, Irql); DPRINT("Could not find module '%wZ'\n", ModuleName); @@ -204,9 +152,9 @@ KIRQL Irql; /* Remove the module from the module list */ - KeAcquireSpinLock(&ModuleListLock,&Irql); + KeAcquireSpinLock(&PsLoadedModuleSpinLock,&Irql); RemoveEntryList(&ModuleObject->InLoadOrderLinks); - KeReleaseSpinLock(&ModuleListLock, Irql); + KeReleaseSpinLock(&PsLoadedModuleSpinLock, Irql); /* Hook for KDB on unloading a driver. */ KDB_UNLOADDRIVER_HOOK(ModuleObject); @@ -221,29 +169,104 @@ } // -// Used for images already loaded (boot drivers) +// Used by NtLoadDriver/IoMgr // NTSTATUS -LdrProcessModule(PVOID ModuleLoadBase, - PUNICODE_STRING FileName, - PLDR_DATA_TABLE_ENTRY *ModuleObject) +NTAPI +LdrLoadModule( + PUNICODE_STRING FileName, + PLDR_DATA_TABLE_ENTRY *ModuleObject ) { + PVOID ModuleLoadBase; + NTSTATUS Status; + HANDLE FileHandle; + OBJECT_ATTRIBUTES ObjectAttributes; + PLDR_DATA_TABLE_ENTRY Module; + FILE_STANDARD_INFORMATION FileStdInfo; + IO_STATUS_BLOCK IoStatusBlock; unsigned int DriverSize, Idx; ULONG CurrentSize; PVOID DriverBase; PIMAGE_DOS_HEADER PEDosHeader; PIMAGE_NT_HEADERS PENtHeaders; PIMAGE_SECTION_HEADER PESectionHeaders; - NTSTATUS Status; KIRQL Irql; PIMAGE_NT_HEADERS NtHeader; UNICODE_STRING BaseName, BaseDirectory, PrefixName; PLDR_DATA_TABLE_ENTRY LdrEntry; ULONG EntrySize; PLOAD_IMPORTS LoadedImports = (PVOID)-2; - PWSTR NameBuffer; PCHAR MissingApiName, Buffer; PWCHAR MissingDriverName; + + *ModuleObject = NULL; + + DPRINT("Loading Module %wZ...\n", FileName); + + /* Open the Module */ + InitializeObjectAttributes(&ObjectAttributes, + FileName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + + Status = ZwOpenFile(&FileHandle, + GENERIC_READ, + &ObjectAttributes, + &IoStatusBlock, + FILE_SHARE_READ, + FILE_SYNCHRONOUS_IO_NONALERT); + + if (!NT_SUCCESS(Status)) + { + DPRINT("Could not open module file: %wZ (Status 0x%08lx)\n", FileName, Status); + return(Status); + } + + + /* Get the size of the file */ + Status = ZwQueryInformationFile(FileHandle, + &IoStatusBlock, + &FileStdInfo, + sizeof(FileStdInfo), + FileStandardInformation); + if (!NT_SUCCESS(Status)) + { + DPRINT("Could not get file size\n"); + NtClose(FileHandle); + return(Status); + } + + + /* Allocate nonpageable memory for driver */ + ModuleLoadBase = ExAllocatePoolWithTag(NonPagedPool, + FileStdInfo.EndOfFile.u.LowPart, + TAG_DRIVER_MEM); + if (ModuleLoadBase == NULL) + { + DPRINT("Could not allocate memory for module"); + NtClose(FileHandle); + return(STATUS_INSUFFICIENT_RESOURCES); + } + + + /* Load driver into memory chunk */ + Status = ZwReadFile(FileHandle, + 0, 0, 0, + &IoStatusBlock, + ModuleLoadBase, + FileStdInfo.EndOfFile.u.LowPart, + 0, 0); + if (!NT_SUCCESS(Status)) + { + DPRINT("Could not read module file into memory"); + ExFreePool(ModuleLoadBase); + NtClose(FileHandle); + return(Status); + } + + + ZwClose(FileHandle); DPRINT("Processing PE Module at module base:%08lx\n", ModuleLoadBase); @@ -414,9 +437,6 @@ LdrEntry->Flags |= 0x80000000; } - /* We'll put the name after the entry */ - NameBuffer = (PVOID)(LdrEntry + 1); - /* Setup the rest of the entry */ LdrEntry->DllBase = DriverBase; LdrEntry->EntryPoint = (PVOID)((ULONG_PTR)DriverBase + @@ -426,7 +446,7 @@ LdrEntry->SectionPointer = LdrEntry; /* Now write the DLL name */ - LdrEntry->BaseDllName.Buffer = NameBuffer; + LdrEntry->BaseDllName.Buffer = (PVOID)(LdrEntry + 1); LdrEntry->BaseDllName.Length = BaseName.Length; LdrEntry->BaseDllName.MaximumLength = BaseName.Length; @@ -461,9 +481,9 @@ } /* Insert the entry */ - KeAcquireSpinLock(&ModuleListLock, &Irql); + KeAcquireSpinLock(&PsLoadedModuleSpinLock, &Irql); InsertTailList(&PsLoadedModuleList, &LdrEntry->InLoadOrderLinks); - KeReleaseSpinLock(&ModuleListLock, Irql); + KeReleaseSpinLock(&PsLoadedModuleSpinLock, Irql); /* Resolve imports */ MissingApiName = Buffer; @@ -482,105 +502,7 @@ } /* Return */ - *ModuleObject = LdrEntry; - return STATUS_SUCCESS; -} - -// -// Used by NtLoadDriver/IoMgr -// -NTSTATUS -NTAPI -LdrLoadModule( - PUNICODE_STRING Filename, - PLDR_DATA_TABLE_ENTRY *ModuleObject ) -{ - PVOID ModuleLoadBase; - NTSTATUS Status; - HANDLE FileHandle; - OBJECT_ATTRIBUTES ObjectAttributes; - PLDR_DATA_TABLE_ENTRY Module; - FILE_STANDARD_INFORMATION FileStdInfo; - IO_STATUS_BLOCK IoStatusBlock; - - *ModuleObject = NULL; - - DPRINT("Loading Module %wZ...\n", Filename); - - /* Open the Module */ - InitializeObjectAttributes(&ObjectAttributes, - Filename, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - - Status = ZwOpenFile(&FileHandle, - GENERIC_READ, - &ObjectAttributes, - &IoStatusBlock, - FILE_SHARE_READ, - FILE_SYNCHRONOUS_IO_NONALERT); - - if (!NT_SUCCESS(Status)) - { - DPRINT("Could not open module file: %wZ (Status 0x%08lx)\n", Filename, Status); - return(Status); - } - - - /* Get the size of the file */ - Status = ZwQueryInformationFile(FileHandle, - &IoStatusBlock, - &FileStdInfo, - sizeof(FileStdInfo), - FileStandardInformation); - if (!NT_SUCCESS(Status)) - { - DPRINT("Could not get file size\n"); - NtClose(FileHandle); - return(Status); - } - - - /* Allocate nonpageable memory for driver */ - ModuleLoadBase = ExAllocatePoolWithTag(NonPagedPool, - FileStdInfo.EndOfFile.u.LowPart, - TAG_DRIVER_MEM); - if (ModuleLoadBase == NULL) - { - DPRINT("Could not allocate memory for module"); - NtClose(FileHandle); - return(STATUS_INSUFFICIENT_RESOURCES); - } - - - /* Load driver into memory chunk */ - Status = ZwReadFile(FileHandle, - 0, 0, 0, - &IoStatusBlock, - ModuleLoadBase, - FileStdInfo.EndOfFile.u.LowPart, - 0, 0); - if (!NT_SUCCESS(Status)) - { - DPRINT("Could not read module file into memory"); - ExFreePool(ModuleLoadBase); - NtClose(FileHandle); - return(Status); - } - - - ZwClose(FileHandle); - - Status = LdrProcessModule(ModuleLoadBase, - Filename, - &Module); - if (!NT_SUCCESS(Status)) - { - DPRINT("Could not process module\n"); - ExFreePool(ModuleLoadBase); - return(Status); - } + Module = LdrEntry; /* Cleanup */ ExFreePool(ModuleLoadBase); @@ -588,7 +510,7 @@ *ModuleObject = Module; /* Hook for KDB on loading a driver. */ - KDB_LOADDRIVER_HOOK(Filename, Module); + KDB_LOADDRIVER_HOOK(FileName, Module); return(STATUS_SUCCESS); } Modified: trunk/reactos/ntoskrnl/mm/mminit.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mminit.c?rev=2…
============================================================================== --- trunk/reactos/ntoskrnl/mm/mminit.c (original) +++ trunk/reactos/ntoskrnl/mm/mminit.c Thu Feb 22 21:02:53 2007 @@ -459,7 +459,18 @@ MmInitSystem(IN ULONG Phase, IN PLOADER_PARAMETER_BLOCK LoaderBlock) { - if (Phase == 1) + if (Phase == 0) + { + /* Reload boot drivers */ + MiReloadBootLoadedDrivers(LoaderBlock); + + /* Initialize the loaded module list */ + MiInitializeLoadedModuleList(LoaderBlock); + + /* We're done, for now */ + DPRINT("Mm0: COMPLETE\n"); + } + else if (Phase == 1) { MmInitializeRmapList(); RmapReady = TRUE; Modified: trunk/reactos/ntoskrnl/mm/sysldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/sysldr.c?rev=2…
============================================================================== --- trunk/reactos/ntoskrnl/mm/sysldr.c (original) +++ trunk/reactos/ntoskrnl/mm/sysldr.c Thu Feb 22 21:02:53 2007 @@ -12,7 +12,77 @@ #define NDEBUG #include <debug.h> +/* GLOBALS *******************************************************************/ + +LIST_ENTRY PsLoadedModuleList; +KSPIN_LOCK PsLoadedModuleSpinLock; +PVOID PsNtosImageBase; + /* FUNCTIONS *****************************************************************/ + +VOID +NTAPI +MiUpdateThunks(IN PLOADER_PARAMETER_BLOCK LoaderBlock, + IN PVOID OldBase, + IN PVOID NewBase, + IN ULONG Size) +{ + ULONG_PTR OldBaseTop, Delta; + PLDR_DATA_TABLE_ENTRY LdrEntry; + PLIST_ENTRY NextEntry; + ULONG ImportSize; + PIMAGE_IMPORT_DESCRIPTOR ImportDescriptor; + PULONG ImageThunk; + + /* Calculate the top and delta */ + OldBaseTop = (ULONG_PTR)OldBase + Size - 1; + Delta = (ULONG_PTR)NewBase - (ULONG_PTR)OldBase; + + /* Loop the loader block */ + for (NextEntry = LoaderBlock->LoadOrderListHead.Flink; + NextEntry != &LoaderBlock->LoadOrderListHead; + NextEntry = NextEntry->Flink) + { + /* Get the loader entry */ + LdrEntry = CONTAINING_RECORD(NextEntry, + LDR_DATA_TABLE_ENTRY, + InLoadOrderLinks); + + /* Get the import table */ + ImportDescriptor = RtlImageDirectoryEntryToData(LdrEntry->DllBase, + TRUE, + IMAGE_DIRECTORY_ENTRY_IMPORT, + &ImportSize); + if (!ImportDescriptor) continue; + + /* Make sure we have an IAT */ + DPRINT("[Mm0]: Updating thunks in: %wZ\n", &LdrEntry->BaseDllName); + while ((ImportDescriptor->Name) && + (ImportDescriptor->OriginalFirstThunk)) + { + /* Get the image thunk */ + ImageThunk = (PVOID)((ULONG_PTR)LdrEntry->DllBase + + ImportDescriptor->FirstThunk); + while (*ImageThunk) + { + /* Check if it's within this module */ + if ((*ImageThunk >= (ULONG_PTR)OldBase) && (*ImageThunk <= OldBaseTop)) + { + /* Relocate it */ + DPRINT("[Mm0]: Updating IAT at: %p. Old Entry: %p. New Entry: %p.\n", + ImageThunk, *ImageThunk, *ImageThunk + Delta); + *ImageThunk += Delta; + } + + /* Go to the next thunk */ + ImageThunk++; + } + + /* Go to the next import */ + ImportDescriptor++; + } + } +} NTSTATUS NTAPI @@ -584,3 +654,259 @@ return STATUS_SUCCESS; } +VOID +NTAPI +MiReloadBootLoadedDrivers(IN PLOADER_PARAMETER_BLOCK LoaderBlock) +{ + PLIST_ENTRY NextEntry; + ULONG i = 0; + PIMAGE_NT_HEADERS NtHeader; + PLDR_DATA_TABLE_ENTRY LdrEntry; + PIMAGE_FILE_HEADER FileHeader; + BOOLEAN ValidRelocs; + PIMAGE_DATA_DIRECTORY DataDirectory; + PVOID DllBase, NewImageAddress; + NTSTATUS Status; + ULONG DriverSize = 0, Size; + PIMAGE_SECTION_HEADER Section; + + /* Loop driver list */ + for (NextEntry = LoaderBlock->LoadOrderListHead.Flink; + NextEntry != &LoaderBlock->LoadOrderListHead; + NextEntry = NextEntry->Flink) + { + /* Get the loader entry and NT header */ + LdrEntry = CONTAINING_RECORD(NextEntry, + LDR_DATA_TABLE_ENTRY, + InLoadOrderLinks); + NtHeader = RtlImageNtHeader(LdrEntry->DllBase); + + /* Debug info */ + DPRINT("[Mm0]: Driver at: %p ending at: %p for module: %wZ\n", + LdrEntry->DllBase, + (ULONG_PTR)LdrEntry->DllBase+ LdrEntry->SizeOfImage, + &LdrEntry->FullDllName); + + /* Skip kernel and HAL */ + /* ROS HACK: Skip BOOTVID/KDCOM too */ + i++; + if (i <= 4) continue; + + /* Skip non-drivers */ + if (!NtHeader) continue; + +#if 1 // Disable for FreeLDR 2.5 + /* Get header pointers */ + Section = IMAGE_FIRST_SECTION(NtHeader); + + /* Determine the size of the module */ + for (i = 0; i < NtHeader->FileHeader.NumberOfSections; i++) + { + /* Skip this section if we're not supposed to load it */ + if (!(Section[i].Characteristics & IMAGE_SCN_TYPE_NOLOAD)) + { + /* Add the size of this section into the total size */ + Size = Section[i].VirtualAddress + Section[i].Misc.VirtualSize; + DriverSize = max(DriverSize, Size); + } + } + + /* Round up the driver size to section alignment */ + DriverSize = ROUND_UP(DriverSize, NtHeader->OptionalHeader.SectionAlignment); +#endif + + /* Get the file header and make sure we can relocate */ + FileHeader = &NtHeader->FileHeader; + if (FileHeader->Characteristics & IMAGE_FILE_RELOCS_STRIPPED) continue; + if (NtHeader->OptionalHeader.NumberOfRvaAndSizes < + IMAGE_DIRECTORY_ENTRY_BASERELOC) continue; + + /* Everything made sense until now, check the relocation section too */ + DataDirectory = &NtHeader->OptionalHeader. + DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]; + if (!DataDirectory->VirtualAddress) + { + /* We don't really have relocations */ + ValidRelocs = FALSE; + } + else + { + /* Make sure the size is valid */ + if ((DataDirectory->VirtualAddress + DataDirectory->Size) > + LdrEntry->SizeOfImage) + { + /* They're not, skip */ + continue; + } + + /* We have relocations */ + ValidRelocs = TRUE; + } + + /* Remember the original address */ + DllBase = LdrEntry->DllBase; + + /* Allocate a virtual section for the module */ + NewImageAddress = MmAllocateSection(DriverSize, NULL); + if (!NewImageAddress) + { + /* Shouldn't happen */ + DPRINT1("[Mm0]: Couldn't allocate driver section!\n"); + while (TRUE); + } + + /* Sanity check */ + DPRINT("[Mm0]: Copying from: %p to: %p\n", DllBase, NewImageAddress); + ASSERT(ExpInitializationPhase == 0); + +#if 0 // Enable for FreeLDR 2.5 + /* Now copy the entire driver over */ + RtlCopyMemory(NewImageAddress, DllBase, DriverSize); +#else + /* Copy headers over */ + RtlCopyMemory(NewImageAddress, + DllBase, + NtHeader->OptionalHeader.SizeOfHeaders); + + /* Copy image sections into virtual section */ + for (i = 0; i < NtHeader->FileHeader.NumberOfSections; i++) + { + /* Get the size of this section and check if it's valid and on-disk */ + Size = Section[i].VirtualAddress + Section[i].Misc.VirtualSize; + if ((Size <= DriverSize) && (Section[i].SizeOfRawData)) + { + /* Copy the data from the disk to the image */ + RtlCopyMemory((PVOID)((ULONG_PTR)NewImageAddress + + Section[i].VirtualAddress), + (PVOID)((ULONG_PTR)DllBase + + Section[i].PointerToRawData), + Section[i].Misc.VirtualSize > + Section[i].SizeOfRawData ? + Section[i].SizeOfRawData : + Section[i].Misc.VirtualSize); + } + } +#endif + + /* Sanity check */ + ASSERT(*(PULONG)NewImageAddress == *(PULONG)DllBase); + + /* Set the image base to the old address */ + NtHeader->OptionalHeader.ImageBase = (ULONG_PTR)DllBase; + + /* Check if we had relocations */ + if (ValidRelocs) + { + /* Relocate the image */ + Status = LdrRelocateImageWithBias(NewImageAddress, + 0, + "SYSLDR", + STATUS_SUCCESS, + STATUS_CONFLICTING_ADDRESSES, + STATUS_INVALID_IMAGE_FORMAT); + if (!NT_SUCCESS(Status)) + { + /* This shouldn't happen */ + DPRINT1("Relocations failed!\n"); + while (TRUE); + } + } + + /* Update the loader entry */ + LdrEntry->DllBase = NewImageAddress; + + /* Update the thunks */ + DPRINT("[Mm0]: Updating thunks to: %wZ\n", &LdrEntry->BaseDllName); + MiUpdateThunks(LoaderBlock, + DllBase, + NewImageAddress, + LdrEntry->SizeOfImage); + + /* Update the loader entry */ + LdrEntry->Flags |= 0x01000000; + LdrEntry->EntryPoint = (PVOID)((ULONG_PTR)NewImageAddress + + NtHeader->OptionalHeader.AddressOfEntryPoint); + LdrEntry->SizeOfImage = DriverSize; + } +} + +BOOLEAN +NTAPI +MiInitializeLoadedModuleList(IN PLOADER_PARAMETER_BLOCK LoaderBlock) +{ + PLDR_DATA_TABLE_ENTRY LdrEntry, NewEntry; + PLIST_ENTRY ListHead, NextEntry; + ULONG EntrySize; + + /* Setup the loaded module list and lock */ + KeInitializeSpinLock(&PsLoadedModuleSpinLock); + InitializeListHead(&PsLoadedModuleList); + + /* Get loop variables and the kernel entry */ + ListHead = &LoaderBlock->LoadOrderListHead; + NextEntry = ListHead->Flink; + LdrEntry = CONTAINING_RECORD(NextEntry, + LDR_DATA_TABLE_ENTRY, + InLoadOrderLinks); + PsNtosImageBase = LdrEntry->DllBase; + + /* Loop the loader block */ + while (NextEntry != ListHead) + { + /* Get the loader entry */ + LdrEntry = CONTAINING_RECORD(NextEntry, + LDR_DATA_TABLE_ENTRY, + InLoadOrderLinks); + + /* FIXME: ROS HACK. Make sure this is a driver */ + if (!RtlImageNtHeader(LdrEntry->DllBase)) + { + /* Skip this entry */ + NextEntry= NextEntry->Flink; + continue; + } + + /* Calculate the size we'll need and allocate a copy */ + EntrySize = sizeof(LDR_DATA_TABLE_ENTRY) + + LdrEntry->BaseDllName.MaximumLength + + sizeof(UNICODE_NULL); + NewEntry = ExAllocatePoolWithTag(NonPagedPool, EntrySize, TAG_LDR_WSTR); + if (!NewEntry) return FALSE; + + /* Copy the entry over */ + *NewEntry = *LdrEntry; + + /* Allocate the name */ + NewEntry->FullDllName.Buffer = + ExAllocatePoolWithTag(PagedPool, + LdrEntry->FullDllName.MaximumLength + + sizeof(UNICODE_NULL), + TAG_LDR_WSTR); + if (!NewEntry->FullDllName.Buffer) return FALSE; + + /* Set the base name */ + NewEntry->BaseDllName.Buffer = (PVOID)(NewEntry + 1); + + /* Copy the full and base name */ + RtlCopyMemory(NewEntry->FullDllName.Buffer, + LdrEntry->FullDllName.Buffer, + LdrEntry->FullDllName.MaximumLength); + RtlCopyMemory(NewEntry->BaseDllName.Buffer, + LdrEntry->BaseDllName.Buffer, + LdrEntry->BaseDllName.MaximumLength); + + /* Null-terminate the base name */ + NewEntry->BaseDllName.Buffer[NewEntry->BaseDllName.Length / + sizeof(WCHAR)] = UNICODE_NULL; + + /* Insert the entry into the list */ + InsertTailList(&PsLoadedModuleList, &NewEntry->InLoadOrderLinks); + NextEntry = NextEntry->Flink; + } + + /* Build the import lists for the boot drivers */ + //MiBuildImportsForBootDrivers(); + + /* We're done */ + return TRUE; +}
17 years, 10 months
1
0
0
0
[hpoussin] 25873: Fix build with gcc 4.1.2
by hpoussin@svn.reactos.org
Author: hpoussin Date: Thu Feb 22 03:14:20 2007 New Revision: 25873 URL:
http://svn.reactos.org/svn/reactos?rev=25873&view=rev
Log: Fix build with gcc 4.1.2 Modified: branches/alex-kd-branch/reactos/hal/hal/hal.c branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c Modified: branches/alex-kd-branch/reactos/hal/hal/hal.c URL:
http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/hal/hal/…
============================================================================== --- branches/alex-kd-branch/reactos/hal/hal/hal.c (original) +++ branches/alex-kd-branch/reactos/hal/hal/hal.c Thu Feb 22 03:14:20 2007 @@ -17,7 +17,6 @@ #include <ndk/halfuncs.h> #include <ndk/iofuncs.h> #include <ndk/kdfuncs.h> -#include <internal/kd.h> #define NDEBUG #include <debug.h> Modified: branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c URL:
http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl…
============================================================================== --- branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c (original) +++ branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c Thu Feb 22 03:14:20 2007 @@ -1093,7 +1093,7 @@ NTAPI KdEnableDebuggerWithLock(BOOLEAN NeedLock) { - KIRQL OldIrql; + KIRQL OldIrql = PASSIVE_LEVEL; /* Check if we need to acquire the lock */ if (NeedLock)
17 years, 10 months
1
0
0
0
← Newer
1
2
3
4
5
6
7
8
9
...
27
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
Results per page:
10
25
50
100
200