ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
December 2009
----- 2025 -----
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
22 participants
501 discussions
Start a n
N
ew thread
[janderwald] 44479: [MMIXER] - Store initialized mixers in a struct MIXER_LIST - Implement MMixerGetCapabilities
by janderwald@svn.reactos.org
Author: janderwald Date: Wed Dec 9 10:51:39 2009 New Revision: 44479 URL:
http://svn.reactos.org/svn/reactos?rev=44479&view=rev
Log: [MMIXER] - Store initialized mixers in a struct MIXER_LIST - Implement MMixerGetCapabilities Modified: trunk/reactos/lib/drivers/sound/mmixer/controls.c trunk/reactos/lib/drivers/sound/mmixer/mixer.c trunk/reactos/lib/drivers/sound/mmixer/mmixer.h trunk/reactos/lib/drivers/sound/mmixer/priv.h trunk/reactos/lib/drivers/sound/mmixer/sup.c Modified: trunk/reactos/lib/drivers/sound/mmixer/controls.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/c…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/controls.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/controls.c [iso-8859-1] Wed Dec 9 10:51:39 2009 @@ -781,6 +781,7 @@ MIXER_STATUS MMixerInitializeFilter( IN PMIXER_CONTEXT MixerContext, + IN PMIXER_LIST MixerList, IN HANDLE hMixer, IN LPWSTR DeviceName, IN PKSMULTIPLE_ITEM NodeTypes, @@ -866,9 +867,9 @@ } MixerContext->Free(Pins); - //FIXME - // store MixerInfo in context - + // store mixer info in list + InsertTailList(&MixerList->MixerList, &MixerInfo->Entry); + MixerList->MixerListCount++; // done return Status; @@ -876,7 +877,8 @@ MIXER_STATUS MMixerSetupFilter( - IN PMIXER_CONTEXT MixerContext, + IN PMIXER_CONTEXT MixerContext, + IN PMIXER_LIST MixerList, IN HANDLE hMixer, IN PULONG DeviceCount, IN LPWSTR DeviceName) @@ -913,7 +915,7 @@ if (NodeIndex != MAXULONG) { // it has - Status = MMixerInitializeFilter(MixerContext, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, FALSE); + Status = MMixerInitializeFilter(MixerContext, MixerList, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, FALSE); // check for success if (Status == MM_STATUS_SUCCESS) @@ -929,7 +931,7 @@ if (NodeIndex != MAXULONG) { // it has - Status = MMixerInitializeFilter(MixerContext, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, TRUE); + Status = MMixerInitializeFilter(MixerContext, MixerList, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, TRUE); // check for success if (Status == MM_STATUS_SUCCESS) Modified: trunk/reactos/lib/drivers/sound/mmixer/mixer.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/m…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/mixer.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/mixer.c [iso-8859-1] Wed Dec 9 10:51:39 2009 @@ -10,6 +10,169 @@ #include "priv.h" +ULONG +MMixerGetCount( + IN PMIXER_CONTEXT MixerContext) +{ + PMIXER_LIST MixerList; + MIXER_STATUS Status; + + // verify mixer context + Status = MMixerVerifyContext(MixerContext); + + if (Status != MM_STATUS_SUCCESS) + { + // invalid context passed + return Status; + } + + // grab mixer list + MixerList = (PMIXER_LIST)MixerContext->MixerContext; + + // return number of mixers + return MixerList->MixerListCount; +} + +MIXER_STATUS +MMixerGetCapabilities( + IN PMIXER_CONTEXT MixerContext, + IN ULONG MixerIndex, + OUT LPMIXERCAPSW MixerCaps) +{ + MIXER_STATUS Status; + LPMIXER_INFO MixerInfo; + + // verify mixer context + Status = MMixerVerifyContext(MixerContext); + + if (Status != MM_STATUS_SUCCESS) + { + // invalid context passed + return Status; + } + + // get mixer info + MixerInfo = MMixerGetMixerInfoByIndex(MixerContext, MixerIndex); + + if (!MixerInfo) + { + // invalid device index + return MM_STATUS_INVALID_PARAMETER; + } + + MixerCaps->wMid = MixerInfo->MixCaps.wMid; + MixerCaps->wPid = MixerInfo->MixCaps.wPid; + MixerCaps->vDriverVersion = MixerInfo->MixCaps.vDriverVersion; + MixerCaps->fdwSupport = MixerInfo->MixCaps.fdwSupport; + MixerCaps->cDestinations = MixerInfo->MixCaps.cDestinations; + wcscpy(MixerCaps->szPname, MixerInfo->MixCaps.szPname); + + return MM_STATUS_SUCCESS; +} + +MIXER_STATUS +MMixerOpen( + IN PMIXER_CONTEXT MixerContext, + IN PVOID MixerEvent, + IN PMIXER_EVENT MixerEventRoutine, + OUT PHANDLE MixerHandle) +{ + MIXER_STATUS Status; + + // verify mixer context + Status = MMixerVerifyContext(MixerContext); + + if (Status != MM_STATUS_SUCCESS) + { + // invalid context passed + return Status; + } + + return MM_STATUS_NOT_IMPLEMENTED; +} + +MIXER_STATUS +MMixerGetLineInfo( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE MixerHandle, + IN ULONG Flags, + OUT LPMIXERLINEW MixerLine) +{ + MIXER_STATUS Status; + + // verify mixer context + Status = MMixerVerifyContext(MixerContext); + + if (Status != MM_STATUS_SUCCESS) + { + // invalid context passed + return Status; + } + return MM_STATUS_NOT_IMPLEMENTED; +} + +MIXER_STATUS +MMixerGetLineControls( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE MixerHandle, + IN ULONG Flags, + OUT LPMIXERLINECONTROLS MixerLineControls) +{ + MIXER_STATUS Status; + + // verify mixer context + Status = MMixerVerifyContext(MixerContext); + + if (Status != MM_STATUS_SUCCESS) + { + // invalid context passed + return Status; + } + + return MM_STATUS_NOT_IMPLEMENTED; +} + +MIXER_STATUS +MMixerSetControlDetails( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE MixerHandle, + IN ULONG Flags, + OUT LPMIXERCONTROLDETAILS MixerControlDetails) +{ + MIXER_STATUS Status; + + // verify mixer context + Status = MMixerVerifyContext(MixerContext); + + if (Status != MM_STATUS_SUCCESS) + { + // invalid context passed + return Status; + } + return MM_STATUS_NOT_IMPLEMENTED; +} + +MIXER_STATUS +MMixerGetControlDetails( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE MixerHandle, + IN ULONG Flags, + OUT LPMIXERCONTROLDETAILS MixerControlDetails) +{ + MIXER_STATUS Status; + + // verify mixer context + Status = MMixerVerifyContext(MixerContext); + + if (Status != MM_STATUS_SUCCESS) + { + // invalid context passed + return Status; + } + + return MM_STATUS_NOT_IMPLEMENTED; +} + MIXER_STATUS MMixerInitialize( IN PMIXER_CONTEXT MixerContext, @@ -20,6 +183,7 @@ HANDLE hMixer; ULONG DeviceIndex, Count; LPWSTR DeviceName; + PMIXER_LIST MixerList; if (!MixerContext || !EnumFunction || !EnumContext) { @@ -27,12 +191,23 @@ return MM_STATUS_INVALID_PARAMETER; } - if (!MixerContext->Alloc || !MixerContext->Control || !MixerContext->Free) + if (!MixerContext->Alloc || !MixerContext->Control || !MixerContext->Free || !MixerContext->Open || !MixerContext->Close) { // invalid parameter return MM_STATUS_INVALID_PARAMETER; } + // allocate a mixer list + MixerList = (PMIXER_LIST)MixerContext->Alloc(sizeof(MIXER_LIST)); + if (!MixerList) + { + // no memory + return MM_STATUS_NO_MEMORY; + } + + //initialize mixer list + MixerList->MixerListCount = 0; + InitializeListHead(&MixerList->MixerList); // start enumerating all available devices Count = 0; @@ -59,7 +234,7 @@ // increment device index DeviceIndex++; - Status = MMixerSetupFilter(MixerContext, hMixer, &Count, DeviceName); + Status = MMixerSetupFilter(MixerContext, MixerList, hMixer, &Count, DeviceName); if (Status != MM_STATUS_SUCCESS) break; @@ -69,5 +244,3 @@ // done return Status; } - - Modified: trunk/reactos/lib/drivers/sound/mmixer/mmixer.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/m…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/mmixer.h [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/mmixer.h [iso-8859-1] Wed Dec 9 10:51:39 2009 @@ -60,16 +60,11 @@ PMIXER_CLOSE Close; }MIXER_CONTEXT, *PMIXER_CONTEXT; - - - - MIXER_STATUS MMixerInitialize( - IN PMIXER_CONTEXT MixerContext, + IN PMIXER_CONTEXT MixerContext, IN PMIXER_ENUM EnumFunction, IN PVOID EnumContext); - ULONG MMixerGetCount( @@ -79,7 +74,7 @@ MMixerGetCapabilities( IN PMIXER_CONTEXT MixerContext, IN ULONG MixerIndex, - OUT MIXERCAPSW MixerCaps); + OUT LPMIXERCAPSW MixerCaps); MIXER_STATUS MMixerOpen( @@ -90,24 +85,28 @@ MIXER_STATUS MMixerGetLineInfo( + IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG Flags, OUT LPMIXERLINEW MixerLine); MIXER_STATUS MMixerGetLineControls( + IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG Flags, OUT LPMIXERLINECONTROLS MixerLineControls); MIXER_STATUS MMixerSetControlDetails( + IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG Flags, OUT LPMIXERCONTROLDETAILS MixerControlDetails); MIXER_STATUS MMixerGetControlDetails( + IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG Flags, OUT LPMIXERCONTROLDETAILS MixerControlDetails); Modified: trunk/reactos/lib/drivers/sound/mmixer/priv.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/p…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/priv.h [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/priv.h [iso-8859-1] Wed Dec 9 10:51:39 2009 @@ -18,6 +18,7 @@ typedef struct { + LIST_ENTRY Entry; MIXERCAPSW MixCaps; HANDLE hMixer; LIST_ENTRY LineList; @@ -52,6 +53,11 @@ PLONG Values; }MIXERVOLUME_DATA, *LPMIXERVOLUME_DATA; +typedef struct +{ + ULONG MixerListCount; + LIST_ENTRY MixerList; +}MIXER_LIST, *PMIXER_LIST; #define DESTINATION_LINE 0xFFFF0000 @@ -125,7 +131,8 @@ MIXER_STATUS MMixerSetupFilter( - IN PMIXER_CONTEXT MixerContext, + IN PMIXER_CONTEXT MixerContext, + IN PMIXER_LIST MixerList, IN HANDLE hMixer, IN PULONG DeviceCount, IN LPWSTR DeviceName); @@ -148,4 +155,14 @@ IN ULONG bUpDirection, OUT PULONG Nodes); +MIXER_STATUS +MMixerVerifyContext( + IN PMIXER_CONTEXT MixerContext); + +LPMIXER_INFO +MMixerGetMixerInfoByIndex( + IN PMIXER_CONTEXT MixerContext, + IN ULONG MixerIndex); + + #endif Modified: trunk/reactos/lib/drivers/sound/mmixer/sup.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/s…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/sup.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/sup.c [iso-8859-1] Wed Dec 9 10:51:39 2009 @@ -17,7 +17,7 @@ if (MixerContext->SizeOfStruct != sizeof(MIXER_CONTEXT)) return MM_STATUS_INVALID_PARAMETER; - if (!MixerContext->Alloc || !MixerContext->Control || !MixerContext->Free) + if (!MixerContext->Alloc || !MixerContext->Control || !MixerContext->Free || !MixerContext->Open || !MixerContext->Close) return MM_STATUS_INVALID_PARAMETER; if (!MixerContext->MixerContext) @@ -37,6 +37,40 @@ MixerContext->Free((PVOID)MixerInfo); } + +LPMIXER_INFO +MMixerGetMixerInfoByIndex( + IN PMIXER_CONTEXT MixerContext, + IN ULONG MixerIndex) +{ + LPMIXER_INFO MixerInfo; + PLIST_ENTRY Entry; + PMIXER_LIST MixerList; + ULONG Index = 0; + + // get mixer list + MixerList = (PMIXER_LIST)MixerContext->MixerContext; + + if (!MixerList->MixerListCount) + return NULL; + + Entry = MixerList->MixerList.Flink; + + while(Entry != &MixerList->MixerList) + { + MixerInfo = (LPMIXER_INFO)CONTAINING_RECORD(Entry, MIXER_INFO, Entry); + + if (Index == MixerIndex) + return MixerInfo; + + // move to next mixer entry + Index++; + Entry = Entry->Flink; + } + + return NULL; +} + LPMIXERLINE_EXT MMixerGetSourceMixerLineByLineId(
15 years, 4 months
1
0
0
0
[tkreuzer] 44478: Add syscall lists for x86
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Dec 9 02:50:38 2009 New Revision: 44478 URL:
http://svn.reactos.org/svn/reactos?rev=44478&view=rev
Log: Add syscall lists for x86 Added: trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32k_2k3sp2-x86.db (with props) trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/w32k_2ksp4-x86.db (with props) trunk/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-x86.db (with props) trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/w32k_xpsp2-x86.db (with props) Added: trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32k_2k3sp2-x86.db URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32k_2k3sp2-x86.db (added) +++ trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32k_2k3sp2-x86.db [iso-8859-1] Wed Dec 9 02:50:38 2009 @@ -1,0 +1,668 @@ +# +# win32k systemcalls taken from Windows 2003 SP2 x86 +# +NtGdiAbortDoc 1 +NtGdiAbortPath 1 +NtGdiAddFontResourceW 6 +NtGdiAddRemoteFontToDC 4 +NtGdiAddFontMemResourceEx 5 +NtGdiRemoveMergeFont 2 +NtGdiAddRemoteMMInstanceToDC 3 +NtGdiAlphaBlend 12 +NtGdiAngleArc 6 +NtGdiAnyLinkedFonts 0 +NtGdiFontIsLinked 1 +NtGdiArcInternal 10 +NtGdiBeginPath 1 +NtGdiBitBlt 11 +NtGdiCancelDC 1 +NtGdiCheckBitmapBits 8 +NtGdiCloseFigure 1 +NtGdiClearBitmapAttributes 2 +NtGdiClearBrushAttributes 2 +NtGdiColorCorrectPalette 6 +NtGdiCombineRgn 4 +NtGdiCombineTransform 3 +NtGdiComputeXformCoefficients 1 +NtGdiConsoleTextOut 4 +NtGdiConvertMetafileRect 2 +NtGdiCreateBitmap 5 +NtGdiCreateClientObj 1 +NtGdiCreateColorSpace 1 +NtGdiCreateColorTransform 8 +NtGdiCreateCompatibleBitmap 3 +NtGdiCreateCompatibleDC 1 +NtGdiCreateDIBBrush 6 +NtGdiCreateDIBitmapInternal 11 +NtGdiCreateDIBSection 9 +NtGdiCreateEllipticRgn 4 +NtGdiCreateHalftonePalette 1 +NtGdiCreateHatchBrushInternal 3 +NtGdiCreateMetafileDC 1 +NtGdiCreatePaletteInternal 2 +NtGdiCreatePatternBrushInternal 3 +NtGdiCreatePen 4 +NtGdiCreateRectRgn 4 +NtGdiCreateRoundRectRgn 6 +NtGdiCreateServerMetaFile 6 +NtGdiCreateSolidBrush 2 +NtGdiD3dContextCreate 4 +NtGdiD3dContextDestroy 1 +NtGdiD3dContextDestroyAll 1 +NtGdiD3dValidateTextureStageState 1 +NtGdiD3dDrawPrimitives2 7 +NtGdiDdGetDriverState 1 +NtGdiDdAddAttachedSurface 3 +NtGdiDdAlphaBlt 3 +NtGdiDdAttachSurface 2 +NtGdiDdBeginMoCompFrame 2 +NtGdiDdBlt 3 +NtGdiDdCanCreateSurface 2 +NtGdiDdCanCreateD3DBuffer 2 +NtGdiDdColorControl 2 +NtGdiDdCreateDirectDrawObject 1 +NtGdiDdCreateSurface 8 +NtGdiDdCreateD3DBuffer 8 +NtGdiDdCreateMoComp 2 +NtGdiDdCreateSurfaceObject 6 +NtGdiDdDeleteDirectDrawObject 1 +NtGdiDdDeleteSurfaceObject 1 +NtGdiDdDestroyMoComp 2 +NtGdiDdDestroySurface 2 +NtGdiDdDestroyD3DBuffer 1 +NtGdiDdEndMoCompFrame 2 +NtGdiDdFlip 5 +NtGdiDdFlipToGDISurface 2 +NtGdiDdGetAvailDriverMemory 2 +NtGdiDdGetBltStatus 2 +NtGdiDdGetDC 2 +NtGdiDdGetDriverInfo 2 +NtGdiDdGetDxHandle 3 +NtGdiDdGetFlipStatus 2 +NtGdiDdGetInternalMoCompInfo 2 +NtGdiDdGetMoCompBuffInfo 2 +NtGdiDdGetMoCompGuids 2 +NtGdiDdGetMoCompFormats 2 +NtGdiDdGetScanLine 2 +NtGdiDdLock 3 +NtGdiDdLockD3D 2 +NtGdiDdQueryDirectDrawObject 11 +NtGdiDdQueryMoCompStatus 2 +NtGdiDdReenableDirectDrawObject 2 +NtGdiDdReleaseDC 1 +NtGdiDdRenderMoComp 2 +NtGdiDdResetVisrgn 2 +NtGdiDdSetColorKey 2 +NtGdiDdSetExclusiveMode 2 +NtGdiDdSetGammaRamp 3 +NtGdiDdCreateSurfaceEx 3 +NtGdiDdSetOverlayPosition 3 +NtGdiDdUnattachSurface 2 +NtGdiDdUnlock 2 +NtGdiDdUnlockD3D 2 +NtGdiDdUpdateOverlay 3 +NtGdiDdWaitForVerticalBlank 2 +NtGdiDvpCanCreateVideoPort 2 +NtGdiDvpColorControl 2 +NtGdiDvpCreateVideoPort 2 +NtGdiDvpDestroyVideoPort 2 +NtGdiDvpFlipVideoPort 4 +NtGdiDvpGetVideoPortBandwidth 2 +NtGdiDvpGetVideoPortField 2 +NtGdiDvpGetVideoPortFlipStatus 2 +NtGdiDvpGetVideoPortInputFormats 2 +NtGdiDvpGetVideoPortLine 2 +NtGdiDvpGetVideoPortOutputFormats 2 +NtGdiDvpGetVideoPortConnectInfo 2 +NtGdiDvpGetVideoSignalStatus 2 +NtGdiDvpUpdateVideoPort 4 +NtGdiDvpWaitForVideoPortSync 2 +NtGdiDvpAcquireNotification 3 +NtGdiDvpReleaseNotification 2 +NtGdiDxgGenericThunk 6 +NtGdiDeleteClientObj 1 +NtGdiDeleteColorSpace 1 +NtGdiDeleteColorTransform 2 +NtGdiDeleteObjectApp 1 +NtGdiDescribePixelFormat 4 +NtGdiGetPerBandInfo 2 +NtGdiDoBanding 4 +NtGdiDoPalette 6 +NtGdiDrawEscape 4 +NtGdiEllipse 5 +NtGdiEnableEudc 1 +NtGdiEndDoc 1 +NtGdiEndPage 1 +NtGdiEndPath 1 +NtGdiEnumFontChunk 5 +NtGdiEnumFontClose 1 +NtGdiEnumFontOpen 7 +NtGdiEnumObjects 4 +NtGdiEqualRgn 2 +NtGdiEudcLoadUnloadLink 7 +NtGdiExcludeClipRect 5 +NtGdiExtCreatePen 11 +NtGdiExtCreateRegion 3 +NtGdiExtEscape 8 +NtGdiExtFloodFill 5 +NtGdiExtGetObjectW 3 +NtGdiExtSelectClipRgn 3 +NtGdiExtTextOutW 9 +NtGdiFillPath 1 +NtGdiFillRgn 3 +NtGdiFlattenPath 1 +NtGdiFlush 0 +NtGdiForceUFIMapping 2 +NtGdiFrameRgn 5 +NtGdiFullscreenControl 5 +NtGdiGetAndSetDCDword 4 +NtGdiGetAppClipBox 2 +NtGdiGetBitmapBits 3 +NtGdiGetBitmapDimension 2 +NtGdiGetBoundsRect 3 +NtGdiGetCharABCWidthsW 6 +NtGdiGetCharacterPlacementW 6 +NtGdiGetCharSet 1 +NtGdiGetCharWidthW 6 +NtGdiGetCharWidthInfo 2 +NtGdiGetColorAdjustment 2 +NtGdiGetColorSpaceforBitmap 1 +NtGdiGetDCDword 3 +NtGdiGetDCforBitmap 1 +NtGdiGetDCObject 2 +NtGdiGetDCPoint 3 +NtGdiGetDeviceCaps 2 +NtGdiGetDeviceGammaRamp 2 +NtGdiGetDeviceCapsAll 2 +NtGdiGetDIBitsInternal 9 +NtGdiGetETM 2 +NtGdiGetEudcTimeStampEx 3 +NtGdiGetFontData 5 +NtGdiGetFontResourceInfoInternalW 7 +NtGdiGetGlyphIndicesW 5 +NtGdiGetGlyphIndicesWInternal 6 +NtGdiGetGlyphOutline 8 +NtGdiGetKerningPairs 3 +NtGdiGetLinkedUFIs 3 +NtGdiGetMiterLimit 2 +NtGdiGetMonitorID 3 +NtGdiGetNearestColor 2 +NtGdiGetNearestPaletteIndex 2 +NtGdiGetObjectBitmapHandle 2 +NtGdiGetOutlineTextMetricsInternalW 4 +NtGdiGetPath 4 +NtGdiGetPixel 3 +NtGdiGetRandomRgn 3 +NtGdiGetRasterizerCaps 2 +NtGdiGetRealizationInfo 3 +NtGdiGetRegionData 3 +NtGdiGetRgnBox 2 +NtGdiGetServerMetaFileBits 7 +NtGdiGetSpoolMessage 4 +NtGdiGetStats 5 +NtGdiGetStockObject 1 +NtGdiGetStringBitmapW 5 +NtGdiGetSystemPaletteUse 1 +NtGdiGetTextCharsetInfo 3 +NtGdiGetTextExtent 5 +NtGdiGetTextExtentExW 8 +NtGdiGetTextFaceW 4 +NtGdiGetTextMetricsW 3 +NtGdiGetTransform 3 +NtGdiGetUFI 6 +NtGdiGetEmbUFI 7 +NtGdiGetUFIPathname 10 +NtGdiGetEmbedFonts 0 +NtGdiChangeGhostFont 2 +NtGdiAddEmbFontToDC 2 +NtGdiGetFontUnicodeRanges 2 +NtGdiGetWidthTable 7 +NtGdiGradientFill 6 +NtGdiHfontCreate 5 +NtGdiIcmBrushInfo 8 +NtGdiInit 0 +NtGdiInitSpool 0 +NtGdiIntersectClipRect 5 +NtGdiInvertRgn 2 +NtGdiLineTo 3 +NtGdiMakeFontDir 5 +NtGdiMakeInfoDC 2 +NtGdiMaskBlt 13 +NtGdiModifyWorldTransform 3 +NtGdiMonoBitmap 1 +NtGdiMoveTo 4 +NtGdiOffsetClipRgn 3 +NtGdiOffsetRgn 3 +NtGdiOpenDCW 7 +NtGdiPatBlt 6 +NtGdiPolyPatBlt 5 +NtGdiPathToRegion 1 +NtGdiPlgBlt 11 +NtGdiPolyDraw 4 +NtGdiPolyPolyDraw 5 +NtGdiPolyTextOutW 4 +NtGdiPtInRegion 3 +NtGdiPtVisible 3 +NtGdiQueryFonts 3 +NtGdiQueryFontAssocInfo 1 +NtGdiRectangle 5 +NtGdiRectInRegion 2 +NtGdiRectVisible 2 +NtGdiRemoveFontResourceW 6 +NtGdiRemoveFontMemResourceEx 1 +NtGdiResetDC 5 +NtGdiResizePalette 2 +NtGdiRestoreDC 2 +NtGdiRoundRect 7 +NtGdiSaveDC 1 +NtGdiScaleViewportExtEx 6 +NtGdiScaleWindowExtEx 6 +GreSelectBitmap 2 +NtGdiSelectBrush 2 +NtGdiSelectClipPath 2 +NtGdiSelectFont 2 +NtGdiSelectPen 2 +NtGdiSetBitmapAttributes 2 +NtGdiSetBitmapBits 3 +NtGdiSetBitmapDimension 4 +NtGdiSetBoundsRect 3 +NtGdiSetBrushAttributes 2 +NtGdiSetBrushOrg 4 +NtGdiSetColorAdjustment 2 +NtGdiSetColorSpace 2 +NtGdiSetDeviceGammaRamp 2 +NtGdiSetDIBitsToDeviceInternal 16 +NtGdiSetFontEnumeration 1 +NtGdiSetFontXform 3 +NtGdiSetIcmMode 3 +NtGdiSetLinkedUFIs 3 +NtGdiSetMagicColors 3 +NtGdiSetMetaRgn 1 +NtGdiSetMiterLimit 3 +NtGdiGetDeviceWidth 1 +NtGdiMirrorWindowOrg 1 +NtGdiSetLayout 3 +NtGdiSetPixel 4 +NtGdiSetPixelFormat 2 +NtGdiSetRectRgn 5 +NtGdiSetSystemPaletteUse 2 +NtGdiSetTextJustification 3 +NtGdiSetupPublicCFONT 3 +NtGdiSetVirtualResolution 5 +NtGdiSetSizeDevice 3 +NtGdiStartDoc 4 +NtGdiStartPage 1 +NtGdiStretchBlt 12 +NtGdiStretchDIBitsInternal 16 +NtGdiStrokeAndFillPath 1 +NtGdiStrokePath 1 +NtGdiSwapBuffers 1 +NtGdiTransformPoints 5 +NtGdiTransparentBlt 11 +NtGdiUnloadPrinterDriver 2 +NtGdiUnmapMemFont 1 +NtGdiUnrealizeObject 1 +NtGdiUpdateColors 1 +NtGdiWidenPath 1 +NtUserActivateKeyboardLayout 2 +NtUserAlterWindowStyle 3 +NtUserAssociateInputContext 3 +NtUserAttachThreadInput 3 +NtUserBeginPaint 2 +NtUserBitBltSysBmp 8 +NtUserBlockInput 1 +NtUserBuildHimcList 4 +NtUserBuildHwndList 7 +NtUserBuildNameList 4 +NtUserBuildPropList 4 +NtUserCallHwnd 2 +NtUserCallHwndLock 2 +NtUserCallHwndOpt 2 +NtUserCallHwndParam 3 +NtUserCallHwndParamLock 3 +NtUserCallMsgFilter 2 +NtUserCallNextHookEx 4 +NtUserCallNoParam 1 +NtUserCallOneParam 2 +NtUserCallTwoParam 3 +NtUserChangeClipboardChain 2 +NtUserChangeDisplaySettings 4 +NtUserCheckImeHotKey 2 +NtUserCheckMenuItem 3 +NtUserChildWindowFromPointEx 4 +NtUserClipCursor 1 +NtUserCloseClipboard 0 +NtUserCloseDesktop 1 +NtUserCloseWindowStation 1 +NtUserConsoleControl 3 +NtUserConvertMemHandle 2 +NtUserCopyAcceleratorTable 3 +NtUserCountClipboardFormats 0 +NtUserCreateAcceleratorTable 2 +NtUserCreateCaret 4 +NtUserCreateDesktop 5 +NtUserCreateInputContext 1 +NtUserCreateLocalMemHandle 4 +NtUserCreateWindowEx 15 +NtUserCreateWindowStation 7 +NtUserDdeGetQualityOfService 3 +NtUserDdeInitialize 5 +NtUserDdeSetQualityOfService 3 +NtUserDeferWindowPos 8 +NtUserDefSetText 2 +NtUserDeleteMenu 3 +NtUserDestroyAcceleratorTable 1 +NtUserDestroyCursor 2 +NtUserDestroyInputContext 1 +NtUserDestroyMenu 1 +NtUserDestroyWindow 1 +NtUserDisableThreadIme 1 +NtUserDispatchMessage 1 +NtUserDragDetect 3 +NtUserDragObject 5 +NtUserDrawAnimatedRects 4 +NtUserDrawCaption 4 +NtUserDrawCaptionTemp 7 +NtUserDrawIconEx 11 +NtUserDrawMenuBarTemp 5 +NtUserEmptyClipboard 0 +NtUserEnableMenuItem 3 +NtUserEnableScrollBar 3 +NtUserEndDeferWindowPosEx 2 +NtUserEndMenu 0 +NtUserEndPaint 2 +NtUserEnumDisplayDevices 4 +NtUserEnumDisplayMonitors 4 +NtUserEnumDisplaySettings 4 +NtUserEvent 1 +NtUserExcludeUpdateRgn 2 +NtUserFillWindow 4 +NtUserFindExistingCursorIcon 3 +NtUserFindWindowEx 5 +NtUserFlashWindowEx 1 +NtUserGetAltTabInfo 6 +NtUserGetAncestor 2 +NtUserGetAppImeLevel 1 +NtUserGetAsyncKeyState 1 +NtUserGetAtomName 2 +NtUserGetCaretBlinkTime 0 +NtUserGetCaretPos 1 +NtUserGetClassInfoEx 5 +NtUserGetClassName 3 +NtUserGetClipboardData 2 +NtUserGetClipboardFormatName 3 +NtUserGetClipboardOwner 0 +NtUserGetClipboardSequenceNumber 0 +NtUserGetClipboardViewer 0 +NtUserGetClipCursor 1 +NtUserGetComboBoxInfo 2 +NtUserGetControlBrush 3 +NtUserGetControlColor 4 +NtUserGetCPD 3 +NtUserGetCursorFrameInfo 4 +NtUserGetCursorInfo 1 +NtUserGetDC 1 +NtUserGetDCEx 3 +NtUserGetDoubleClickTime 0 +NtUserGetForegroundWindow 0 +NtUserGetGuiResources 2 +NtUserGetGUIThreadInfo 2 +NtUserGetIconInfo 6 +NtUserGetIconSize 4 +NtUserGetImeHotKey 4 +NtUserGetImeInfoEx 2 +NtUserGetInternalWindowPos 3 +NtUserGetKeyboardLayoutList 2 +NtUserGetKeyboardLayoutName 1 +NtUserGetKeyboardState 1 +NtUserGetKeyNameText 3 +NtUserGetKeyState 1 +NtUserGetListBoxInfo 1 +NtUserGetMenuBarInfo 4 +NtUserGetMenuIndex 2 +NtUserGetMenuItemRect 4 +NtUserGetMessage 4 +NtUserGetMouseMovePointsEx 5 +NtUserGetObjectInformation 5 +NtUserGetOpenClipboardWindow 0 +NtUserGetPriorityClipboardFormat 2 +NtUserGetProcessWindowStation 0 +NtUserGetRawInputBuffer 3 +NtUserGetRawInputData 5 +NtUserGetRawInputDeviceInfo 4 +NtUserGetRawInputDeviceList 3 +NtUserGetRegisteredRawInputDevices 3 +NtUserGetScrollBarInfo 3 +NtUserGetSystemMenu 2 +NtUserGetThreadDesktop 2 +NtUserGetThreadState 1 +NtUserGetTitleBarInfo 2 +NtUserGetUpdateRect 3 +NtUserGetUpdateRgn 3 +NtUserGetWindowDC 1 +NtUserGetWindowPlacement 2 +NtUserGetWOWClass 2 +NtUserHardErrorControl 3 +NtUserHideCaret 1 +NtUserHiliteMenuItem 4 +NtUserImpersonateDdeClientWindow 2 +NtUserInitialize 3 +NtUserInitializeClientPfnArrays 4 +NtUserInitTask 12 +NtUserInternalGetWindowText 3 +NtUserInvalidateRect 3 +NtUserInvalidateRgn 3 +NtUserIsClipboardFormatAvailable 1 +NtUserKillTimer 2 +NtUserLoadKeyboardLayoutEx 7 +NtUserLockWindowStation 1 +NtUserLockWindowUpdate 1 +NtUserLockWorkStation 0 +NtUserMapVirtualKeyEx 4 +NtUserMenuItemFromPoint 4 +NtUserMessageCall 7 +NtUserMinMaximize 3 +NtUserMNDragLeave 0 +NtUserMNDragOver 2 +NtUserModifyUserStartupInfoFlags 2 +NtUserMoveWindow 6 +NtUserNotifyIMEStatus 3 +NtUserNotifyProcessCreate 4 +NtUserNotifyWinEvent 4 +NtUserOpenClipboard 2 +NtUserOpenDesktop 3 +NtUserOpenInputDesktop 3 +NtUserOpenWindowStation 2 +NtUserPaintDesktop 1 +NtUserPeekMessage 5 +NtUserPostMessage 4 +NtUserPostThreadMessage 4 +NtUserPrintWindow 3 +NtUserProcessConnect 3 +NtUserQueryInformationThread 4 +NtUserQueryInputContext 2 +NtUserQuerySendMessage 1 +NtUserQueryWindow 2 +NtUserRealChildWindowFromPoint 3 +NtUserRealInternalGetMessage 6 +NtUserRealWaitMessageEx 2 +NtUserRedrawWindow 4 +NtUserRegisterClassExWOW 7 +NtUserRegisterUserApiHook 4 +NtUserRegisterHotKey 4 +NtUserRegisterRawInputDevices 3 +NtUserRegisterTasklist 1 +NtUserRegisterWindowMessage 1 +NtUserRemoveMenu 3 +NtUserRemoveProp 2 +NtUserResolveDesktop 4 +NtUserResolveDesktopForWOW 1 +NtUserSBGetParms 4 +NtUserScrollDC 7 +NtUserScrollWindowEx 8 +NtUserSelectPalette 3 +NtUserSendInput 3 +NtUserSetActiveWindow 1 +NtUserSetAppImeLevel 2 +NtUserSetCapture 1 +NtUserSetClassLong 4 +NtUserSetClassWord 3 +NtUserSetClipboardData 3 +NtUserSetClipboardViewer 1 +NtUserSetConsoleReserveKeys 2 +NtUserSetCursor 1 +NtUserSetCursorContents 2 +NtUserSetCursorIconData 4 +NtUserSetFocus 1 +NtUserSetImeHotKey 5 +NtUserSetImeInfoEx 1 +NtUserSetImeOwnerWindow 2 +NtUserSetInformationProcess 4 +NtUserSetInformationThread 4 +NtUserSetInternalWindowPos 4 +NtUserSetKeyboardState 1 +NtUserSetLogonNotifyWindow 1 +NtUserSetMenu 3 +NtUserSetMenuContextHelpId 2 +NtUserSetMenuDefaultItem 3 +NtUserSetMenuFlagRtoL 1 +NtUserSetObjectInformation 4 +NtUserSetParent 2 +NtUserSetProcessWindowStation 1 +NtUserSetProp 3 +NtUserSetScrollInfo 4 +NtUserSetShellWindowEx 2 +NtUserSetSysColors 4 +NtUserSetSystemCursor 2 +NtUserSetSystemMenu 2 +NtUserSetSystemTimer 4 +NtUserSetThreadDesktop 1 +NtUserSetThreadLayoutHandles 2 +NtUserSetThreadState 2 +NtUserSetTimer 4 +NtUserSetWindowFNID 2 +NtUserSetWindowLong 4 +NtUserSetWindowPlacement 2 +NtUserSetWindowPos 7 +NtUserSetWindowRgn 3 +NtUserSetWindowsHookAW 3 +NtUserSetWindowsHookEx 6 +NtUserSetWindowStationUser 4 +NtUserSetWindowWord 3 +NtUserSetWinEventHook 8 +NtUserShowCaret 1 +NtUserShowScrollBar 3 +NtUserShowWindow 2 +NtUserShowWindowAsync 2 +NtUserSoundSentry 0 +NtUserSwitchDesktop 1 +NtUserSystemParametersInfo 4 +NtUserTestForInteractiveUser 1 +NtUserThunkedMenuInfo 2 +NtUserThunkedMenuItemInfo 6 +NtUserToUnicodeEx 7 +NtUserTrackMouseEvent 1 +NtUserTrackPopupMenuEx 6 +NtUserCalcMenuBar 5 +NtUserPaintMenuBar 6 +NtUserTranslateAccelerator 3 +NtUserTranslateMessage 2 +NtUserUnhookWindowsHookEx 1 +NtUserUnhookWinEvent 1 +NtUserUnloadKeyboardLayout 1 +NtUserUnlockWindowStation 1 +NtUserUnregisterClass 3 +NtUserUnregisterUserApiHook 0 +NtUserUnregisterHotKey 2 +NtUserUpdateInputContext 3 +NtUserUpdateInstance 3 +NtUserUpdateLayeredWindow 10 +NtUserGetLayeredWindowAttributes 4 +NtUserSetLayeredWindowAttributes 4 +NtUserUpdatePerUserSystemParameters 2 +NtUserUserHandleGrantAccess 3 +NtUserValidateHandleSecure 1 +NtUserValidateRect 2 +NtUserValidateTimerCallback 1 +NtUserVkKeyScanEx 3 +NtUserWaitForInputIdle 3 +NtUserWaitForMsgAndEvent 1 +NtUserWaitMessage 0 +NtUserWin32PoolAllocationStats 6 +NtUserWindowFromPoint 2 +NtUserYieldTask 0 +NtUserRemoteConnect 3 +NtUserRemoteRedrawRectangle 4 +NtUserRemoteRedrawScreen 0 +NtUserRemoteStopScreenUpdates 0 +NtUserCtxDisplayIOCtl 3 +NtGdiEngAssociateSurface 3 +NtGdiEngCreateBitmap 6 +NtGdiEngCreateDeviceSurface 4 +NtGdiEngCreateDeviceBitmap 4 +NtGdiEngCreatePalette 6 +NtGdiEngComputeGlyphSet 3 +NtGdiEngCopyBits 6 +NtGdiEngDeletePalette 1 +NtGdiEngDeleteSurface 1 +NtGdiEngEraseSurface 3 +NtGdiEngUnlockSurface 1 +NtGdiEngLockSurface 1 +NtGdiEngBitBlt 11 +NtGdiEngStretchBlt 11 +NtGdiEngPlgBlt 11 +NtGdiEngMarkBandingSurface 1 +NtGdiEngStrokePath 8 +NtGdiEngFillPath 7 +NtGdiEngStrokeAndFillPath 10 +NtGdiEngPaint 5 +NtGdiEngLineTo 9 +NtGdiEngAlphaBlend 7 +NtGdiEngGradientFill 10 +NtGdiEngTransparentBlt 8 +NtGdiEngTextOut 10 +NtGdiEngStretchBltROP 13 +NtGdiXLATEOBJ_cGetPalette 4 +NtGdiXLATEOBJ_iXlate 2 +NtGdiXLATEOBJ_hGetColorTransform 1 +NtGdiCLIPOBJ_bEnum 3 +NtGdiCLIPOBJ_cEnumStart 5 +NtGdiCLIPOBJ_ppoGetPath 1 +NtGdiEngDeletePath 1 +NtGdiEngCreateClip 0 +NtGdiEngDeleteClip 1 +NtGdiBRUSHOBJ_ulGetBrushColor 1 +NtGdiBRUSHOBJ_pvAllocRbrush 2 +NtGdiBRUSHOBJ_pvGetRbrush 1 +NtGdiBRUSHOBJ_hGetColorTransform 1 +NtGdiXFORMOBJ_bApplyXform 5 +NtGdiXFORMOBJ_iGetXform 2 +NtGdiFONTOBJ_vGetInfo 3 +NtGdiFONTOBJ_pxoGetXform 1 +NtGdiFONTOBJ_cGetGlyphs 5 +NtGdiFONTOBJ_pifi 1 +NtGdiFONTOBJ_pfdg 1 +NtGdiFONTOBJ_pQueryGlyphAttrs 2 +NtGdiFONTOBJ_pvTrueTypeFontFile 2 +NtGdiFONTOBJ_cGetAllGlyphHandles 2 +NtGdiSTROBJ_bEnum 3 +NtGdiSTROBJ_bEnumPositionsOnly 3 +NtGdiSTROBJ_bGetAdvanceWidths 4 +NtGdiSTROBJ_vEnumStart 1 +NtGdiSTROBJ_dwGetCodePage 1 +NtGdiPATHOBJ_vGetBounds 2 +NtGdiPATHOBJ_bEnum 2 +NtGdiPATHOBJ_vEnumStart 1 +NtGdiPATHOBJ_vEnumStartClipLines 4 +NtGdiPATHOBJ_bEnumClipLines 3 +NtGdiGetDhpdev 1 +NtGdiEngCheckAbort 1 +NtGdiHT_Get8BPPFormatPalette 4 +NtGdiHT_Get8BPPMaskPalette 6 +NtGdiUpdateTransform 1 +NtGdiSetPUMPDOBJ 4 +NtGdiBRUSHOBJ_DeleteRbrush 2 +NtGdiUnmapMemFont 1 +NtGdiDrawStream 3 +NtGdiMakeObjectXferable 2 +NtGdiMakeObjectUnXferable 1 Propchange: trunk/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32k_2k3sp2-x86.db ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/w32k_2ksp4-x86.db URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/w32k_2ksp4-x86.db (added) +++ trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/w32k_2ksp4-x86.db [iso-8859-1] Wed Dec 9 02:50:38 2009 @@ -1,0 +1,643 @@ +# +# win32k systemcalls taken from Windows 2000 SP4 x86 +# +NtGdiAbortDoc 1 +NtGdiAbortPath 1 +NtGdiAddFontResourceW 6 +NtGdiAddRemoteFontToDC 4 +NtGdiAddFontMemResourceEx 5 +NtGdiRemoveMergeFont 2 +NtGdiAddRemoteMMInstanceToDC 3 +NtGdiAlphaBlend 12 +NtGdiAngleArc 6 +NtGdiAnyLinkedFonts 0 +NtGdiFontIsLinked 1 +NtGdiArcInternal 10 +NtGdiBeginPath 1 +NtGdiBitBlt 11 +NtGdiCancelDC 1 +NtGdiCheckBitmapBits 8 +NtGdiCloseFigure 1 +NtGdiColorCorrectPalette 6 +NtGdiCombineRgn 4 +NtGdiCombineTransform 3 +NtGdiComputeXformCoefficients 1 +NtGdiConsoleTextOut 4 +NtGdiConvertMetafileRect 2 +NtGdiCreateBitmap 5 +NtGdiCreateClientObj 1 +NtGdiCreateColorSpace 1 +NtGdiCreateColorTransform 8 +NtGdiCreateCompatibleBitmap 3 +NtGdiCreateCompatibleDC 1 +NtGdiCreateDIBBrush 6 +NtGdiCreateDIBitmapInternal 11 +NtGdiCreateDIBSection 9 +NtGdiCreateEllipticRgn 4 +NtGdiCreateHalftonePalette 1 +NtGdiCreateHatchBrushInternal 3 +NtGdiCreateMetafileDC 1 +NtGdiCreatePaletteInternal 2 +NtGdiCreatePatternBrushInternal 3 +NtGdiCreatePen 4 +NtGdiCreateRectRgn 4 +NtGdiCreateRoundRectRgn 6 +NtGdiCreateServerMetaFile 6 +NtGdiCreateSolidBrush 2 +NtGdiD3dContextCreate 4 +NtGdiD3dContextDestroy 1 +NtGdiD3dContextDestroyAll 1 +NtGdiD3dValidateTextureStageState 1 +NtGdiD3dDrawPrimitives2 7 +NtGdiDdGetDriverState 1 +NtGdiDdAddAttachedSurface 3 +NtGdiDdAlphaBlt 3 +NtGdiDdAttachSurface 2 +NtGdiDdBeginMoCompFrame 2 +NtGdiDdBlt 3 +NtGdiDdCanCreateSurface 2 +NtGdiDdCanCreateD3DBuffer 2 +NtGdiDdColorControl 2 +NtGdiDdCreateDirectDrawObject 1 +NtGdiDdCreateSurface 8 +NtGdiDdCreateD3DBuffer 8 +NtGdiDdCreateMoComp 2 +NtGdiDdCreateSurfaceObject 6 +NtGdiDdDeleteDirectDrawObject 1 +NtGdiDdDeleteSurfaceObject 1 +NtGdiDdDestroyMoComp 2 +NtGdiDdDestroySurface 2 +NtGdiDdDestroyD3DBuffer 1 +NtGdiDdEndMoCompFrame 2 +NtGdiDdFlip 5 +NtGdiDdFlipToGDISurface 2 +NtGdiDdGetAvailDriverMemory 2 +NtGdiDdGetBltStatus 2 +NtGdiDdGetDC 2 +NtGdiDdGetDriverInfo 2 +NtGdiDdGetDxHandle 3 +NtGdiDdGetFlipStatus 2 +NtGdiDdGetInternalMoCompInfo 2 +NtGdiDdGetMoCompBuffInfo 2 +NtGdiDdGetMoCompGuids 2 +NtGdiDdGetMoCompFormats 2 +NtGdiDdGetScanLine 2 +NtGdiDdLock 3 +NtGdiDdLockD3D 2 +NtGdiDdQueryDirectDrawObject 11 +NtGdiDdQueryMoCompStatus 2 +NtGdiDdReenableDirectDrawObject 2 +NtGdiDdReleaseDC 1 +NtGdiDdRenderMoComp 2 +NtGdiDdResetVisrgn 2 +NtGdiDdSetColorKey 2 +NtGdiDdSetExclusiveMode 2 +NtGdiDdSetGammaRamp 3 +NtGdiDdCreateSurfaceEx 3 +NtGdiDdSetOverlayPosition 3 +NtGdiDdUnattachSurface 2 +NtGdiDdUnlock 2 +NtGdiDdUnlockD3D 2 +NtGdiDdUpdateOverlay 3 +NtGdiDdWaitForVerticalBlank 2 +NtGdiDvpCanCreateVideoPort 2 +NtGdiDvpColorControl 2 +NtGdiDvpCreateVideoPort 2 +NtGdiDvpDestroyVideoPort 2 +NtGdiDvpFlipVideoPort 4 +NtGdiDvpGetVideoPortBandwidth 2 +NtGdiDvpGetVideoPortField 2 +NtGdiDvpGetVideoPortFlipStatus 2 +NtGdiDvpGetVideoPortInputFormats 2 +NtGdiDvpGetVideoPortLine 2 +NtGdiDvpGetVideoPortOutputFormats 2 +NtGdiDvpGetVideoPortConnectInfo 2 +NtGdiDvpGetVideoSignalStatus 2 +NtGdiDvpUpdateVideoPort 4 +NtGdiDvpWaitForVideoPortSync 2 +NtGdiDeleteClientObj 1 +NtGdiDeleteColorSpace 1 +NtGdiDeleteColorTransform 2 +NtGdiDeleteObjectApp 1 +NtGdiDescribePixelFormat 4 +NtGdiGetPerBandInfo 2 +NtGdiDoBanding 4 +NtGdiDoPalette 6 +NtGdiDrawEscape 4 +NtGdiEllipse 5 +NtGdiEnableEudc 1 +NtGdiEndDoc 1 +NtGdiEndPage 1 +NtGdiEndPath 1 +NtGdiEnumFontChunk 5 +NtGdiEnumFontClose 1 +NtGdiEnumFontOpen 7 +NtGdiEnumObjects 4 +NtGdiEqualRgn 2 +NtGdiEudcEnumFaceNameLinkW 4 +NtGdiEudcLoadUnloadLink 7 +NtGdiExcludeClipRect 5 +NtGdiExtCreatePen 11 +NtGdiExtCreateRegion 3 +NtGdiExtEscape 8 +NtGdiExtFloodFill 5 +NtGdiExtGetObjectW 3 +NtGdiExtSelectClipRgn 3 +NtGdiExtTextOutW 9 +NtGdiFillPath 1 +NtGdiFillRgn 3 +NtGdiFlattenPath 1 +NtGdiFlushUserBatch 0 +NtGdiFlush 0 +NtGdiForceUFIMapping 2 +NtGdiFrameRgn 5 +NtGdiFullscreenControl 5 +NtGdiGetAndSetDCDword 4 +NtGdiGetAppClipBox 2 +NtGdiGetBitmapBits 3 +NtGdiGetBitmapDimension 2 +NtGdiGetBoundsRect 3 +NtGdiGetCharABCWidthsW 6 +NtGdiGetCharacterPlacementW 6 +NtGdiGetCharSet 1 +NtGdiGetCharWidthW 6 +NtGdiGetCharWidthInfo 2 +NtGdiGetColorAdjustment 2 +NtGdiGetColorSpaceforBitmap 1 +NtGdiGetDCDword 3 +NtGdiGetDCforBitmap 1 +NtGdiGetDCObject 2 +NtGdiGetDCPoint 3 +NtGdiGetDeviceCaps 2 +NtGdiGetDeviceGammaRamp 2 +NtGdiGetDeviceCapsAll 2 +NtGdiGetDIBitsInternal 9 +NtGdiGetETM 2 +NtGdiGetEudcTimeStampEx 3 +NtGdiGetFontData 5 +NtGdiGetFontResourceInfoInternalW 7 +NtGdiGetGlyphIndicesW 5 +NtGdiGetGlyphIndicesWInternal 6 +NtGdiGetGlyphOutline 8 +NtGdiGetKerningPairs 3 +NtGdiGetLinkedUFIs 3 +NtGdiGetMiterLimit 2 +NtGdiGetMonitorID 3 +NtGdiGetNearestColor 2 +NtGdiGetNearestPaletteIndex 2 +NtGdiGetObjectBitmapHandle 2 +NtGdiGetOutlineTextMetricsInternalW 4 +NtGdiGetPath 4 +NtGdiGetPixel 3 +NtGdiGetRandomRgn 3 +NtGdiGetRasterizerCaps 2 +NtGdiGetRealizationInfo 2 +NtGdiGetRegionData 3 +NtGdiGetRgnBox 2 +NtGdiGetServerMetaFileBits 7 +NtGdiGetSpoolMessage 4 +NtGdiGetStats 5 +NtGdiGetStockObject 1 +NtGdiGetStringBitmapW 5 +NtGdiGetSystemPaletteUse 1 +NtGdiGetTextCharsetInfo 3 +NtGdiGetTextExtent 5 +NtGdiGetTextExtentExW 8 +NtGdiGetTextFaceW 4 +NtGdiGetTextMetricsW 3 +NtGdiGetTransform 3 +NtGdiGetUFI 6 +NtGdiGetUFIPathname 10 +NtGdiGetFontUnicodeRanges 2 +NtGdiGetWidthTable 7 +NtGdiGradientFill 6 +NtGdiHfontCreate 5 +NtGdiIcmBrushInfo 8 +NtGdiInit 0 +NtGdiInitSpool 0 +NtGdiIntersectClipRect 5 +NtGdiInvertRgn 2 +NtGdiLineTo 3 +NtGdiMakeFontDir 5 +NtGdiMakeInfoDC 2 +NtGdiMaskBlt 13 +NtGdiModifyWorldTransform 3 +NtGdiMonoBitmap 1 +NtGdiMoveTo 4 +NtGdiOffsetClipRgn 3 +NtGdiOffsetRgn 3 +NtGdiOpenDCW 7 +NtGdiPatBlt 6 +NtGdiPolyPatBlt 5 +NtGdiPathToRegion 1 +NtGdiPlgBlt 11 +NtGdiPolyDraw 4 +NtGdiPolyPolyDraw 5 +NtGdiPolyTextOutW 4 +NtGdiPtInRegion 3 +NtGdiPtVisible 3 +NtGdiQueryFonts 3 +NtGdiQueryFontAssocInfo 1 +NtGdiRectangle 5 +NtGdiRectInRegion 2 +NtGdiRectVisible 2 +NtGdiRemoveFontResourceW 6 +NtGdiRemoveFontMemResourceEx 1 +NtGdiResetDC 5 +NtGdiResizePalette 2 +NtGdiRestoreDC 2 +NtGdiRoundRect 7 +NtGdiSaveDC 1 +NtGdiScaleViewportExtEx 6 +NtGdiScaleWindowExtEx 6 +NtGdiSelectBitmap 2 +NtGdiSelectBrush 2 +NtGdiSelectClipPath 2 +NtGdiSelectFont 2 +NtGdiSelectPen 2 +NtGdiSetBitmapBits 3 +NtGdiSetBitmapDimension 4 +NtGdiSetBoundsRect 3 +NtGdiSetBrushOrg 4 +NtGdiSetColorAdjustment 2 +NtGdiSetColorSpace 2 +NtGdiSetDeviceGammaRamp 2 +NtGdiSetDIBitsToDeviceInternal 16 +NtGdiSetFontEnumeration 1 +NtGdiSetFontXform 3 +NtGdiSetIcmMode 3 +NtGdiSetLinkedUFIs 3 +NtGdiSetMagicColors 3 +NtGdiSetMetaRgn 1 +NtGdiSetMiterLimit 3 +NtGdiGetDeviceWidth 1 +NtGdiMirrorWindowOrg 1 +NtGdiSetLayout 3 +NtGdiSetPixel 4 +NtGdiSetPixelFormat 2 +NtGdiSetRectRgn 5 +NtGdiSetSystemPaletteUse 2 +NtGdiSetTextJustification 3 +NtGdiSetupPublicCFONT 3 +NtGdiSetVirtualResolution 5 +NtGdiSetSizeDevice 3 +NtGdiStartDoc 4 +NtGdiStartPage 1 +NtGdiStretchBlt 12 +NtGdiStretchDIBitsInternal 16 +NtGdiStrokeAndFillPath 1 +NtGdiStrokePath 1 +NtGdiSwapBuffers 1 +NtGdiTransformPoints 5 +NtGdiTransparentBlt 11 +NtGdiUnloadPrinterDriver 2 +NtGdiUnmapMemFont 1 +NtGdiUnrealizeObject 1 +NtGdiUpdateColors 1 +NtGdiWidenPath 1 +NtUserActivateKeyboardLayout 2 +NtUserAlterWindowStyle 3 +NtUserAssociateInputContext 3 +NtUserAttachThreadInput 3 +NtUserBeginPaint 2 +NtUserBitBltSysBmp 8 +NtUserBlockInput 1 +NtUserBuildHimcList 4 +NtUserBuildHwndList 7 +NtUserBuildNameList 4 +NtUserBuildPropList 4 +NtUserCallHwnd 2 +NtUserCallHwndLock 2 +NtUserCallHwndOpt 2 +NtUserCallHwndParam 3 +NtUserCallHwndParamLock 3 +NtUserCallMsgFilter 2 +NtUserCallNextHookEx 4 +NtUserCallNoParam 1 +NtUserCallOneParam 1 +NtUserCallTwoParam 3 +NtUserChangeClipboardChain 2 +NtUserChangeDisplaySettings 5 +NtUserCheckImeHotKey 3 +NtUserCheckMenuItem 3 +NtUserChildWindowFromPointEx 4 +NtUserClipCursor 1 +NtUserCloseClipboard 0 +NtUserCloseDesktop 1 +NtUserCloseWindowStation 1 +NtUserConsoleControl 3 +NtUserConvertMemHandle 2 +NtUserCopyAcceleratorTable 3 +NtUserCountClipboardFormats 1 +NtUserCreateAcceleratorTable 2 +NtUserCreateCaret 4 +NtUserCreateDesktop 5 +NtUserCreateInputContext 1 +NtUserCreateLocalMemHandle 4 +NtUserCreateWindowEx 13 +NtUserCreateWindowStation 6 +NtUserDdeGetQualityOfService 3 +NtUserDdeInitialize 5 +NtUserDdeSetQualityOfService 3 +NtUserDeferWindowPos 8 +NtUserDefSetText 2 +NtUserDeleteMenu 3 +NtUserDestroyAcceleratorTable 1 +NtUserDestroyCursor 2 +NtUserDestroyInputContext 1 +NtUserDestroyMenu 1 +NtUserDestroyWindow 1 +NtUserDisableThreadIme 1 +NtUserDispatchMessage 1 +NtUserDragDetect 3 +NtUserDragObject 5 +NtUserDrawAnimatedRects 4 +NtUserDrawCaption 4 +NtUserDrawCaptionTemp 7 +NtUserDrawIconEx 11 +NtUserDrawMenuBarTemp 5 +NtUserEmptyClipboard 0 +NtUserEnableMenuItem 3 +NtUserEnableScrollBar 3 +NtUserEndDeferWindowPosEx 2 +NtUserEndMenu 0 +NtUserEndPaint 2 +NtUserEnumDisplayDevices 4 +NtUserEnumDisplayMonitors 4 +NtUserEnumDisplaySettings 4 +NtUserEvent 1 +NtUserExcludeUpdateRgn 2 +NtUserFillWindow 4 +NtUserFindExistingCursorIcon 3 +NtUserFindWindowEx 5 +NtUserFlashWindowEx 1 +NtUserGetAltTabInfo 6 +NtUserGetAncestor 2 +NtUserGetAppImeLevel 1 +NtUserGetAsyncKeyState 1 +NtUserGetCaretBlinkTime 0 +NtUserGetCaretPos 1 +NtUserGetClassInfo 5 +NtUserGetClassName 3 +NtUserGetClipboardData 2 +NtUserGetClipboardFormatName 3 +NtUserGetClipboardOwner 0 +NtUserGetClipboardSequenceNumber 0 +NtUserGetClipboardViewer 0 +NtUserGetClipCursor 1 +NtUserGetComboBoxInfo 2 +NtUserGetControlBrush 3 +NtUserGetControlColor 4 +NtUserGetCPD 3 +NtUserGetCursorFrameInfo 4 +NtUserGetCursorInfo 1 +NtUserGetDC 1 +NtUserGetDCEx 3 +NtUserGetDoubleClickTime 0 +NtUserGetForegroundWindow 0 +NtUserGetGuiResources 2 +NtUserGetGUIThreadInfo 2 +NtUserGetIconInfo 6 +NtUserGetIconSize 4 +NtUserGetImeHotKey 4 +NtUserGetImeInfoEx 2 +NtUserGetInternalWindowPos 3 +NtUserGetKeyboardLayoutList 2 +NtUserGetKeyboardLayoutName 1 +NtUserGetKeyboardState 1 +NtUserGetKeyNameText 3 +NtUserGetKeyState 1 +NtUserGetListBoxInfo 1 +NtUserGetMenuBarInfo 4 +NtUserGetMenuIndex 2 +NtUserGetMenuItemRect 4 +NtUserGetMessage 4 +NtUserGetMouseMovePointsEx 5 +NtUserGetObjectInformation 5 +NtUserGetOpenClipboardWindow 0 +NtUserGetPriorityClipboardFormat 2 +NtUserGetProcessWindowStation 0 +NtUserGetScrollBarInfo 3 +NtUserGetSystemMenu 2 +NtUserGetThreadDesktop 2 +NtUserGetThreadState 1 +NtUserGetTitleBarInfo 2 +NtUserGetUpdateRect 3 +NtUserGetUpdateRgn 3 +NtUserGetWindowDC 1 +NtUserGetWindowPlacement 2 +NtUserGetWOWClass 2 +NtUserHardErrorControl 3 +NtUserHideCaret 1 +NtUserHiliteMenuItem 4 +NtUserImpersonateDdeClientWindow 2 +NtUserInitialize 3 +NtUserInitializeClientPfnArrays 4 +NtUserInitTask 11 +NtUserInternalGetWindowText 3 +NtUserInvalidateRect 3 +NtUserInvalidateRgn 3 +NtUserIsClipboardFormatAvailable 1 +NtUserKillTimer 2 +NtUserLoadKeyboardLayoutEx 6 +NtUserLockWindowStation 1 +NtUserLockWindowUpdate 1 +NtUserLockWorkStation 0 +NtUserMapVirtualKeyEx 4 +NtUserMenuItemFromPoint 4 +NtUserMessageCall 7 +NtUserMinMaximize 3 +NtUserMNDragLeave 1 +NtUserMNDragOver 2 +NtUserModifyUserStartupInfoFlags 2 +NtUserMoveWindow 6 +NtUserNotifyIMEStatus 3 +NtUserNotifyProcessCreate 4 +NtUserNotifyWinEvent 4 +NtUserOpenClipboard 2 +NtUserOpenDesktop 3 +NtUserOpenInputDesktop 3 +NtUserOpenWindowStation 2 +NtUserPaintDesktop 1 +NtUserPeekMessage 5 +NtUserPostMessage 4 +NtUserPostThreadMessage 4 +NtUserProcessConnect 3 +NtUserQueryInformationThread 5 +NtUserQueryInputContext 2 +NtUserQuerySendMessage 1 +NtUserQueryUserCounters 5 +NtUserQueryWindow 2 +NtUserRealChildWindowFromPoint 3 +NtUserRedrawWindow 4 +NtUserRegisterClassExWOW 6 +NtUserRegisterHotKey 4 +NtUserRegisterTasklist 1 +NtUserRegisterWindowMessage 1 +NtUserRemoveMenu 3 +NtUserRemoveProp 2 +NtUserResolveDesktop 4 +NtUserResolveDesktopForWOW 1 +NtUserSBGetParms 4 +NtUserScrollDC 7 +NtUserScrollWindowEx 8 +NtUserSelectPalette 3 +NtUserSendInput 3 +NtUserSendMessageCallback 6 +NtUserSendNotifyMessage 4 +NtUserSetActiveWindow 1 +NtUserSetAppImeLevel 2 +NtUserSetCapture 1 +NtUserSetClassLong 4 +NtUserSetClassWord 3 +NtUserSetClipboardData 3 +NtUserSetClipboardViewer 1 +NtUserSetConsoleReserveKeys 2 +NtUserSetCursor 1 +NtUserSetCursorContents 2 +NtUserSetCursorIconData 4 +NtUserSetDbgTag 2 +NtUserSetFocus 1 +NtUserSetImeHotKey 5 +NtUserSetImeInfoEx 1 +NtUserSetImeOwnerWindow 2 +NtUserSetInformationProcess 4 +NtUserSetInformationThread 5 +NtUserSetInternalWindowPos 4 +NtUserSetKeyboardState 1 +NtUserSetLogonNotifyWindow 1 +NtUserSetMenu 3 +NtUserSetMenuContextHelpId 2 +NtUserSetMenuDefaultItem 3 +NtUserSetMenuFlagRtoL 1 +NtUserSetObjectInformation 4 +NtUserSetParent 2 +NtUserSetProcessWindowStation 1 +NtUserSetProp 3 +NtUserSetRipFlags 2 +NtUserSetScrollInfo 4 +NtUserSetShellWindowEx 2 +NtUserSetSysColors 4 +NtUserSetSystemCursor 2 +NtUserSetSystemMenu 2 +NtUserSetSystemTimer 4 +NtUserSetThreadDesktop 1 +NtUserSetThreadLayoutHandles 2 +NtUserSetThreadState 2 +NtUserSetTimer 4 +NtUserSetWindowFNID 2 +NtUserSetWindowLong 4 +NtUserSetWindowPlacement 2 +NtUserSetWindowPos 7 +NtUserSetWindowRgn 3 +NtUserSetWindowsHookAW 3 +NtUserSetWindowsHookEx 6 +NtUserSetWindowStationUser 4 +NtUserSetWindowWord 3 +NtUserSetWinEventHook 8 +NtUserShowCaret 1 +NtUserShowScrollBar 3 +NtUserShowWindow 2 +NtUserShowWindowAsync 2 +NtUserSoundSentry 0 +NtUserSwitchDesktop 1 +NtUserSystemParametersInfo 4 +NtUserTestForInteractiveUser 1 +NtUserThunkedMenuInfo 2 +NtUserThunkedMenuItemInfo 6 +NtUserToUnicodeEx 7 +NtUserTrackMouseEvent 1 +NtUserTrackPopupMenuEx 6 +NtUserTranslateAccelerator 3 +NtUserTranslateMessage 2 +NtUserUnhookWindowsHookEx 1 +NtUserUnhookWinEvent 1 +NtUserUnloadKeyboardLayout 1 +NtUserUnlockWindowStation 1 +NtUserUnregisterClass 3 +NtUserUnregisterHotKey 2 +NtUserUpdateInputContext 3 +NtUserUpdateInstance 3 +NtUserUpdateLayeredWindow 9 +NtUserSetLayeredWindowAttributes 4 +NtUserUpdatePerUserSystemParameters 2 +NtUserUserHandleGrantAccess 3 +NtUserValidateHandleSecure 1 +NtUserValidateRect 2 +NtUserVkKeyScanEx 3 +NtUserWaitForInputIdle 3 +NtUserWaitForMsgAndEvent 1 +NtUserWaitMessage 0 +NtUserWin32PoolAllocationStats 6 +NtUserWindowFromPoint 2 +NtUserYieldTask 0 +NtUserRemoteConnect 3 +NtUserRemoteRedrawRectangle 4 +NtUserRemoteRedrawScreen 0 +NtUserRemoteStopScreenUpdates 0 +NtUserCtxDisplayIOCtl 3 +NtGdiEngAssociateSurface 3 +NtGdiEngCreateBitmap 6 +NtGdiEngCreateDeviceSurface 4 +NtGdiEngCreateDeviceBitmap 4 +NtGdiEngCreatePalette 6 +NtGdiEngComputeGlyphSet 3 +NtGdiEngCopyBits 6 +NtGdiEngDeletePalette 1 +NtGdiEngDeleteSurface 1 +NtGdiEngEraseSurface 3 +NtGdiEngUnlockSurface 1 +NtGdiEngLockSurface 1 +NtGdiEngBitBlt 11 +NtGdiEngStretchBlt 11 +NtGdiEngPlgBlt 11 +NtGdiEngMarkBandingSurface 1 +NtGdiEngStrokePath 8 +NtGdiEngFillPath 7 +NtGdiEngStrokeAndFillPath 10 +NtGdiEngPaint 5 +NtGdiEngLineTo 9 +NtGdiEngAlphaBlend 7 +NtGdiEngGradientFill 10 +NtGdiEngTransparentBlt 8 +NtGdiEngTextOut 10 +NtGdiEngStretchBltROP 13 +NtGdiXLATEOBJ_cGetPalette 4 +NtGdiXLATEOBJ_iXlate 2 +NtGdiXLATEOBJ_hGetColorTransform 1 +NtGdiCLIPOBJ_bEnum 3 +NtGdiCLIPOBJ_cEnumStart 5 +NtGdiCLIPOBJ_ppoGetPath 1 +NtGdiEngDeletePath 1 +NtGdiEngCreateClip 0 +NtGdiEngDeleteClip 1 +NtGdiBRUSHOBJ_ulGetBrushColor 1 +NtGdiBRUSHOBJ_pvAllocRbrush 2 +NtGdiBRUSHOBJ_pvGetRbrush 1 +NtGdiBRUSHOBJ_hGetColorTransform 1 +NtGdiXFORMOBJ_bApplyXform 5 +NtGdiXFORMOBJ_iGetXform 2 +NtGdiFONTOBJ_vGetInfo 3 +NtGdiFONTOBJ_pxoGetXform 1 +NtGdiFONTOBJ_cGetGlyphs 5 +NtGdiFONTOBJ_pifi 1 +NtGdiFONTOBJ_pfdg 1 +NtGdiFONTOBJ_pQueryGlyphAttrs 2 +NtGdiFONTOBJ_pvTrueTypeFontFile 2 +NtGdiFONTOBJ_cGetAllGlyphHandles 2 +NtGdiSTROBJ_bEnum 3 +NtGdiSTROBJ_bEnumPositionsOnly 3 +NtGdiSTROBJ_bGetAdvanceWidths 4 +NtGdiSTROBJ_vEnumStart 1 +NtGdiSTROBJ_dwGetCodePage 1 +NtGdiPATHOBJ_vGetBounds 2 +NtGdiPATHOBJ_bEnum 2 +NtGdiPATHOBJ_vEnumStart 1 +NtGdiPATHOBJ_vEnumStartClipLines 4 +NtGdiPATHOBJ_bEnumClipLines 3 +NtGdiGetDhpdev 1 +NtGdiEngCheckAbort 1 +NtGdiHT_Get8BPPFormatPalette 4 +NtGdiHT_Get8BPPMaskPalette 6 +NtGdiUpdateTransform 1 +NtUserValidateTimerCallback 3 Propchange: trunk/rostests/apitests/w32kdll/w32kdll_2ksp4/w32k_2ksp4-x86.db ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-x86.db URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-x86.db (added) +++ trunk/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-x86.db [iso-8859-1] Wed Dec 9 02:50:38 2009 @@ -1,0 +1,775 @@ +# +# win32k systemcalls taken from Windows Vista SP0 x86 +# +NtGdiAbortDoc 1 +NtGdiAbortPath 1 +NtGdiAddFontResourceW 6 +NtGdiAddRemoteFontToDC 4 +NtGdiAddFontMemResourceEx 5 +NtGdiRemoveMergeFont 2 +NtGdiAddRemoteMMInstanceToDC 3 +NtGdiAlphaBlend 12 +NtGdiAngleArc 6 +NtGdiAnyLinkedFonts 0 +NtGdiFontIsLinked 1 +NtGdiArcInternal 10 +NtGdiBeginPath 1 +NtGdiBitBlt 11 +NtGdiCancelDC 1 +NtGdiCheckBitmapBits 8 +NtGdiCloseFigure 1 +NtGdiClearBitmapAttributes 2 +NtGdiClearBrushAttributes 2 +NtGdiColorCorrectPalette 6 +NtGdiCombineRgn 4 +NtGdiCombineTransform 3 +NtGdiComputeXformCoefficients 1 +NtGdiConfigureOPMProtectedOutput 4 +NtGdiConsoleTextOut 4 +NtGdiConvertMetafileRect 2 +NtGdiCreateBitmap 5 +NtGdiCreateClientObj 1 +NtGdiCreateColorSpace 1 +NtGdiCreateColorTransform 8 +NtGdiCreateCompatibleBitmap 3 +NtGdiCreateCompatibleDC 1 +NtGdiCreateDIBBrush 6 +NtGdiCreateDIBitmapInternal 11 +NtGdiCreateDIBSection 9 +NtGdiCreateEllipticRgn 4 +NtGdiCreateHalftonePalette 1 +NtGdiCreateHatchBrushInternal 3 +NtGdiCreateMetafileDC 1 +NtGdiCreateOPMProtectedOutputs 5 +NtGdiCreatePaletteInternal 2 +NtGdiCreatePatternBrushInternal 3 +NtGdiCreatePen 4 +NtGdiCreateRectRgn 4 +NtGdiCreateRoundRectRgn 6 +NtGdiCreateServerMetaFile 6 +NtGdiCreateSolidBrush 2 +NtGdiD3dContextCreate 4 +NtGdiD3dContextDestroy 1 +NtGdiD3dContextDestroyAll 1 +NtGdiD3dValidateTextureStageState 1 +NtGdiD3dDrawPrimitives2 7 +NtGdiDdGetDriverState 1 +NtGdiDdAddAttachedSurface 3 +NtGdiDdAlphaBlt 3 +NtGdiDdAttachSurface 2 +NtGdiDdBeginMoCompFrame 2 +NtGdiDdBlt 3 +NtGdiDdCanCreateSurface 2 +NtGdiDdCanCreateD3DBuffer 2 +NtGdiDdColorControl 2 +NtGdiDdCreateDirectDrawObject 1 +NtGdiDdCreateSurface 8 +NtGdiDdCreateD3DBuffer 8 +NtGdiDdCreateMoComp 2 +NtGdiDdCreateSurfaceObject 6 +NtGdiDdDeleteDirectDrawObject 1 +NtGdiDdDeleteSurfaceObject 1 +NtGdiDdDestroyMoComp 2 +NtGdiDdDestroySurface 2 +NtGdiDdDestroyD3DBuffer 1 +NtGdiDdEndMoCompFrame 2 +NtGdiDdFlip 5 +NtGdiDdFlipToGDISurface 2 +NtGdiDdGetAvailDriverMemory 2 +NtGdiDdGetBltStatus 2 +NtGdiDdGetDC 2 +NtGdiDdGetDriverInfo 2 +NtGdiDdGetDxHandle 3 +NtGdiDdGetFlipStatus 2 +NtGdiDdGetInternalMoCompInfo 2 +NtGdiDdGetMoCompBuffInfo 2 +NtGdiDdGetMoCompGuids 2 +NtGdiDdGetMoCompFormats 2 +NtGdiDdGetScanLine 2 +NtGdiDdLock 3 +NtGdiDdLockD3D 2 +NtGdiDdQueryDirectDrawObject 11 +NtGdiDdQueryMoCompStatus 2 +NtGdiDdReenableDirectDrawObject 2 +NtGdiDdReleaseDC 1 +NtGdiDdRenderMoComp 2 +NtGdiDdResetVisrgn 2 +NtGdiDdSetColorKey 2 +NtGdiDdSetExclusiveMode 2 +NtGdiDdSetGammaRamp 3 +NtGdiDdCreateSurfaceEx 3 +NtGdiDdSetOverlayPosition 3 +NtGdiDdUnattachSurface 2 +NtGdiDdUnlock 2 +NtGdiDdUnlockD3D 2 +NtGdiDdUpdateOverlay 3 +NtGdiDdWaitForVerticalBlank 2 +NtGdiDvpCanCreateVideoPort 2 +NtGdiDvpColorControl 2 +NtGdiDvpCreateVideoPort 2 +NtGdiDvpDestroyVideoPort 2 +NtGdiDvpFlipVideoPort 4 +NtGdiDvpGetVideoPortBandwidth 2 +NtGdiDvpGetVideoPortField 2 +NtGdiDvpGetVideoPortFlipStatus 2 +NtGdiDvpGetVideoPortInputFormats 2 +NtGdiDvpGetVideoPortLine 2 +NtGdiDvpGetVideoPortOutputFormats 2 +NtGdiDvpGetVideoPortConnectInfo 2 +NtGdiDvpGetVideoSignalStatus 2 +NtGdiDvpUpdateVideoPort 4 +NtGdiDvpWaitForVideoPortSync 2 +NtGdiDvpAcquireNotification 3 +NtGdiDvpReleaseNotification 2 +NtGdiDxgGenericThunk 6 +NtGdiDeleteClientObj 1 +NtGdiDeleteColorSpace 1 +NtGdiDeleteColorTransform 2 +NtGdiDeleteObjectApp 1 +NtGdiDescribePixelFormat 4 +NtGdiDestroyOPMProtectedOutput 1 +NtGdiGetPerBandInfo 2 +NtGdiDoBanding 4 +NtGdiDoPalette 6 +NtGdiDrawEscape 4 +NtGdiEllipse 5 +NtGdiEnableEudc 1 +NtGdiEndDoc 1 +NtGdiEndPage 1 +NtGdiEndPath 1 +NtGdiEnumFontChunk 5 +NtGdiEnumFontClose 1 +NtGdiEnumFontOpen 7 +NtGdiEnumObjects 4 +NtGdiEqualRgn 2 +NtGdiEudcLoadUnloadLink 7 +NtGdiExcludeClipRect 5 +NtGdiExtCreatePen 11 +NtGdiExtCreateRegion 3 +NtGdiExtEscape 8 +NtGdiExtFloodFill 5 +NtGdiExtGetObjectW 3 +NtGdiExtSelectClipRgn 3 +NtGdiExtTextOutW 9 +NtGdiFillPath 1 +NtGdiFillRgn 3 +NtGdiFlattenPath 1 +NtGdiFlush 0 +NtGdiForceUFIMapping 2 +NtGdiFrameRgn 5 +NtGdiFullscreenControl 5 +NtGdiGetAndSetDCDword 4 +NtGdiGetAppClipBox 2 +NtGdiGetBitmapBits 3 +NtGdiGetBitmapDimension 2 +NtGdiGetBoundsRect 3 +NtGdiGetCertificate 4 +NtGdiGetCertificateSize 3 +NtGdiGetCharABCWidthsW 6 +NtGdiGetCharacterPlacementW 6 +NtGdiGetCharSet 1 +NtGdiGetCharWidthW 6 +NtGdiGetCharWidthInfo 2 +NtGdiGetColorAdjustment 2 +NtGdiGetColorSpaceforBitmap 1 +NtGdiGetCOPPCompatibleOPMInformation 3 +NtGdiGetDCDword 3 +NtGdiGetDCforBitmap 1 +NtGdiGetDCObject 2 +NtGdiGetDCPoint 3 +NtGdiGetDeviceCaps 2 +NtGdiGetDeviceGammaRamp 2 +NtGdiGetDeviceCapsAll 2 +NtGdiGetDIBitsInternal 9 +NtGdiGetETM 2 +NtGdiGetEudcTimeStampEx 3 +NtGdiGetFontData 5 +NtGdiGetFontResourceInfoInternalW 7 +NtGdiGetGlyphIndicesW 5 +NtGdiGetGlyphIndicesWInternal 6 +NtGdiGetGlyphOutline 8 +NtGdiGetOPMInformation 3 +NtGdiGetKerningPairs 3 +NtGdiGetLinkedUFIs 3 +NtGdiGetMiterLimit 2 +NtGdiGetMonitorID 3 +NtGdiGetNearestColor 2 +NtGdiGetNearestPaletteIndex 2 +NtGdiGetObjectBitmapHandle 2 +NtGdiGetOPMRandomNumber 2 +NtGdiGetOutlineTextMetricsInternalW 4 +NtGdiGetPath 4 +NtGdiGetPixel 3 +NtGdiGetRandomRgn 3 +NtGdiGetRasterizerCaps 2 +NtGdiGetRealizationInfo 3 +NtGdiGetRegionData 3 +NtGdiGetRgnBox 2 +NtGdiGetServerMetaFileBits 7 +NtGdiGetSpoolMessage 4 +NtGdiGetStats 5 +NtGdiGetStockObject 1 +NtGdiGetStringBitmapW 5 +NtGdiGetSuggestedOPMProtectedOutputArraySize 2 +NtGdiGetSystemPaletteUse 1 +NtGdiGetTextCharsetInfo 3 +NtGdiGetTextExtent 5 +NtGdiGetTextExtentExW 8 +NtGdiGetTextFaceW 4 +NtGdiGetTextMetricsW 3 +NtGdiGetTransform 3 +NtGdiGetUFI 6 +NtGdiGetEmbUFI 7 +NtGdiGetUFIPathname 10 +NtGdiGetEmbedFonts 0 +NtGdiChangeGhostFont 2 +NtGdiAddEmbFontToDC 2 +NtGdiGetFontUnicodeRanges 2 +NtGdiGetWidthTable 7 +NtGdiGradientFill 6 +NtGdiHfontCreate 5 +NtGdiIcmBrushInfo 8 +NtGdiInit 0 +NtGdiInitSpool 0 +NtGdiIntersectClipRect 5 +NtGdiInvertRgn 2 +NtGdiLineTo 3 +NtGdiMakeFontDir 5 +NtGdiMakeInfoDC 2 +NtGdiMaskBlt 13 +NtGdiModifyWorldTransform 3 +NtGdiMonoBitmap 1 +NtGdiMoveTo 4 +NtGdiOffsetClipRgn 3 +NtGdiOffsetRgn 3 +NtGdiOpenDCW 8 +NtGdiPatBlt 6 +NtGdiPolyPatBlt 5 +NtGdiPathToRegion 1 +NtGdiPlgBlt 11 +NtGdiPolyDraw 4 +NtGdiPolyPolyDraw 5 +NtGdiPolyTextOutW 4 +NtGdiPtInRegion 3 +NtGdiPtVisible 3 +NtGdiQueryFonts 3 +NtGdiQueryFontAssocInfo 1 +NtGdiRectangle 5 +NtGdiRectInRegion 2 +NtGdiRectVisible 2 +NtGdiRemoveFontResourceW 6 +NtGdiRemoveFontMemResourceEx 1 +NtGdiResetDC 5 +NtGdiResizePalette 2 +NtGdiRestoreDC 2 +NtGdiRoundRect 7 +NtGdiSaveDC 1 +NtGdiScaleViewportExtEx 6 +NtGdiScaleWindowExtEx 6 +NtGdiSelectBitmap 2 +NtGdiSelectBrush 2 +NtGdiSelectClipPath 2 +NtGdiSelectFont 2 +NtGdiSelectPen 2 +NtGdiSetBitmapAttributes 2 +NtGdiSetBitmapBits 3 +NtGdiSetBitmapDimension 4 +NtGdiSetBoundsRect 3 +NtGdiSetBrushAttributes 2 +NtGdiSetBrushOrg 4 +NtGdiSetColorAdjustment 2 +NtGdiSetColorSpace 2 +NtGdiSetDeviceGammaRamp 2 +NtGdiSetDIBitsToDeviceInternal 16 +NtGdiSetFontEnumeration 1 +NtGdiSetFontXform 3 +NtGdiSetIcmMode 3 +NtGdiSetLinkedUFIs 3 +NtGdiSetMagicColors 3 +NtGdiSetMetaRgn 1 +NtGdiSetMiterLimit 3 +NtGdiGetDeviceWidth 1 +NtGdiMirrorWindowOrg 1 +NtGdiSetLayout 3 +NtGdiSetOPMSigningKeyAndSequenceNumbers 2 +NtGdiSetPixel 4 +NtGdiSetPixelFormat 2 +NtGdiSetRectRgn 5 +NtGdiSetSystemPaletteUse 2 +NtGdiSetTextJustification 3 +NtGdiSetupPublicCFONT 3 +NtGdiSetVirtualResolution 5 +NtGdiSetSizeDevice 3 +NtGdiStartDoc 4 +NtGdiStartPage 1 +NtGdiStretchBlt 12 +NtGdiStretchDIBitsInternal 16 +NtGdiStrokeAndFillPath 1 +NtGdiStrokePath 1 +NtGdiSwapBuffers 1 +NtGdiTransformPoints 5 +NtGdiTransparentBlt 11 +NtGdiUnloadPrinterDriver 2 +NtGdiUnmapMemFont 1 +NtGdiUnrealizeObject 1 +NtGdiUpdateColors 1 +NtGdiWidenPath 1 +NtUserActivateKeyboardLayout 2 +NtUserAddClipboardFormatListener 1 +NtUserAlterWindowStyle 3 +NtUserAssociateInputContext 3 +NtUserAttachThreadInput 3 +NtUserBeginPaint 2 +NtUserBitBltSysBmp 8 +NtUserBlockInput 1 +NtUserBuildHimcList 4 +NtUserBuildHwndList 7 +NtUserBuildNameList 4 +NtUserBuildPropList 4 +NtUserCallHwnd 2 +NtUserCallHwndLock 2 +NtUserCallHwndOpt 2 +NtUserCallHwndParam 3 +NtUserCallHwndParamLock 3 +NtUserCallMsgFilter 2 +NtUserCallNextHookEx 4 +NtUserCallNoParam 1 +NtUserCallOneParam 2 +NtUserCallTwoParam 3 +NtUserChangeClipboardChain 2 +NtUserChangeDisplaySettings 4 +NtUserCheckAccessForIntegrityLevel 3 +NtUserCheckDesktopByThreadId 1 +NtUserCheckWindowThreadDesktop 3 +NtUserCheckImeHotKey 2 +NtUserCheckMenuItem 3 +NtUserChildWindowFromPointEx 4 +NtUserClipCursor 1 +NtUserCloseClipboard 0 +NtUserCloseDesktop 1 +NtUserCloseWindowStation 1 +NtUserConsoleControl 3 +NtUserConvertMemHandle 2 +NtUserCopyAcceleratorTable 3 +NtUserCountClipboardFormats 0 +NtUserCreateAcceleratorTable 2 +NtUserCreateCaret 4 +NtUserCreateDesktopEx 6 +NtUserCreateInputContext 1 +NtUserCreateLocalMemHandle 4 +NtUserCreateWindowEx 15 +NtUserCreateWindowStation 7 +NtUserDdeInitialize 5 +NtUserDeferWindowPos 8 +NtUserDefSetText 2 +NtUserDeleteMenu 3 +NtUserDestroyAcceleratorTable 1 +NtUserDestroyCursor 2 +NtUserDestroyInputContext 1 +NtUserDestroyMenu 1 +NtUserDestroyWindow 1 +NtUserDisableThreadIme 1 +NtUserDispatchMessage 1 +NtUserDoSoundConnect 0 +NtUserDoSoundDisconnect 0 +NtUserDragDetect 3 +NtUserDragObject 5 +NtUserDrawAnimatedRects 4 +NtUserDrawCaption 4 +NtUserDrawCaptionTemp 7 +NtUserDrawIconEx 11 +NtUserDrawMenuBarTemp 5 +NtUserEmptyClipboard 0 +NtUserEnableMenuItem 3 +NtUserEnableScrollBar 3 +NtUserEndDeferWindowPosEx 2 +NtUserEndMenu 0 +NtUserEndPaint 2 +NtUserEnumDisplayDevices 4 +NtUserEnumDisplayMonitors 4 +NtUserEnumDisplaySettings 4 +NtUserEvent 1 +NtUserExcludeUpdateRgn 2 +NtUserFillWindow 4 +NtUserFindExistingCursorIcon 3 +NtUserFindWindowEx 5 +NtUserFlashWindowEx 1 +NtUserFrostCrashedWindow 2 +NtUserGetAltTabInfo 6 +NtUserGetAncestor 2 +NtUserGetAppImeLevel 1 +NtUserGetAsyncKeyState 1 +NtUserGetAtomName 2 +NtUserGetCaretBlinkTime 0 +NtUserGetCaretPos 1 +NtUserGetClassInfoEx 5 +NtUserGetClassName 3 +NtUserGetClipboardData 2 +NtUserGetClipboardFormatName 3 +NtUserGetClipboardOwner 0 +NtUserGetClipboardSequenceNumber 0 +NtUserGetClipboardViewer 0 +NtUserGetClipCursor 1 +NtUserGetComboBoxInfo 2 +NtUserGetControlBrush 3 +NtUserGetControlColor 4 +NtUserGetCPD 3 +NtUserGetCursorFrameInfo 4 +NtUserGetCursorInfo 1 +NtUserGetDC 1 +NtUserGetDCEx 3 +NtUserGetDoubleClickTime 0 +NtUserGetForegroundWindow 0 +NtUserGetGuiResources 2 +NtUserGetGUIThreadInfo 2 +NtUserGetIconInfo 6 +NtUserGetIconSize 4 +NtUserGetImeHotKey 4 +NtUserGetImeInfoEx 2 +NtUserGetInternalWindowPos 3 +NtUserGetKeyboardLayoutList 2 +NtUserGetKeyboardLayoutName 1 +NtUserGetKeyboardState 1 +NtUserGetKeyNameText 3 +NtUserGetKeyState 1 +NtUserGetListBoxInfo 1 +NtUserGetMenuBarInfo 4 +NtUserGetMenuIndex 2 +NtUserGetMenuItemRect 4 +NtUserGetMessage 4 +NtUserGetMouseMovePointsEx 5 +NtUserGetObjectInformation 5 +NtUserGetOpenClipboardWindow 0 +NtUserGetPriorityClipboardFormat 2 +NtUserGetProcessWindowStation 0 +NtUserGetRawInputBuffer 3 +NtUserGetRawInputData 5 +NtUserGetRawInputDeviceInfo 4 +NtUserGetRawInputDeviceList 3 +NtUserGetRegisteredRawInputDevices 3 +NtUserGetScrollBarInfo 3 +NtUserGetSystemMenu 2 +NtUserGetThreadDesktop 2 +NtUserGetThreadState 1 +NtUserGetTitleBarInfo 2 +NtUserGetUpdatedClipboardFormats 3 +NtUserGetUpdateRect 3 +NtUserGetUpdateRgn 3 +NtUserGetWindowDC 1 +NtUserGetWindowPlacement 2 +NtUserGetWOWClass 2 +NtUserGhostWindowFromHungWindow 1 +NtUserHardErrorControl 3 +NtUserHideCaret 1 +NtUserHiliteMenuItem 4 +NtUserHungWindowFromGhostWindow 1 +NtUserImpersonateDdeClientWindow 2 +NtUserInitialize 2 +NtUserInitializeClientPfnArrays 4 +NtUserInitTask 12 +NtUserInternalGetWindowText 3 +NtUserInternalGetWindowIcon 2 +NtUserInvalidateRect 3 +NtUserInvalidateRgn 3 +NtUserIsClipboardFormatAvailable 1 +NtUserKillTimer 2 +NtUserLoadKeyboardLayoutEx 7 +NtUserLockWindowStation 1 +NtUserLockWindowUpdate 1 +NtUserLockWorkStation 0 +NtUserLogicalToPhysicalPoint 2 +NtUserMapVirtualKeyEx 4 +NtUserMenuItemFromPoint 4 +NtUserMessageCall 7 +NtUserMinMaximize 3 +NtUserMNDragLeave 0 +NtUserMNDragOver 2 +NtUserModifyUserStartupInfoFlags 2 +NtUserMoveWindow 6 +NtUserNotifyIMEStatus 3 +NtUserNotifyProcessCreate 4 +NtUserNotifyWinEvent 4 +NtUserOpenClipboard 2 +NtUserOpenDesktop 3 +NtUserOpenInputDesktop 3 +NtUserOpenThreadDesktop 5 +NtUserOpenWindowStation 2 +NtUserPaintDesktop 1 +NtUserPaintMonitor 3 +NtUserPeekMessage 5 +NtUserPhysicalToLogicalPoint 2 +NtUserPostMessage 4 +NtUserPostThreadMessage 4 +NtUserPrintWindow 3 +NtUserProcessConnect 2 +NtUserQueryInformationThread 4 +NtUserQueryInputContext 2 +NtUserQuerySendMessage 1 +NtUserQueryWindow 2 +NtUserRealChildWindowFromPoint 3 +NtUserRealInternalGetMessage 6 +NtUserRealWaitMessageEx 2 +NtUserRedrawWindow 4 +NtUserRegisterClassExWOW 7 +NtUserRegisterErrorReportingDialog 2 +NtUserRegisterUserApiHook 4 +NtUserRegisterHotKey 4 +NtUserRegisterRawInputDevices 3 +NtUserRegisterTasklist 1 +NtUserRegisterWindowMessage 1 +NtUserRemoveClipboardFormatListener 1 +NtUserRemoveMenu 3 +NtUserRemoveProp 2 +NtUserResolveDesktop 4 +NtUserResolveDesktopForWOW 1 +NtUserSBGetParms 4 +NtUserScrollDC 7 +NtUserScrollWindowEx 8 +NtUserSelectPalette 3 +NtUserSendInput 3 +NtUserSetActiveWindow 1 +NtUserSetAppImeLevel 2 +NtUserSetCapture 1 +NtUserSetClassLong 4 +NtUserSetClassWord 3 +NtUserSetClipboardData 3 +NtUserSetClipboardViewer 1 +NtUserSetConsoleReserveKeys 2 +NtUserSetCursor 1 +NtUserSetCursorContents 2 +NtUserSetCursorIconData 4 +NtUserSetFocus 1 +NtUserSetImeHotKey 5 +NtUserSetImeInfoEx 1 +NtUserSetImeOwnerWindow 2 +NtUserSetInformationProcess 4 +NtUserSetInformationThread 4 +NtUserSetInternalWindowPos 4 +NtUserSetKeyboardState 1 +NtUserSetMenu 3 +NtUserSetMenuContextHelpId 2 +NtUserSetMenuDefaultItem 3 +NtUserSetMenuFlagRtoL 1 +NtUserSetObjectInformation 4 +NtUserSetParent 2 +NtUserSetProcessWindowStation 1 +NtUserGetProp 2 +NtUserSetProp 3 +NtUserSetScrollInfo 4 +NtUserSetShellWindowEx 2 +NtUserSetSysColors 4 +NtUserSetSystemCursor 2 +NtUserSetSystemMenu 2 +NtUserSetSystemTimer 3 +NtUserSetThreadDesktop 1 +NtUserSetThreadLayoutHandles 2 +NtUserSetThreadState 2 +NtUserSetTimer 4 +NtUserSetProcessDPIAware 0 +NtUserSetWindowFNID 2 +NtUserSetWindowLong 4 +NtUserSetWindowPlacement 2 +NtUserSetWindowPos 7 +NtUserSetWindowRgn 3 +NtUserGetWindowRgnEx 3 +NtUserSetWindowRgnEx 3 +NtUserSetWindowsHookAW 3 +NtUserSetWindowsHookEx 6 +NtUserSetWindowStationUser 4 +NtUserSetWindowWord 3 +NtUserSetWinEventHook 8 +NtUserShowCaret 1 +NtUserShowScrollBar 3 +NtUserShowWindow 2 +NtUserShowWindowAsync 2 +NtUserSoundSentry 0 +NtUserSwitchDesktop 2 +NtUserSystemParametersInfo 4 +NtUserTestForInteractiveUser 1 +NtUserThunkedMenuInfo 2 +NtUserThunkedMenuItemInfo 6 +NtUserToUnicodeEx 7 +NtUserTrackMouseEvent 1 +NtUserTrackPopupMenuEx 6 +NtUserCalcMenuBar 5 +NtUserPaintMenuBar 6 +NtUserTranslateAccelerator 3 +NtUserTranslateMessage 2 +NtUserUnhookWindowsHookEx 1 +NtUserUnhookWinEvent 1 +NtUserUnloadKeyboardLayout 1 +NtUserUnlockWindowStation 1 +NtUserUnregisterClass 3 +NtUserUnregisterUserApiHook 0 +NtUserUnregisterHotKey 2 +NtUserUpdateInputContext 3 +NtUserUpdateInstance 3 +NtUserUpdateLayeredWindow 10 +NtUserGetLayeredWindowAttributes 4 +NtUserSetLayeredWindowAttributes 4 +NtUserUpdatePerUserSystemParameters 1 +NtUserUserHandleGrantAccess 3 +NtUserValidateHandleSecure 1 +NtUserValidateRect 2 +NtUserValidateTimerCallback 1 +NtUserVkKeyScanEx 3 +NtUserWaitForInputIdle 3 +NtUserWaitForMsgAndEvent 1 +NtUserWaitMessage 0 +NtUserWin32PoolAllocationStats 6 +NtUserWindowFromPhysicalPoint 2 +NtUserWindowFromPoint 2 +NtUserYieldTask 0 +NtUserRemoteConnect 3 +NtUserRemoteRedrawRectangle 4 +NtUserRemoteRedrawScreen 0 +NtUserRemoteStopScreenUpdates 0 +NtUserCtxDisplayIOCtl 3 +NtUserRegisterSessionPort 1 +NtUserUnregisterSessionPort 0 +NtUserUpdateWindowTransform 3 +NtUserDwmStartRedirection 1 +NtUserDwmStopRedirection 0 +NtUserDwmHintDxUpdate 2 +NtUserDwmGetDxRgn 3 +NtUserGetWindowMinimizeRect 2 +NtGdiEngAssociateSurface 3 +NtGdiEngCreateBitmap 6 +NtGdiEngCreateDeviceSurface 4 +NtGdiEngCreateDeviceBitmap 4 +NtGdiEngCreatePalette 6 +NtGdiEngComputeGlyphSet 3 +NtGdiEngCopyBits 6 +NtGdiEngDeletePalette 1 +NtGdiEngDeleteSurface 1 +NtGdiEngEraseSurface 3 +NtGdiEngUnlockSurface 1 +NtGdiEngLockSurface 1 +NtGdiEngBitBlt 11 +NtGdiEngStretchBlt 11 +NtGdiEngPlgBlt 11 +NtGdiEngMarkBandingSurface 1 +NtGdiEngStrokePath 8 +NtGdiEngFillPath 7 +NtGdiEngStrokeAndFillPath 10 +NtGdiEngPaint 5 +NtGdiEngLineTo 9 +NtGdiEngAlphaBlend 7 +NtGdiEngGradientFill 10 +NtGdiEngTransparentBlt 8 +NtGdiEngTextOut 10 +NtGdiEngStretchBltROP 13 +NtGdiXLATEOBJ_cGetPalette 4 +NtGdiXLATEOBJ_iXlate 2 +NtGdiXLATEOBJ_hGetColorTransform 1 +NtGdiCLIPOBJ_bEnum 3 +NtGdiCLIPOBJ_cEnumStart 5 +NtGdiCLIPOBJ_ppoGetPath 1 +NtGdiEngDeletePath 1 +NtGdiEngCreateClip 0 +NtGdiEngDeleteClip 1 +NtGdiBRUSHOBJ_ulGetBrushColor 1 +NtGdiBRUSHOBJ_pvAllocRbrush 2 +NtGdiBRUSHOBJ_pvGetRbrush 1 +NtGdiBRUSHOBJ_hGetColorTransform 1 +NtGdiXFORMOBJ_bApplyXform 5 +NtGdiXFORMOBJ_iGetXform 2 +NtGdiFONTOBJ_vGetInfo 3 +NtGdiFONTOBJ_pxoGetXform 1 +NtGdiFONTOBJ_cGetGlyphs 5 +NtGdiFONTOBJ_pifi 1 +NtGdiFONTOBJ_pfdg 1 +NtGdiFONTOBJ_pQueryGlyphAttrs 2 +NtGdiFONTOBJ_pvTrueTypeFontFile 2 +NtGdiFONTOBJ_cGetAllGlyphHandles 2 +NtGdiSTROBJ_bEnum 3 +NtGdiSTROBJ_bEnumPositionsOnly 3 +NtGdiSTROBJ_bGetAdvanceWidths 4 +NtGdiSTROBJ_vEnumStart 1 +NtGdiSTROBJ_dwGetCodePage 1 +NtGdiPATHOBJ_vGetBounds 2 +NtGdiPATHOBJ_bEnum 2 +NtGdiPATHOBJ_vEnumStart 1 +NtGdiPATHOBJ_vEnumStartClipLines 4 +NtGdiPATHOBJ_bEnumClipLines 3 +NtGdiGetDhpdev 1 +NtGdiEngCheckAbort 1 +NtGdiHT_Get8BPPFormatPalette 4 +NtGdiHT_Get8BPPMaskPalette 6 +NtGdiUpdateTransform 1 +NtGdiSetPUMPDOBJ 4 +NtGdiBRUSHOBJ_DeleteRbrush 2 +NtGdiUMPDEngFreeUserMem 1 +NtGdiDrawStream 3 +NtGdiDwmGetDirtyRgn 5 +NtGdiDwmGetSurfaceData 2 +NtGdiDdDDICreateAllocation 1 +NtGdiDdDDIQueryResourceInfo 1 +NtGdiDdDDIOpenResource 1 +NtGdiDdDDIDestroyAllocation 1 +NtGdiDdDDISetAllocationPriority 1 +NtGdiDdDDIQueryAllocationResidency 1 +NtGdiDdDDICreateDevice 1 +NtGdiDdDDIDestroyDevice 1 +NtGdiDdDDICreateContext 1 +NtGdiDdDDIDestroyContext 1 +NtGdiDdDDICreateSynchronizationObject 1 +NtGdiDdDDIDestroySynchronizationObject 1 +NtGdiDdDDIWaitForSynchronizationObject 1 +NtGdiDdDDISignalSynchronizationObject 1 +NtGdiDdDDIGetRuntimeData 1 +NtGdiDdDDIQueryAdapterInfo 1 +NtGdiDdDDILock 1 +NtGdiDdDDIUnlock 1 +NtGdiDdDDIGetDisplayModeList 1 +NtGdiDdDDISetDisplayMode 1 +NtGdiDdDDIGetMultisampleMethodList 1 +NtGdiDdDDIPresent 1 +NtGdiDdDDIRender 1 +NtGdiDdDDIOpenAdapterFromDeviceName 1 +NtGdiDdDDIOpenAdapterFromHdc 1 +NtGdiDdDDICloseAdapter 1 +NtGdiDdDDIGetSharedPrimaryHandle 1 +NtGdiDdDDIEscape 1 +NtGdiDdDDIQueryStatistics 1 +NtGdiDdDDISetVidPnSourceOwner 1 +NtGdiDdDDIGetPresentHistory 1 +NtGdiDdDDICreateOverlay 1 +NtGdiDdDDIUpdateOverlay 1 +NtGdiDdDDIFlipOverlay 1 +NtGdiDdDDIDestroyOverlay 1 +NtGdiDdDDIWaitForVerticalBlankEvent 1 +NtGdiDdDDISetGammaRamp 1 +NtGdiDdDDIGetDeviceState 1 +NtGdiDdDDICreateDCFromMemory 1 +NtGdiDdDDIDestroyDCFromMemory 1 +NtGdiDdDDISetContextSchedulingPriority 1 +NtGdiDdDDIGetContextSchedulingPriority 1 +NtGdiDdDDISetProcessSchedulingPriorityClass 2 +NtGdiDdDDIGetProcessSchedulingPriorityClass 2 +NtGdiDdDDIReleaseProcessVidPnSourceOwners 1 +NtGdiDdDDIGetScanLine 1 +NtGdiDdDDISetQueuedLimit 1 +NtGdiDdDDIPollDisplayChildren 1 +NtGdiDdDDIInvalidateActiveVidPn 1 +NtGdiDdDDICheckOcclusion 1 +NtGdiDdDDIWaitForIdle 1 +NtGdiDdDDICheckMonitorPowerState 1 +NtGdiDdDDICheckExclusiveOwnership 0 +NtGdiDdDDISetDisplayPrivateDriverFormat 1 +NtGdiDdDDISharedPrimaryLockNotification 1 +NtGdiDdDDISharedPrimaryUnLockNotification 1 +NtGdiMakeObjectXferable 2 +NtGdiMakeObjectUnXferable 1 +NtGdiGetNumberOfPhysicalMonitors 2 +NtGdiGetPhysicalMonitors 4 +NtGdiGetPhysicalMonitorDescription 3 +NtGdiDestroyPhysicalMonitor 1 +NtGdiDDCCIGetVCPFeature 5 +NtGdiDDCCISetVCPFeature 3 +NtGdiDDCCISaveCurrentSettings 1 +NtGdiDDCCIGetCapabilitiesStringLength 2 +NtGdiDDCCIGetCapabilitiesString 3 +NtGdiDDCCIGetTimingReport 2 +NtUserSetMirrorRendering 2 +NtUserShowSystemCursor 1 Propchange: trunk/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-x86.db ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/w32k_xpsp2-x86.db URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32kdll/w32kdll_…
============================================================================== --- trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/w32k_xpsp2-x86.db (added) +++ trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/w32k_xpsp2-x86.db [iso-8859-1] Wed Dec 9 02:50:38 2009 @@ -1,0 +1,670 @@ +# +# win32k systemcalls taken from Windows XP SP2 x86 +# +NtGdiAbortDoc 1 +NtGdiAbortPath 1 +NtGdiAddFontResourceW 6 +NtGdiAddRemoteFontToDC 4 +NtGdiAddFontMemResourceEx 5 +NtGdiRemoveMergeFont 2 +NtGdiAddRemoteMMInstanceToDC 3 +NtGdiAlphaBlend 12 +NtGdiAngleArc 6 +NtGdiAnyLinkedFonts 0 +NtGdiFontIsLinked 1 +NtGdiArcInternal 10 +NtGdiBeginPath 1 +NtGdiBitBlt 11 +NtGdiCancelDC 1 +NtGdiCheckBitmapBits 8 +NtGdiCloseFigure 1 +NtGdiClearBitmapAttributes 2 +NtGdiClearBrushAttributes 2 +NtGdiColorCorrectPalette 6 +NtGdiCombineRgn 4 +NtGdiCombineTransform 3 +NtGdiComputeXformCoefficients 1 +NtGdiConsoleTextOut 4 +NtGdiConvertMetafileRect 2 +NtGdiCreateBitmap 5 +NtGdiCreateClientObj 1 +NtGdiCreateColorSpace 1 +NtGdiCreateColorTransform 8 +NtGdiCreateCompatibleBitmap 3 +NtGdiCreateCompatibleDC 1 +NtGdiCreateDIBBrush 6 +NtGdiCreateDIBitmapInternal 11 +NtGdiCreateDIBSection 9 +NtGdiCreateEllipticRgn 4 +NtGdiCreateHalftonePalette 1 +NtGdiCreateHatchBrushInternal 3 +NtGdiCreateMetafileDC 1 +NtGdiCreatePaletteInternal 2 +NtGdiCreatePatternBrushInternal 3 +NtGdiCreatePen 4 +NtGdiCreateRectRgn 4 +NtGdiCreateRoundRectRgn 6 +NtGdiCreateServerMetaFile 6 +NtGdiCreateSolidBrush 2 +NtGdiD3dContextCreate 4 +NtGdiD3dContextDestroy 1 +NtGdiD3dContextDestroyAll 1 +NtGdiD3dValidateTextureStageState 1 +NtGdiD3dDrawPrimitives2 7 +NtGdiDdGetDriverState 1 +NtGdiDdAddAttachedSurface 3 +NtGdiDdAlphaBlt 3 +NtGdiDdAttachSurface 2 +NtGdiDdBeginMoCompFrame 2 +NtGdiDdBlt 3 +NtGdiDdCanCreateSurface 2 +NtGdiDdCanCreateD3DBuffer 2 +NtGdiDdColorControl 2 +NtGdiDdCreateDirectDrawObject 1 +NtGdiDdCreateSurface 8 +NtGdiDdCreateD3DBuffer 8 +NtGdiDdCreateMoComp 2 +NtGdiDdCreateSurfaceObject 6 +NtGdiDdDeleteDirectDrawObject 1 +NtGdiDdDeleteSurfaceObject 1 +NtGdiDdDestroyMoComp 2 +NtGdiDdDestroySurface 2 +NtGdiDdDestroyD3DBuffer 1 +NtGdiDdEndMoCompFrame 2 +NtGdiDdFlip 5 +NtGdiDdFlipToGDISurface 2 +NtGdiDdGetAvailDriverMemory 2 +NtGdiDdGetBltStatus 2 +NtGdiDdGetDC 2 +NtGdiDdGetDriverInfo 2 +NtGdiDdGetDxHandle 3 +NtGdiDdGetFlipStatus 2 +NtGdiDdGetInternalMoCompInfo 2 +NtGdiDdGetMoCompBuffInfo 2 +NtGdiDdGetMoCompGuids 2 +NtGdiDdGetMoCompFormats 2 +NtGdiDdGetScanLine 2 +NtGdiDdLock 3 +NtGdiDdLockD3D 2 +NtGdiDdQueryDirectDrawObject 11 +NtGdiDdQueryMoCompStatus 2 +NtGdiDdReenableDirectDrawObject 2 +NtGdiDdReleaseDC 1 +NtGdiDdRenderMoComp 2 +NtGdiDdResetVisrgn 2 +NtGdiDdSetColorKey 2 +NtGdiDdSetExclusiveMode 2 +NtGdiDdSetGammaRamp 3 +NtGdiDdCreateSurfaceEx 3 +NtGdiDdSetOverlayPosition 3 +NtGdiDdUnattachSurface 2 +NtGdiDdUnlock 2 +NtGdiDdUnlockD3D 2 +NtGdiDdUpdateOverlay 3 +NtGdiDdWaitForVerticalBlank 2 +NtGdiDvpCanCreateVideoPort 2 +NtGdiDvpColorControl 2 +NtGdiDvpCreateVideoPort 2 +NtGdiDvpDestroyVideoPort 2 +NtGdiDvpFlipVideoPort 4 +NtGdiDvpGetVideoPortBandwidth 2 +NtGdiDvpGetVideoPortField 2 +NtGdiDvpGetVideoPortFlipStatus 2 +NtGdiDvpGetVideoPortInputFormats 2 +NtGdiDvpGetVideoPortLine 2 +NtGdiDvpGetVideoPortOutputFormats 2 +NtGdiDvpGetVideoPortConnectInfo 2 +NtGdiDvpGetVideoSignalStatus 2 +NtGdiDvpUpdateVideoPort 4 +NtGdiDvpWaitForVideoPortSync 2 +NtGdiDvpAcquireNotification 3 +NtGdiDvpReleaseNotification 2 +NtGdiDxgGenericThunk 6 +NtGdiDeleteClientObj 1 +NtGdiDeleteColorSpace 1 +NtGdiDeleteColorTransform 2 +NtGdiDeleteObjectApp 1 +NtGdiDescribePixelFormat 4 +NtGdiGetPerBandInfo 2 +NtGdiDoBanding 4 +NtGdiDoPalette 6 +NtGdiDrawEscape 4 +NtGdiEllipse 5 +NtGdiEnableEUDC 1 +NtGdiEndDoc 1 +NtGdiEndPage 1 +NtGdiEndPath 1 +NtGdiEnumFontChunk 5 +NtGdiEnumFontClose 1 +NtGdiEnumFontOpen 7 +NtGdiEnumObjects 4 +NtGdiEqualRgn 2 +NtGdiEudcLoadUnloadLink 7 +NtGdiExcludeClipRect 5 +NtGdiExtCreatePen 11 +NtGdiExtCreateRegion 3 +NtGdiExtEscape 8 +NtGdiExtFloodFill 5 +NtGdiExtGetObjectW 3 +NtGdiExtSelectClipRgn 3 +NtGdiExtTextOutW 9 +NtGdiFillPath 1 +NtGdiFillRgn 3 +NtGdiFlattenPath 1 +NtGdiFlushUserBatch 0 +NtGdiFlush 0 +NtGdiForceUFIMapping 2 +NtGdiFrameRgn 5 +NtGdiFullscreenControl 5 +NtGdiGetAndSetDCDword 4 +NtGdiGetAppClipBox 2 +NtGdiGetBitmapBits 3 +NtGdiGetBitmapDimension 2 +NtGdiGetBoundsRect 3 +NtGdiGetCharABCWidthsW 6 +NtGdiGetCharacterPlacementW 6 +NtGdiGetCharSet 1 +NtGdiGetCharWidthW 6 +NtGdiGetCharWidthInfo 2 +NtGdiGetColorAdjustment 2 +NtGdiGetColorSpaceforBitmap 1 +NtGdiGetDCDword 3 +NtGdiGetDCforBitmap 1 +NtGdiGetDCObject 2 +NtGdiGetDCPoint 3 +NtGdiGetDeviceCaps 2 +NtGdiGetDeviceGammaRamp 2 +NtGdiGetDeviceCapsAll 2 +NtGdiGetDIBitsInternal 9 +NtGdiGetETM 2 +NtGdiGetEudcTimeStampEx 3 +NtGdiGetFontData 5 +NtGdiGetFontResourceInfoInternalW 7 +NtGdiGetGlyphIndicesW 5 +NtGdiGetGlyphIndicesWInternal 6 +NtGdiGetGlyphOutline 8 +NtGdiGetKerningPairs 3 +NtGdiGetLinkedUFIs 3 +NtGdiGetMiterLimit 2 +NtGdiGetMonitorID 3 +NtGdiGetNearestColor 2 +NtGdiGetNearestPaletteIndex 2 +NtGdiGetObjectBitmapHandle 2 +NtGdiGetOutlineTextMetricsInternalW 4 +NtGdiGetPath 4 +NtGdiGetPixel 3 +NtGdiGetRandomRgn 3 +NtGdiGetRasterizerCaps 2 +NtGdiGetRealizationInfo 3 +NtGdiGetRegionData 3 +NtGdiGetRgnBox 2 +NtGdiGetServerMetaFileBits 7 +NtGdiGetSpoolMessage 4 +NtGdiGetStats 5 +NtGdiGetStockObject 1 +NtGdiGetStringBitmapW 5 +NtGdiGetSystemPaletteUse 1 +NtGdiGetTextCharsetInfo 3 +NtGdiGetTextExtent 5 +NtGdiGetTextExtentExW 8 +NtGdiGetTextFaceW 4 +NtGdiGetTextMetricsW 3 +NtGdiGetTransform 3 +NtGdiGetUFI 6 +NtGdiGetEmbUFI 7 +NtGdiGetUFIPathname 10 +NtGdiGetEmbedFonts 0 +NtGdiChangeGhostFont 2 +NtGdiAddEmbFontToDC 2 +NtGdiGetFontUnicodeRanges 2 +NtGdiGetWidthTable 7 +NtGdiGradientFill 6 +NtGdiHfontCreate 5 +NtGdiIcmBrushInfo 8 +NtGdiInit 0 +NtGdiInitSpool 0 +NtGdiIntersectClipRect 5 +NtGdiInvertRgn 2 +NtGdiLineTo 3 +NtGdiMakeFontDir 5 +NtGdiMakeInfoDC 2 +NtGdiMaskBlt 13 +NtGdiModifyWorldTransform 3 +NtGdiMonoBitmap 1 +NtGdiMoveTo 4 +NtGdiOffsetClipRgn 3 +NtGdiOffsetRgn 3 +NtGdiOpenDCW 7 +NtGdiPatBlt 6 +NtGdiPolyPatBlt 5 +NtGdiPathToRegion 1 +NtGdiPlgBlt 11 +NtGdiPolyDraw 4 +NtGdiPolyPolyDraw 5 +NtGdiPolyTextOutW 4 +NtGdiPtInRegion 3 +NtGdiPtVisible 3 +NtGdiQueryFonts 3 +NtGdiQueryFontAssocInfo 1 +NtGdiRectangle 5 +NtGdiRectInRegion 2 +NtGdiRectVisible 2 +NtGdiRemoveFontResourceW 6 +NtGdiRemoveFontMemResourceEx 1 +NtGdiResetDC 5 +NtGdiResizePalette 2 +NtGdiRestoreDC 2 +NtGdiRoundRect 7 +NtGdiSaveDC 1 +NtGdiScaleViewportExtEx 6 +NtGdiScaleWindowExtEx 6 +NtGdiSelectBitmap 2 +NtGdiSelectBrush 2 +NtGdiSelectClipPath 2 +NtGdiSelectFont 2 +NtGdiSelectPen 2 +NtGdiSetBitmapAttributes 2 +NtGdiSetBitmapBits 3 +NtGdiSetBitmapDimension 4 +NtGdiSetBoundsRect 3 +NtGdiSetBrushAttributes 2 +NtGdiSetBrushOrg 4 +NtGdiSetColorAdjustment 2 +NtGdiSetColorSpace 2 +NtGdiSetDeviceGammaRamp 2 +NtGdiSetDIBitsToDeviceInternal 16 +NtGdiSetFontEnumeration 1 +NtGdiSetFontXform 3 +NtGdiSetIcmMode 3 +NtGdiSetLinkedUFIs 3 +NtGdiSetMagicColors 3 +NtGdiSetMetaRgn 1 +NtGdiSetMiterLimit 3 +NtGdiGetDeviceWidth 1 +NtGdiMirrorWindowOrg 1 +NtGdiSetLayout 3 +NtGdiSetPixel 4 +NtGdiSetPixelFormat 2 +NtGdiSetRectRgn 5 +NtGdiSetSystemPaletteUse 2 +NtGdiSetTextJustification 3 +NtGdiSetupPublicCFONT 3 +NtGdiSetVirtualResolution 5 +NtGdiSetSizeDevice 3 +NtGdiStartDoc 4 +NtGdiStartPage 1 +NtGdiStretchBlt 12 +NtGdiStretchDIBitsInternal 16 +NtGdiStrokeAndFillPath 1 +NtGdiStrokePath 1 +NtGdiSwapBuffers 1 +NtGdiTransformPoints 5 +NtGdiTransparentBlt 11 +NtGdiUnloadPrinterDriver 2 +NtGdiUnmapMemFont 1 +NtGdiUnrealizeObject 1 +NtGdiUpdateColors 1 +NtGdiWidenPath 1 +NtUserActivateKeyboardLayout 2 +NtUserAlterWindowStyle 3 +NtUserAssociateInputContext 3 +NtUserAttachThreadInput 3 +NtUserBeginPaint 2 +NtUserBitBltSysBmp 8 +NtUserBlockInput 1 +NtUserBuildHimcList 4 +NtUserBuildHwndList 7 +NtUserBuildNameList 4 +NtUserBuildPropList 4 +NtUserCallHwnd 2 +NtUserCallHwndLock 2 +NtUserCallHwndOpt 2 +NtUserCallHwndParam 3 +NtUserCallHwndParamLock 3 +NtUserCallMsgFilter 2 +NtUserCallNextHookEx 4 +NtUserCallNoParam 1 +NtUserCallOneParam 2 +NtUserCallTwoParam 3 +NtUserChangeClipboardChain 2 +NtUserChangeDisplaySettings 5 +NtUserCheckImeHotKey 2 +NtUserCheckMenuItem 3 +NtUserChildWindowFromPointEx 4 +NtUserClipCursor 1 +NtUserCloseClipboard 0 +NtUserCloseDesktop 1 +NtUserCloseWindowStation 1 +NtUserConsoleControl 3 +NtUserConvertMemHandle 2 +NtUserCopyAcceleratorTable 3 +NtUserCountClipboardFormats 0 +NtUserCreateAcceleratorTable 2 +NtUserCreateCaret 4 +NtUserCreateDesktop 5 +NtUserCreateInputContext 1 +NtUserCreateLocalMemHandle 4 +NtUserCreateWindowEx 15 +NtUserCreateWindowStation 7 +NtUserDdeGetQualityOfService 3 +NtUserDdeInitialize 5 +NtUserDdeSetQualityOfService 3 +NtUserDeferWindowPos 8 +NtUserDefSetText 2 +NtUserDeleteMenu 3 +NtUserDestroyAcceleratorTable 1 +NtUserDestroyCursor 2 +NtUserDestroyInputContext 1 +NtUserDestroyMenu 1 +NtUserDestroyWindow 1 +NtUserDisableThreadIme 1 +NtUserDispatchMessage 1 +NtUserDragDetect 3 +NtUserDragObject 5 +NtUserDrawAnimatedRects 4 +NtUserDrawCaption 4 +NtUserDrawCaptionTemp 7 +NtUserDrawIconEx 11 +NtUserDrawMenuBarTemp 5 +NtUserEmptyClipboard 0 +NtUserEnableMenuItem 3 +NtUserEnableScrollBar 3 +NtUserEndDeferWindowPosEx 2 +NtUserEndMenu 0 +NtUserEndPaint 2 +NtUserEnumDisplayDevices 4 +NtUserEnumDisplayMonitors 4 +NtUserEnumDisplaySettings 4 +NtUserEvent 1 +NtUserExcludeUpdateRgn 2 +NtUserFillWindow 4 +NtUserFindExistingCursorIcon 3 +NtUserFindWindowEx 5 +NtUserFlashWindowEx 1 +NtUserGetAltTabInfo 6 +NtUserGetAncestor 2 +NtUserGetAppImeLevel 1 +NtUserGetAsyncKeyState 1 +NtUserGetAtomName 2 +NtUserGetCaretBlinkTime 0 +NtUserGetCaretPos 1 +NtUserGetClassInfo 5 +NtUserGetClassName 3 +NtUserGetClipboardData 2 +NtUserGetClipboardFormatName 3 +NtUserGetClipboardOwner 0 +NtUserGetClipboardSequenceNumber 0 +NtUserGetClipboardViewer 0 +NtUserGetClipCursor 1 +NtUserGetComboBoxInfo 2 +NtUserGetControlBrush 3 +NtUserGetControlColor 4 +NtUserGetCPD 3 +NtUserGetCursorFrameInfo 4 +NtUserGetCursorInfo 1 +NtUserGetDC 1 +NtUserGetDCEx 3 +NtUserGetDoubleClickTime 0 +NtUserGetForegroundWindow 0 +NtUserGetGuiResources 2 +NtUserGetGUIThreadInfo 2 +NtUserGetIconInfo 6 +NtUserGetIconSize 4 +NtUserGetImeHotKey 4 +NtUserGetImeInfoEx 2 +NtUserGetInternalWindowPos 3 +NtUserGetKeyboardLayoutList 2 +NtUserGetKeyboardLayoutName 1 +NtUserGetKeyboardState 1 +NtUserGetKeyNameText 3 +NtUserGetKeyState 1 +NtUserGetListBoxInfo 1 +NtUserGetMenuBarInfo 4 +NtUserGetMenuIndex 2 +NtUserGetMenuItemRect 4 +NtUserGetMessage 4 +NtUserGetMouseMovePointsEx 5 +NtUserGetObjectInformation 5 +NtUserGetOpenClipboardWindow 0 +NtUserGetPriorityClipboardFormat 2 +NtUserGetProcessWindowStation 0 +NtUserGetRawInputBuffer 3 +NtUserGetRawInputData 5 +NtUserGetRawInputDeviceInfo 4 +NtUserGetRawInputDeviceList 3 +NtUserGetRegisteredRawInputDevices 3 +NtUserGetScrollBarInfo 3 +NtUserGetSystemMenu 2 +NtUserGetThreadDesktop 2 +NtUserGetThreadState 1 +NtUserGetTitleBarInfo 2 +NtUserGetUpdateRect 3 +NtUserGetUpdateRgn 3 +NtUserGetWindowDC 1 +NtUserGetWindowPlacement 2 +NtUserGetWOWClass 2 +NtUserHardErrorControl 3 +NtUserHideCaret 1 +NtUserHiliteMenuItem 4 +NtUserImpersonateDdeClientWindow 2 +NtUserInitialize 3 +NtUserInitializeClientPfnArrays 4 +NtUserInitTask 12 +NtUserInternalGetWindowText 3 +NtUserInvalidateRect 3 +NtUserInvalidateRgn 3 +NtUserIsClipboardFormatAvailable 1 +NtUserKillTimer 2 +NtUserLoadKeyboardLayoutEx 7 +NtUserLockWindowStation 1 +NtUserLockWindowUpdate 1 +NtUserLockWorkStation 0 +NtUserMapVirtualKeyEx 4 +NtUserMenuItemFromPoint 4 +NtUserMessageCall 7 +NtUserMinMaximize 3 +NtUserMNDragLeave 0 +NtUserMNDragOver 2 +NtUserModifyUserStartupInfoFlags 2 +NtUserMoveWindow 6 +NtUserNotifyIMEStatus 3 +NtUserNotifyProcessCreate 4 +NtUserNotifyWinEvent 4 +NtUserOpenClipboard 2 +NtUserOpenDesktop 3 +NtUserOpenInputDesktop 3 +NtUserOpenWindowStation 2 +NtUserPaintDesktop 1 +NtUserPeekMessage 5 +NtUserPostMessage 4 +NtUserPostThreadMessage 4 +NtUserPrintWindow 3 +NtUserProcessConnect 3 +NtUserQueryInformationThread 5 +NtUserQueryInputContext 2 +NtUserQuerySendMessage 1 +NtUserQueryUserCounters 5 +NtUserQueryWindow 2 +NtUserRealChildWindowFromPoint 3 +NtUserRealInternalGetMessage 6 +NtUserRealWaitMessageEx 2 +NtUserRedrawWindow 4 +NtUserRegisterClassExWOW 7 +NtUserRegisterUserApiHook 2 +NtUserRegisterHotKey 4 +NtUserRegisterRawInputDevices 3 +NtUserRegisterTasklist 1 +NtUserRegisterWindowMessage 1 +NtUserRemoveMenu 3 +NtUserRemoveProp 2 +NtUserResolveDesktop 4 +NtUserResolveDesktopForWOW 1 +NtUserSBGetParms 4 +NtUserScrollDC 7 +NtUserScrollWindowEx 8 +NtUserSelectPalette 3 +NtUserSendInput 3 +NtUserSetActiveWindow 1 +NtUserSetAppImeLevel 2 +NtUserSetCapture 1 +NtUserSetClassLong 4 +NtUserSetClassWord 3 +NtUserSetClipboardData 3 +NtUserSetClipboardViewer 1 +NtUserSetConsoleReserveKeys 2 +NtUserSetCursor 1 +NtUserSetCursorContents 2 +NtUserSetCursorIconData 4 +NtUserSetDbgTag 2 +NtUserSetFocus 1 +NtUserSetImeHotKey 5 +NtUserSetImeInfoEx 1 +NtUserSetImeOwnerWindow 2 +NtUserSetInformationProcess 4 +NtUserSetInformationThread 4 +NtUserSetInternalWindowPos 4 +NtUserSetKeyboardState 1 +NtUserSetLogonNotifyWindow 1 +NtUserSetMenu 3 +NtUserSetMenuContextHelpId 2 +NtUserSetMenuDefaultItem 3 +NtUserSetMenuFlagRtoL 1 +NtUserSetObjectInformation 4 +NtUserSetParent 2 +NtUserSetProcessWindowStation 1 +NtUserSetProp 3 +NtUserSetRipFlags 2 +NtUserSetScrollInfo 4 +NtUserSetShellWindowEx 2 +NtUserSetSysColors 4 +NtUserSetSystemCursor 2 +NtUserSetSystemMenu 2 +NtUserSetSystemTimer 4 +NtUserSetThreadDesktop 1 +NtUserSetThreadLayoutHandles 2 +NtUserSetThreadState 2 +NtUserSetTimer 4 +NtUserSetWindowFNID 2 +NtUserSetWindowLong 4 +NtUserSetWindowPlacement 2 +NtUserSetWindowPos 7 +NtUserSetWindowRgn 3 +NtUserSetWindowsHookAW 3 +NtUserSetWindowsHookEx 6 +NtUserSetWindowStationUser 4 +NtUserSetWindowWord 3 +NtUserSetWinEventHook 8 +NtUserShowCaret 1 +NtUserShowScrollBar 3 +NtUserShowWindow 2 +NtUserShowWindowAsync 2 +NtUserSoundSentry 0 +NtUserSwitchDesktop 1 +NtUserSystemParametersInfo 4 +NtUserTestForInteractiveUser 1 +NtUserThunkedMenuInfo 2 +NtUserThunkedMenuItemInfo 6 +NtUserToUnicodeEx 7 +NtUserTrackMouseEvent 1 +NtUserTrackPopupMenuEx 6 +NtUserCalcMenuBar 5 +NtUserPaintMenuBar 6 +NtUserTranslateAccelerator 3 +NtUserTranslateMessage 2 +NtUserUnhookWindowsHookEx 1 +NtUserUnhookWinEvent 1 +NtUserUnloadKeyboardLayout 1 +NtUserUnlockWindowStation 1 +NtUserUnregisterClass 3 +NtUserUnregisterUserApiHook 0 +NtUserUnregisterHotKey 2 +NtUserUpdateInputContext 3 +NtUserUpdateInstance 3 +NtUserUpdateLayeredWindow 9 +NtUserGetLayeredWindowAttributes 4 +NtUserSetLayeredWindowAttributes 4 +NtUserUpdatePerUserSystemParameters 2 +NtUserUserHandleGrantAccess 3 +NtUserValidateHandleSecure 1 +NtUserValidateRect 2 +NtUserValidateTimerCallback 3 +NtUserVkKeyScanEx 3 +NtUserWaitForInputIdle 3 +NtUserWaitForMsgAndEvent 1 +NtUserWaitMessage 0 +NtUserWin32PoolAllocationStats 6 +NtUserWindowFromPoint 2 +NtUserYieldTask 0 +NtUserRemoteConnect 3 +NtUserRemoteRedrawRectangle 4 +NtUserRemoteRedrawScreen 0 +NtUserRemoteStopScreenUpdates 0 +NtUserCtxDisplayIOCtl 3 +NtGdiEngAssociateSurface 3 +NtGdiEngCreateBitmap 6 +NtGdiEngCreateDeviceSurface 4 +NtGdiEngCreateDeviceBitmap 4 +NtGdiEngCreatePalette 6 +NtGdiEngComputeGlyphSet 3 +NtGdiEngCopyBits 6 +NtGdiEngDeletePalette 1 +NtGdiEngDeleteSurface 1 +NtGdiEngEraseSurface 3 +NtGdiEngUnlockSurface 1 +NtGdiEngLockSurface 1 +NtGdiEngBitBlt 11 +NtGdiEngStretchBlt 11 +NtGdiEngPlgBlt 11 +NtGdiEngMarkBandingSurface 1 +NtGdiEngStrokePath 8 +NtGdiEngFillPath 7 +NtGdiEngStrokeAndFillPath 10 +NtGdiEngPaint 5 +NtGdiEngLineTo 9 +NtGdiEngAlphaBlend 7 +NtGdiEngGradientFill 10 +NtGdiEngTransparentBlt 8 +NtGdiEngTextOut 10 +NtGdiEngStretchBltROP 13 +NtGdiXLATEOBJ_cGetPalette 4 +NtGdiXLATEOBJ_iXlate 2 +NtGdiXLATEOBJ_hGetColorTransform 1 +NtGdiCLIPOBJ_bEnum 3 +NtGdiCLIPOBJ_cEnumStart 5 +NtGdiCLIPOBJ_ppoGetPath 1 +NtGdiEngDeletePath 1 +NtGdiEngCreateClip 0 +NtGdiEngDeleteClip 1 +NtGdiBRUSHOBJ_ulGetBrushColor 1 +NtGdiBRUSHOBJ_pvAllocRbrush 2 +NtGdiBRUSHOBJ_pvGetRbrush 1 +NtGdiBRUSHOBJ_hGetColorTransform 1 +NtGdiXFORMOBJ_bApplyXform 5 +NtGdiXFORMOBJ_iGetXform 2 +NtGdiFONTOBJ_vGetInfo 3 +NtGdiFONTOBJ_pxoGetXform 1 +NtGdiFONTOBJ_cGetGlyphs 5 +NtGdiFONTOBJ_pifi 1 +NtGdiFONTOBJ_pfdg 1 +NtGdiFONTOBJ_pQueryGlyphAttrs 2 +NtGdiFONTOBJ_pvTrueTypeFontFile 2 +NtGdiFONTOBJ_cGetAllGlyphHandles 2 +NtGdiSTROBJ_bEnum 3 +NtGdiSTROBJ_bEnumPositionsOnly 3 +NtGdiSTROBJ_bGetAdvanceWidths 4 +NtGdiSTROBJ_vEnumStart 1 +NtGdiSTROBJ_dwGetCodePage 1 +NtGdiPATHOBJ_vGetBounds 2 +NtGdiPATHOBJ_bEnum 2 +NtGdiPATHOBJ_vEnumStart 1 +NtGdiPATHOBJ_vEnumStartClipLines 4 +NtGdiPATHOBJ_bEnumClipLines 3 +NtGdiGetDhpdev 1 +NtGdiEngCheckAbort 1 +NtGdiHT_Get8BPPFormatPalette 4 +NtGdiHT_Get8BPPMaskPalette 6 +NtGdiUpdateTransform 1 +NtGdiSetPUMPDOBJ 4 +NtGdiBRUSHOBJ_DeleteRbrush 2 +NtGdiUMPDEngFreeUserMem 1 +NtGdiDrawStream 3 Propchange: trunk/rostests/apitests/w32kdll/w32kdll_xpsp2/w32k_xpsp2-x86.db ------------------------------------------------------------------------------ svn:eol-style = native
15 years, 4 months
1
0
0
0
[sserapion] 44477: commit stragglers from main tree
by sserapion@svn.reactos.org
Author: sserapion Date: Wed Dec 9 02:20:38 2009 New Revision: 44477 URL:
http://svn.reactos.org/svn/reactos?rev=44477&view=rev
Log: commit stragglers from main tree Modified: branches/ros-amd64-bringup/reactos/dll/directx/wine/wined3d/wined3d_private.h branches/ros-amd64-bringup/reactos/include/reactos/libs/pseh/pseh2_64.h branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/mingw.rbuild Modified: branches/ros-amd64-bringup/reactos/dll/directx/wine/wined3d/wined3d_private.h URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/dll/d…
============================================================================== --- branches/ros-amd64-bringup/reactos/dll/directx/wine/wined3d/wined3d_private.h [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/dll/directx/wine/wined3d/wined3d_private.h [iso-8859-1] Wed Dec 9 02:20:38 2009 @@ -2551,7 +2551,7 @@ void set_tex_op_nvrc(IWineD3DDevice *iface, BOOL is_alpha, int stage, WINED3DTEXTUREOP op, DWORD arg1, DWORD arg2, DWORD arg3, INT texture_idx, DWORD dst) DECLSPEC_HIDDEN; void set_texture_matrix(const float *smat, DWORD flags, BOOL calculatedCoords, - BOOL transformed, DWORD coordtype, BOOL ffp_can_disable_proj) DECLSPEC_HIDDEN; + BOOL transformed, WINED3DFORMAT coordtype, BOOL ffp_can_disable_proj) DECLSPEC_HIDDEN; void texture_activate_dimensions(DWORD stage, IWineD3DStateBlockImpl *stateblock, struct wined3d_context *context) DECLSPEC_HIDDEN; void sampler_texdim(DWORD state, IWineD3DStateBlockImpl *stateblock, Modified: branches/ros-amd64-bringup/reactos/include/reactos/libs/pseh/pseh2_64.h URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/inclu…
============================================================================== --- branches/ros-amd64-bringup/reactos/include/reactos/libs/pseh/pseh2_64.h [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/include/reactos/libs/pseh/pseh2_64.h [iso-8859-1] Wed Dec 9 02:20:38 2009 @@ -2,14 +2,34 @@ #define KJK_PSEH2_H_ -#define _SEH2_TRY if(1) -#define _SEH2_EXCEPT(x) else -#define _SEH2_END +#define _SEH2_TRY if(1) { +#define _SEH2_EXCEPT(...) } if(0) { +#define _SEH2_END } +#define _SEH2_YIELD(STMT_) STMT_ +#define _SEH2_LEAVE +#define _SEH2_FINALLY } if(1) { +#define _SEH2_GetExceptionInformation() (GetExceptionInformation()) #define _SEH2_GetExceptionCode() (0) -#define _SEH2_YIELD(x) x -#define _SEH2_LEAVE -#define _SEH2_FINALLY +#define _SEH2_AbnormalTermination() (0) +struct _EXCEPTION_RECORD; +struct _EXCEPTION_POINTERS; +struct _CONTEXT; + +typedef int (__cdecl * _SEH2FrameHandler_t) +( + struct _EXCEPTION_RECORD *, + void *, + struct _CONTEXT *, + void * +); + +typedef struct __SEH2Registration +{ + struct __SEH2Registration * SER_Prev; + _SEH2FrameHandler_t SER_Handler; +} +_SEH2Registration_t; #endif Modified: branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/mingw.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/3…
============================================================================== --- branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/mingw.rbuild [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/mingw.rbuild [iso-8859-1] Wed Dec 9 02:20:38 2009 @@ -18,7 +18,7 @@ <file>dllentry.c</file> <file>dummy_mingwthrd.c</file> <file>gccmain.c</file> - <!-- file>getopt.c</file --> + <file>getopt.c</file> <file>gs_support.c</file> <file>merr.c</file> <!-- file>mingw_custom.c</file -->
15 years, 4 months
1
0
0
0
[sserapion] 44476: Fix building all rosapps modules
by sserapion@svn.reactos.org
Author: sserapion Date: Wed Dec 9 02:15:20 2009 New Revision: 44476 URL:
http://svn.reactos.org/svn/reactos?rev=44476&view=rev
Log: Fix building all rosapps modules Modified: branches/ros-amd64-bringup/rosapps/applications/devutils/syscalldump/syscalldump.c branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/editglyphdlg.c branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontboxeswnd.c branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontwnd.c branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/mainwnd.c branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/common/list.cpp branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/include/list.h branches/ros-amd64-bringup/rosapps/applications/net/tditest/tditest/tditest.c branches/ros-amd64-bringup/rosapps/applications/screensavers/starfield/screensaver.c branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.c branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.rbuild branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.c branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.rbuild branches/ros-amd64-bringup/rosapps/applications/sysutils/utils/stats/stats.c Modified: branches/ros-amd64-bringup/rosapps/applications/devutils/syscalldump/syscalldump.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/devutils/syscalldump/syscalldump.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/devutils/syscalldump/syscalldump.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -54,7 +54,7 @@ ULONG SymbolSize, PVOID UserContext) { - if ((UINT)UserContext == -1) + if ((UINT_PTR)UserContext == -1) { printf("%s ", pSymInfo->Name); } @@ -62,11 +62,11 @@ { if (!bX64) { - printf("%s@%d ", pSymInfo->Name, (UINT)UserContext); + printf("%s@%p ", pSymInfo->Name, UserContext); } else { - printf("%s <+ %d> ", pSymInfo->Name, (UINT)UserContext); + printf("%s <+ %p> ", pSymInfo->Name, UserContext); } } return TRUE; @@ -153,9 +153,9 @@ pW32pServiceTable = ImageSymToVa(hProcess, &Sym.Symbol, pModule, "W32pServiceTable"); pW32pServiceLimit = ImageSymToVa(hProcess, &Sym.Symbol, pModule, "W32pServiceLimit"); pW32pArgumentTable = ImageSymToVa(hProcess, &Sym.Symbol, pModule, "W32pArgumentTable"); -// printf("pW32pServiceTable = %p\n", pW32pServiceTable); -// printf("pW32pServiceLimit = %p\n", pW32pServiceLimit); -// printf("pW32pArgumentTable = %p\n", pW32pArgumentTable); + printf("pW32pServiceTable = %p\n", pW32pServiceTable); + printf("pW32pServiceLimit = %p\n", pW32pServiceLimit); + printf("pW32pArgumentTable = %p\n", pW32pArgumentTable); if (!pW32pServiceTable || !pW32pServiceLimit || !pW32pArgumentTable) { @@ -172,7 +172,7 @@ for (i = 0; i < dwServiceLimit; i++) { printf("0x%x:", i+0x1000); - SymEnumSymbolsForAddr(hProcess, (DWORD64)pdwEntries32[i], EnumSymbolsProc, (PVOID)(DWORD)pW32pArgumentTable[i]); + SymEnumSymbolsForAddr(hProcess, (DWORD64)pdwEntries32[i], EnumSymbolsProc, (PVOID)(DWORD_PTR)pW32pArgumentTable[i]); printf("\n"); } } @@ -183,7 +183,7 @@ for (i = 0; i < dwServiceLimit; i++) { printf("0x%x:", i+0x1000); - SymEnumSymbolsForAddr(hProcess, (DWORD64)pdwEntries64[i], EnumSymbolsProc, (PVOID)(DWORD)pW32pArgumentTable[i]); + SymEnumSymbolsForAddr(hProcess, (DWORD64)pdwEntries64[i], EnumSymbolsProc, (PVOID)(DWORD_PTR)pW32pArgumentTable[i]); printf("\n"); } } Modified: branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/editglyphdlg.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/editglyphdlg.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/editglyphdlg.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -121,7 +121,7 @@ { PEDIT_GLYPH_INFO Info; - Info = (PEDIT_GLYPH_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); + Info = (PEDIT_GLYPH_INFO) GetWindowLongPtrW(hwnd, GWLP_USERDATA); if(Info || uMsg == WM_INITDIALOG) { @@ -136,9 +136,9 @@ Info->hEdit = GetDlgItem(hwnd, IDC_EDIT_GLYPH_EDIT); Info->hPreview = GetDlgItem(hwnd, IDC_EDIT_GLYPH_PREVIEW); - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); - SetWindowLongW(Info->hEdit, GWLP_USERDATA, (LONG)Info); - SetWindowLongW(Info->hPreview, GWLP_USERDATA, (LONG)Info); + SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR)Info); + SetWindowLongPtrW(Info->hEdit, GWLP_USERDATA, (LONG_PTR)Info); + SetWindowLongPtrW(Info->hPreview, GWLP_USERDATA, (LONG_PTR)Info); InitToolbox(Info); @@ -154,7 +154,7 @@ { PEDIT_GLYPH_INFO Info; - Info = (PEDIT_GLYPH_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); + Info = (PEDIT_GLYPH_INFO) GetWindowLongPtrW(hwnd, GWLP_USERDATA); if(Info) { @@ -232,7 +232,7 @@ { PEDIT_GLYPH_INFO Info; - Info = (PEDIT_GLYPH_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); + Info = (PEDIT_GLYPH_INFO) GetWindowLongPtrW(hwnd, GWLP_USERDATA); if(Info) { Modified: branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontboxeswnd.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontboxeswnd.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontboxeswnd.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -250,7 +250,7 @@ { PFONT_WND_INFO Info; - Info = (PFONT_WND_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); + Info = (PFONT_WND_INFO) GetWindowLongPtrW(hwnd, GWLP_USERDATA); if(Info || uMsg == WM_CREATE) { @@ -258,7 +258,7 @@ { case WM_CREATE: Info = (PFONT_WND_INFO)( ( (LPCREATESTRUCT)lParam )->lpCreateParams ); - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); + SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR)Info); // Set a fixed window size SetWindowPos(hwnd, NULL, 0, 0, FONT_BOXES_WND_WIDTH, FONT_BOXES_WND_HEIGHT, SWP_NOZORDER | SWP_NOMOVE); Modified: branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontwnd.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontwnd.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/fontwnd.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -99,7 +99,7 @@ { PFONT_WND_INFO Info; - Info = (PFONT_WND_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); + Info = (PFONT_WND_INFO) GetWindowLongPtrW(hwnd, GWLP_USERDATA); if(Info || uMsg == WM_CREATE) { @@ -115,7 +115,7 @@ Info = (PFONT_WND_INFO)( ( (LPMDICREATESTRUCT) ( (LPCREATESTRUCT)lParam )->lpCreateParams )->lParam ); Info->hSelf = hwnd; - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); + SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR)Info); CreateFontBoxesWindow(Info); Modified: branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/mainwnd.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/mainwnd.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/devutils/vgafontedit/mainwnd.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -443,7 +443,7 @@ PMAIN_WND_INFO Info; - Info = (PMAIN_WND_INFO) GetWindowLongW(hwnd, GWLP_USERDATA); + Info = (PMAIN_WND_INFO) GetWindowLongPtrW(hwnd, GWLP_USERDATA); if(Info || uMsg == WM_CREATE) { @@ -490,7 +490,7 @@ Info = (PMAIN_WND_INFO)( ( (LPCREATESTRUCT)lParam )->lpCreateParams ); Info->hMainWnd = hwnd; Info->hMenu = GetMenu(hwnd); - SetWindowLongW(hwnd, GWLP_USERDATA, (LONG)Info); + SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR)Info); hNextClipboardViewer = SetClipboardViewer(hwnd); Modified: branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/common/list.cpp URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/common/list.cpp [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/common/list.cpp [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -34,7 +34,7 @@ Prev = prev; } -void* CListNode::operator new(/*size_t*/ UINT size) +void* CListNode::operator new(size_t size) { PVOID p; if (hHeap == NULL) { Modified: branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/include/list.h URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/include/list.h [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/net/roshttpd/include/list.h [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -14,7 +14,7 @@ CListNode(); CListNode(VOID *element, CListNode *next, CListNode *prev); ~CListNode() {}; - void* operator new(/*size_t s*/ UINT s); + void* operator new(size_t s); VOID operator delete(void* p); VOID SetElement(PVOID element); Modified: branches/ros-amd64-bringup/rosapps/applications/net/tditest/tditest/tditest.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/net/tditest/tditest/tditest.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/net/tditest/tditest/tditest.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -442,7 +442,7 @@ if (SnmpInfo.NumAddr != 1) { /* Skip loopback address */ - *Address = DN2H(((PIPADDR_ENTRY)((ULONG)IpAddress + sizeof(IPADDR_ENTRY)))->Addr); + *Address = DN2H(((PIPADDR_ENTRY)((ULONG_PTR)IpAddress + sizeof(IPADDR_ENTRY)))->Addr); } else { @@ -507,7 +507,7 @@ RtlZeroMemory(ConnectInfo, sizeof(TDI_CONNECTION_INFORMATION) + sizeof(TA_IP_ADDRESS)); ConnectInfo->RemoteAddressLength = sizeof(TA_IP_ADDRESS); - ConnectInfo->RemoteAddress = (PUCHAR) ((ULONG)ConnectInfo + sizeof(TDI_CONNECTION_INFORMATION)); + ConnectInfo->RemoteAddress = (PUCHAR) ((ULONG_PTR)ConnectInfo + sizeof(TDI_CONNECTION_INFORMATION)); TA = (PTA_IP_ADDRESS)(ConnectInfo->RemoteAddress); TA->TAAddressCount = 1; @@ -630,9 +630,9 @@ ReceiveInfo->RemoteAddressLength = 0; ReceiveInfo->RemoteAddress = NULL; - ReturnInfo = (PTDI_CONNECTION_INFORMATION) ((ULONG)ReceiveInfo + sizeof(TDI_CONNECTION_INFORMATION)); + ReturnInfo = (PTDI_CONNECTION_INFORMATION) ((ULONG_PTR)ReceiveInfo + sizeof(TDI_CONNECTION_INFORMATION)); ReturnInfo->RemoteAddressLength = sizeof(TA_IP_ADDRESS); - ReturnInfo->RemoteAddress = (PUCHAR) ((ULONG)ReturnInfo + sizeof(TDI_CONNECTION_INFORMATION)); + ReturnInfo->RemoteAddress = (PUCHAR) ((ULONG_PTR)ReturnInfo + sizeof(TDI_CONNECTION_INFORMATION)); ReturnAddress = (PTA_IP_ADDRESS)(ReturnInfo->RemoteAddress); ReturnAddress->TAAddressCount = 1; Modified: branches/ros-amd64-bringup/rosapps/applications/screensavers/starfield/screensaver.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/screensavers/starfield/screensaver.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/screensavers/starfield/screensaver.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -317,7 +317,7 @@ if(isdigit(ch)) { unsigned int i = _wtoi(szCmdLine - 1); - *hwndParent = (HWND)i; + *hwndParent = (HWND)(ULONG_PTR)i; } else *hwndParent = NULL; Modified: branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -1011,7 +1011,7 @@ PIMAGE_OPTIONAL_HEADER poh = (PIMAGE_OPTIONAL_HEADER) OPTHDROFFSET (lpFile); if (poh != NULL) - return (LPVOID)(ULONG_PTR)(poh->AddressOfEntryPoint); + return (LPVOID)(poh->AddressOfEntryPoint); else return NULL; } Modified: branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.rbuild [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/sysutils/pedump/pedump.rbuild [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -1,4 +1,4 @@ -<module name="pedump" type="win32cui" installbase="system32" installname="pedump.exe"> +<module name="pedump" type="win32cui" installbase="system32" installname="pedump.exe" allowwarnings="true"> <library>ntdll</library> <file>pedump.c</file> <file>pedump.rc</file> Modified: branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -47,7 +47,7 @@ NtCurrentProcess(), &pBuf, 0, - (PULONG)&size, + &size, MEM_COMMIT, PAGE_READWRITE ); @@ -58,7 +58,7 @@ void PsaiFree(void *ptr) { - ULONG nSize = 0; + size_t nSize = 0; NtFreeVirtualMemory(NtCurrentProcess(), &ptr, &nSize, MEM_RELEASE); } @@ -117,7 +117,7 @@ if (NULL == pInfo) return 0; do { - if (ALREADY_PROCESSED != (DWORD)pInfo->InheritedFromUniqueProcessId) + if (ALREADY_PROCESSED != (DWORD_PTR)pInfo->InheritedFromUniqueProcessId) { if ((Pid != (HANDLE)pInfo->UniqueProcessId) && (Pid == (HANDLE)pInfo->InheritedFromUniqueProcessId)) { @@ -183,7 +183,7 @@ /* Scan and print possible children */ do { - if (ALREADY_PROCESSED != (DWORD)pInfo->InheritedFromUniqueProcessId) + if (ALREADY_PROCESSED != (DWORD_PTR)pInfo->InheritedFromUniqueProcessId) { if (Pid == pInfo->InheritedFromUniqueProcessId) { @@ -236,7 +236,7 @@ } else { - if (ALREADY_PROCESSED != (DWORD)pInfo->InheritedFromUniqueProcessId) + if (ALREADY_PROCESSED != (DWORD_PTR)pInfo->InheritedFromUniqueProcessId) { PrintProcessAndDescendants (pInfo, pInfoBase, 0); } @@ -357,7 +357,7 @@ CLIENT_ID ClientId = {0, 0}; - ClientId.UniqueProcess = (PVOID) atol (PidStr); + ClientId.UniqueProcess = LongToPtr(atol (PidStr)); if (FALSE == AcquirePrivileges ()) { Modified: branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.rbuild [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/sysutils/tlist/tlist.rbuild [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -1,6 +1,6 @@ <module name="tlist" type="win32cui" installbase="system32" installname="tlist.exe"> <library>epsapi</library> - <!-- <library>tgetopt</library> --> + <!--library>tgetopt</library> --> <library>user32</library> <library>ntdll</library> <file>tlist.c</file> Modified: branches/ros-amd64-bringup/rosapps/applications/sysutils/utils/stats/stats.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rosapps/appli…
============================================================================== --- branches/ros-amd64-bringup/rosapps/applications/sysutils/utils/stats/stats.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/rosapps/applications/sysutils/utils/stats/stats.c [iso-8859-1] Wed Dec 9 02:15:20 2009 @@ -75,14 +75,14 @@ PEXTENSION_INFO ExtInfo; PEXTENSION_INFO Info; TCHAR *t; - DWORD ln; + size_t ln; ExtInfo = (PEXTENSION_INFO) HeapAlloc (GetProcessHeap(), 0, sizeof (EXTENSION_INFO)); if (!ExtInfo) return NULL; for(t = ExtName; *t != _T('\0'); t += _tcslen(t) + 1); - ln = (DWORD)t - (DWORD)ExtName; + ln = t - ExtName; ZeroMemory (ExtInfo, sizeof (EXTENSION_INFO)); memcpy (ExtInfo->ExtName, ExtName, ln);
15 years, 4 months
1
0
0
0
[sserapion] 44475: - Create some stubs for some w32kdll api tests. Someone please verify and complete the job. - Fix building all rostests for amd64. No guarantee anything works now, or ever did...
by sserapion@svn.reactos.org
Author: sserapion Date: Wed Dec 9 02:14:28 2009 New Revision: 44475 URL:
http://svn.reactos.org/svn/reactos?rev=44475&view=rev
Log: - Create some stubs for some w32kdll api tests. Someone please verify and complete the job. - Fix building all rostests for amd64. No guarantee anything works now, or ever did... Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2-amd64.S (with props) branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2-amd64.def (with props) branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2-i386.S (with props) branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2-i386.def - copied unchanged from r44455, branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2.def branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros-amd64.def (with props) branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros-i386.def - copied unchanged from r44456, branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros.def branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-amd64.S (with props) branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-amd64.def (with props) branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-i386.S - copied unchanged from r44455, branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista.S branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-i386.def (with props) Removed: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2.S branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros.def branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista.S Modified: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2.rbuild branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros.rbuild branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista.rbuild branches/ros-amd64-bringup/rostests/apitests/w32knapi/w32knapi.c branches/ros-amd64-bringup/rostests/apitests/w32knapi/w32knapi.rbuild branches/ros-amd64-bringup/rostests/dxtest/win32kdxtest/dump.c branches/ros-amd64-bringup/rostests/dxtest/win32kdxtest/test.h branches/ros-amd64-bringup/rostests/tests/primitives/primitives.cpp branches/ros-amd64-bringup/rostests/tests/subclass/subclass.c branches/ros-amd64-bringup/rostests/tests/suspend/suspend.c branches/ros-amd64-bringup/rostests/tests/thread/thread.c branches/ros-amd64-bringup/rostests/tests/tmrqueue/tmrqueue.c [This mail would be too long, it was shortened to contain the URLs only.] Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2-amd64.S URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2-amd64.def URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2-i386.S URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Removed: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2.S URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Modified: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_2k3sp2/w32kdll_2k3sp2.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros-amd64.def URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Removed: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros.def URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Modified: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_ros/w32kdll_ros.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-amd64.S URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-amd64.def URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Added: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista-i386.def URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Removed: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista.S URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Modified: branches/ros-amd64-bringup/rostests/apitests/w32kdll/w32kdll_vista/w32kdll_vista.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Modified: branches/ros-amd64-bringup/rostests/apitests/w32knapi/w32knapi.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Modified: branches/ros-amd64-bringup/rostests/apitests/w32knapi/w32knapi.rbuild URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/apit…
Modified: branches/ros-amd64-bringup/rostests/dxtest/win32kdxtest/dump.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/dxte…
Modified: branches/ros-amd64-bringup/rostests/dxtest/win32kdxtest/test.h URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/dxte…
Modified: branches/ros-amd64-bringup/rostests/tests/primitives/primitives.cpp URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/test…
Modified: branches/ros-amd64-bringup/rostests/tests/subclass/subclass.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/test…
Modified: branches/ros-amd64-bringup/rostests/tests/suspend/suspend.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/test…
Modified: branches/ros-amd64-bringup/rostests/tests/thread/thread.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/test…
Modified: branches/ros-amd64-bringup/rostests/tests/tmrqueue/tmrqueue.c URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/rostests/test…
15 years, 4 months
1
0
0
0
[dgorbachev] 44474: Cleanup in desktopbg.c, inspired by BeastL (slyhome|AT|ipnet|DOT|ua), bug #4985.
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Tue Dec 8 22:57:27 2009 New Revision: 44474 URL:
http://svn.reactos.org/svn/reactos?rev=44474&view=rev
Log: Cleanup in desktopbg.c, inspired by BeastL (slyhome|AT|ipnet|DOT|ua), bug #4985. Modified: trunk/reactos/subsystems/win32/csrss/win32csr/desktopbg.c Modified: trunk/reactos/subsystems/win32/csrss/win32csr/desktopbg.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/win…
============================================================================== --- trunk/reactos/subsystems/win32/csrss/win32csr/desktopbg.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/csrss/win32csr/desktopbg.c [iso-8859-1] Tue Dec 8 22:57:27 2009 @@ -8,6 +8,7 @@ */ #define NDEBUG + #include "w32csr.h" #include <debug.h> @@ -18,283 +19,302 @@ typedef struct tagDTBG_THREAD_DATA { - HDESK Desktop; - HANDLE Event; - NTSTATUS Status; + HDESK Desktop; + HANDLE Event; + NTSTATUS Status; } DTBG_THREAD_DATA, *PDTBG_THREAD_DATA; typedef struct tagPRIVATE_NOTIFY_DESKTOP { - NMHDR hdr; - union - { + NMHDR hdr; struct /* PM_SHOW_DESKTOP */ { - int Width; - int Height; + int Width; + int Height; } ShowDesktop; - }; } PRIVATE_NOTIFY_DESKTOP, *PPRIVATE_NOTIFY_DESKTOP; static BOOL BgInitialized = FALSE; static HWND VisibleDesktopWindow = NULL; -static LRESULT CALLBACK -DtbgWindowProc(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam) -{ - PAINTSTRUCT PS; - HDC hDC; - - switch(Msg) - { - case WM_ERASEBKGND: - PaintDesktop((HDC)wParam); +static +LRESULT +CALLBACK +DtbgWindowProc(HWND Wnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam) +{ + PAINTSTRUCT PS; + + switch (Msg) + { + case WM_ERASEBKGND: + PaintDesktop((HDC)wParam); + return 1; + + case WM_PAINT: + if (BeginPaint(Wnd, &PS)) + EndPaint(Wnd, &PS); + return 0; + + case WM_SETCURSOR: + return (LRESULT)SetCursor(LoadCursorW(0, (LPCWSTR)IDC_ARROW)); + + case WM_NCCREATE: + return (LRESULT)TRUE; + + case WM_CREATE: + case WM_CLOSE: + return 0; + + case WM_NOTIFY: + { + PPRIVATE_NOTIFY_DESKTOP nmh = (PPRIVATE_NOTIFY_DESKTOP)lParam; + + /* Use WM_NOTIFY for private messages since + * it can't be sent between processes! + */ + switch (nmh->hdr.code) + { + case PM_SHOW_DESKTOP: + { + LRESULT Result; + + Result = !SetWindowPos(Wnd, NULL, 0, 0, + nmh->ShowDesktop.Width, + nmh->ShowDesktop.Height, + SWP_NOACTIVATE | SWP_NOZORDER | + SWP_SHOWWINDOW); + + UpdateWindow(Wnd); + VisibleDesktopWindow = Wnd; + return Result; + } + + case PM_HIDE_DESKTOP: + { + LRESULT Result; + + Result = !SetWindowPos(Wnd, NULL, 0, 0, 0, 0, + SWP_NOACTIVATE | SWP_NOZORDER | + SWP_NOMOVE | SWP_NOSIZE | SWP_HIDEWINDOW); + + UpdateWindow(Wnd); + VisibleDesktopWindow = NULL; + return Result; + } + + default: + DPRINT("Unknown notification code 0x%x sent to the desktop window!\n", + nmh->hdr.code); + return 0; + } + } + + default: + return DefWindowProcW(Wnd, Msg, wParam, lParam); + } + + return 0; +} + +static +BOOL +FASTCALL +DtbgInit(VOID) +{ + WNDCLASSEXW Class; + ATOM ClassAtom; + + /* + * Create the desktop window class + */ + Class.cbSize = sizeof(WNDCLASSEXW); + Class.style = CS_GLOBALCLASS; + Class.lpfnWndProc = DtbgWindowProc; + Class.cbClsExtra = 0; + Class.cbWndExtra = 0; + Class.hInstance = (HINSTANCE)GetModuleHandleW(NULL); + Class.hIcon = NULL; + Class.hCursor = NULL; + Class.hbrBackground = GetSysColorBrush(COLOR_BACKGROUND); + Class.lpszMenuName = NULL; + Class.lpszClassName = (LPCWSTR)DESKTOP_WINDOW_ATOM; + ClassAtom = RegisterClassExW(&Class); + + if (ClassAtom == INVALID_ATOM) + { + DPRINT1("Unable to register desktop background class (error %d)\n", + GetLastError()); + + return FALSE; + } + + VisibleDesktopWindow = NULL; + + return TRUE; +} + +static +DWORD +WINAPI +DtbgDesktopThread(PVOID Data) +{ + HWND BackgroundWnd; + MSG msg; + PDTBG_THREAD_DATA ThreadData = (PDTBG_THREAD_DATA)Data; + + if (!SetThreadDesktop(ThreadData->Desktop)) + { + DPRINT1("Failed to set thread desktop\n"); + ThreadData->Status = STATUS_UNSUCCESSFUL; + SetEvent(ThreadData->Event); return 1; - - case WM_PAINT: - { - if((hDC = BeginPaint(Wnd, &PS))) - EndPaint(Wnd, &PS); - return 0; - } - - case WM_SETCURSOR: - return (LRESULT) SetCursor(LoadCursorW(0, (LPCWSTR)IDC_ARROW)); - - case WM_NCCREATE: - return (LRESULT) TRUE; - - case WM_CREATE: - return 0; - - case WM_CLOSE: - return 0; - - case WM_NOTIFY: - { - PPRIVATE_NOTIFY_DESKTOP nmh = (PPRIVATE_NOTIFY_DESKTOP)lParam; - - /* Use WM_NOTIFY for private messages since it can't be sent between - processes! */ - switch(nmh->hdr.code) - { - case PM_SHOW_DESKTOP: - { - LRESULT Result; - - Result = ! SetWindowPos(Wnd, - NULL, 0, 0, - nmh->ShowDesktop.Width, - nmh->ShowDesktop.Height, - SWP_NOACTIVATE | SWP_NOZORDER | SWP_SHOWWINDOW); - UpdateWindow(Wnd); - VisibleDesktopWindow = Wnd; - return Result; - } - - case PM_HIDE_DESKTOP: - { - LRESULT Result; - - Result = ! SetWindowPos(Wnd, - NULL, 0, 0, 0, 0, - SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | - SWP_HIDEWINDOW); - UpdateWindow(Wnd); - VisibleDesktopWindow = NULL; - return Result; - } - - default: - DPRINT("Unknown notification code 0x%x sent to the desktop window!\n", nmh->hdr.code); - return 0; - } - } - - default: - return DefWindowProcW(Wnd, Msg, wParam, lParam); - } - - return 0; -} - -static BOOL FASTCALL -DtbgInit() -{ - WNDCLASSEXW Class; - ATOM ClassAtom; - - /* - * Create the desktop window class - */ - Class.cbSize = sizeof(WNDCLASSEXW); - Class.style = CS_GLOBALCLASS; - Class.lpfnWndProc = DtbgWindowProc; - Class.cbClsExtra = 0; - Class.cbWndExtra = 0; - Class.hInstance = (HINSTANCE) GetModuleHandleW(NULL); - Class.hIcon = NULL; - Class.hCursor = NULL; - Class.hbrBackground = GetSysColorBrush(COLOR_BACKGROUND); - Class.lpszMenuName = NULL; - Class.lpszClassName = (LPCWSTR) DESKTOP_WINDOW_ATOM; - ClassAtom = RegisterClassExW(&Class); - if ((ATOM) 0 == ClassAtom) - { - DPRINT1("Unable to register desktop background class (error %d)\n", - GetLastError()); - return FALSE; - } - VisibleDesktopWindow = NULL; - - return TRUE; -} - -static DWORD WINAPI -DtbgDesktopThread(PVOID Data) -{ - HWND BackgroundWnd; - MSG msg; - PDTBG_THREAD_DATA ThreadData = (PDTBG_THREAD_DATA) Data; - - if (! SetThreadDesktop(ThreadData->Desktop)) - { - DPRINT1("Failed to set thread desktop\n"); - ThreadData->Status = STATUS_UNSUCCESSFUL; - SetEvent(ThreadData->Event); - return 1; - } - BackgroundWnd = CreateWindowW((LPCWSTR) DESKTOP_WINDOW_ATOM, - L"", - WS_POPUP | WS_CLIPCHILDREN, + } + + BackgroundWnd = CreateWindowW((LPCWSTR)DESKTOP_WINDOW_ATOM, + L"", + WS_POPUP | WS_CLIPCHILDREN, + 0, 0, 0, 0, + NULL, NULL, + (HINSTANCE)GetModuleHandleW(NULL), + NULL); + + if (NULL == BackgroundWnd) + { + DPRINT1("Failed to create desktop background window\n"); + ThreadData->Status = STATUS_UNSUCCESSFUL; + SetEvent(ThreadData->Event); + return 1; + } + + ThreadData->Status = STATUS_SUCCESS; + SetEvent(ThreadData->Event); + + while (GetMessageW(&msg, NULL, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessageW(&msg); + } + + return 1; +} + +CSR_API(CsrCreateDesktop) +{ + DTBG_THREAD_DATA ThreadData; + HANDLE ThreadHandle; + + DPRINT("CsrCreateDesktop\n"); + + Request->Header.u1.s1.TotalLength = sizeof(CSR_API_MESSAGE); + Request->Header.u1.s1.DataLength = sizeof(CSR_API_MESSAGE) - sizeof(PORT_MESSAGE); + + if (!BgInitialized) + { + BgInitialized = TRUE; + + if (!DtbgInit()) + return STATUS_UNSUCCESSFUL; + } + + /* + * The desktop handle we got from win32k is in + * the scope of CSRSS so we can just use it. + */ + ThreadData.Desktop = Request->Data.CreateDesktopRequest.DesktopHandle; + + ThreadData.Event = CreateEventW(NULL, FALSE, FALSE, NULL); + + if (NULL == ThreadData.Event) + { + DPRINT1("Failed to create event (error %d)\n", GetLastError()); + return STATUS_UNSUCCESSFUL; + } + + ThreadHandle = CreateThread(NULL, 0, + DtbgDesktopThread, + (PVOID)&ThreadData, 0, - 0, - 0, - NULL, - NULL, - (HINSTANCE) GetModuleHandleW(NULL), NULL); - if (NULL == BackgroundWnd) - { - DPRINT1("Failed to create desktop background window\n"); - ThreadData->Status = STATUS_UNSUCCESSFUL; - SetEvent(ThreadData->Event); - return 1; - } - - ThreadData->Status = STATUS_SUCCESS; - SetEvent(ThreadData->Event); - - while (GetMessageW(&msg, NULL, 0, 0)) - { - TranslateMessage(&msg); - DispatchMessageW(&msg); - } - - return 1; -} - -CSR_API(CsrCreateDesktop) -{ - DTBG_THREAD_DATA ThreadData; - HANDLE ThreadHandle; - - DPRINT("CsrCreateDesktop\n"); - - Request->Header.u1.s1.TotalLength = sizeof(CSR_API_MESSAGE); - Request->Header.u1.s1.DataLength = sizeof(CSR_API_MESSAGE) - sizeof(PORT_MESSAGE); - - if (! BgInitialized) - { - BgInitialized = TRUE; - if (! DtbgInit()) - { - return STATUS_UNSUCCESSFUL; - } - } - - /* - * the desktop handle we got from win32k is in the scope of CSRSS so we can just use it - */ - ThreadData.Desktop = Request->Data.CreateDesktopRequest.DesktopHandle; - - ThreadData.Event = CreateEventW(NULL, FALSE, FALSE, NULL); - if (NULL == ThreadData.Event) - { - DPRINT1("Failed to create event (error %d)\n", GetLastError()); - return STATUS_UNSUCCESSFUL; - } - ThreadHandle = CreateThread(NULL, - 0, - DtbgDesktopThread, - (PVOID) &ThreadData, - 0, - NULL); - if (NULL == ThreadHandle) - { - CloseHandle(ThreadData.Event); - DPRINT1("Failed to create desktop window thread.\n"); - return STATUS_UNSUCCESSFUL; - } - CloseHandle(ThreadHandle); - - WaitForSingleObject(ThreadData.Event, INFINITE); - CloseHandle(ThreadData.Event); - - return ThreadData.Status; + + if (NULL == ThreadHandle) + { + CloseHandle(ThreadData.Event); + DPRINT1("Failed to create desktop window thread.\n"); + return STATUS_UNSUCCESSFUL; + } + + CloseHandle(ThreadHandle); + + WaitForSingleObject(ThreadData.Event, INFINITE); + CloseHandle(ThreadData.Event); + + return ThreadData.Status; } CSR_API(CsrShowDesktop) { - PRIVATE_NOTIFY_DESKTOP nmh; - DPRINT("CsrShowDesktop\n"); - - Request->Header.u1.s1.TotalLength = sizeof(CSR_API_MESSAGE); - Request->Header.u1.s1.DataLength = sizeof(CSR_API_MESSAGE) - sizeof(PORT_MESSAGE); - - nmh.hdr.hwndFrom = Request->Data.ShowDesktopRequest.DesktopWindow; - nmh.hdr.idFrom = 0; - nmh.hdr.code = PM_SHOW_DESKTOP; - - nmh.ShowDesktop.Width = (int)Request->Data.ShowDesktopRequest.Width; - nmh.ShowDesktop.Height = (int)Request->Data.ShowDesktopRequest.Height; - - return SendMessageW(Request->Data.ShowDesktopRequest.DesktopWindow, - WM_NOTIFY, - (WPARAM)nmh.hdr.hwndFrom, - (LPARAM)&nmh) - ? STATUS_UNSUCCESSFUL : STATUS_SUCCESS; + PRIVATE_NOTIFY_DESKTOP nmh; + DPRINT("CsrShowDesktop\n"); + + Request->Header.u1.s1.TotalLength = sizeof(CSR_API_MESSAGE); + Request->Header.u1.s1.DataLength = sizeof(CSR_API_MESSAGE) - sizeof(PORT_MESSAGE); + + nmh.hdr.hwndFrom = Request->Data.ShowDesktopRequest.DesktopWindow; + nmh.hdr.idFrom = 0; + nmh.hdr.code = PM_SHOW_DESKTOP; + + nmh.ShowDesktop.Width = (int)Request->Data.ShowDesktopRequest.Width; + nmh.ShowDesktop.Height = (int)Request->Data.ShowDesktopRequest.Height; + + if (SendMessageW(Request->Data.ShowDesktopRequest.DesktopWindow, + WM_NOTIFY, + (WPARAM)nmh.hdr.hwndFrom, + (LPARAM)&nmh)) + { + return STATUS_UNSUCCESSFUL; + } + + return STATUS_SUCCESS; } CSR_API(CsrHideDesktop) { - PRIVATE_NOTIFY_DESKTOP nmh; - DPRINT("CsrHideDesktop\n"); - - Request->Header.u1.s1.TotalLength = sizeof(CSR_API_MESSAGE); - Request->Header.u1.s1.DataLength = sizeof(CSR_API_MESSAGE) - sizeof(PORT_MESSAGE); - - nmh.hdr.hwndFrom = Request->Data.ShowDesktopRequest.DesktopWindow; - nmh.hdr.idFrom = 0; - nmh.hdr.code = PM_HIDE_DESKTOP; - - return SendMessageW(Request->Data.ShowDesktopRequest.DesktopWindow, - WM_NOTIFY, - (WPARAM)nmh.hdr.hwndFrom, - (LPARAM)&nmh) - ? STATUS_UNSUCCESSFUL : STATUS_SUCCESS; -} - -BOOL FASTCALL + PRIVATE_NOTIFY_DESKTOP nmh; + DPRINT("CsrHideDesktop\n"); + + Request->Header.u1.s1.TotalLength = sizeof(CSR_API_MESSAGE); + Request->Header.u1.s1.DataLength = sizeof(CSR_API_MESSAGE) - sizeof(PORT_MESSAGE); + + nmh.hdr.hwndFrom = Request->Data.ShowDesktopRequest.DesktopWindow; + nmh.hdr.idFrom = 0; + nmh.hdr.code = PM_HIDE_DESKTOP; + + if (SendMessageW(Request->Data.ShowDesktopRequest.DesktopWindow, + WM_NOTIFY, + (WPARAM)nmh.hdr.hwndFrom, + (LPARAM)&nmh)) + { + return STATUS_UNSUCCESSFUL; + } + + return STATUS_SUCCESS; +} + +BOOL +FASTCALL DtbgIsDesktopVisible(VOID) { - if (NULL != VisibleDesktopWindow && ! IsWindowVisible(VisibleDesktopWindow)) - { - VisibleDesktopWindow = NULL; - } - - return NULL != VisibleDesktopWindow; + if (VisibleDesktopWindow != NULL && + !IsWindowVisible(VisibleDesktopWindow)) + { + VisibleDesktopWindow = NULL; + } + + return VisibleDesktopWindow != NULL; } /* EOF */
15 years, 4 months
1
0
0
0
[janderwald] 44473: [MMIXER] - Finish porting of code from wdmaud
by janderwald@svn.reactos.org
Author: janderwald Date: Tue Dec 8 22:10:02 2009 New Revision: 44473 URL:
http://svn.reactos.org/svn/reactos?rev=44473&view=rev
Log: [MMIXER] - Finish porting of code from wdmaud Added: trunk/reactos/lib/drivers/sound/mmixer/controls.c (with props) trunk/reactos/lib/drivers/sound/mmixer/filter.c (with props) trunk/reactos/lib/drivers/sound/mmixer/sup.c (with props) Modified: trunk/reactos/lib/drivers/sound/mmixer/mixer.c trunk/reactos/lib/drivers/sound/mmixer/mmixer.h trunk/reactos/lib/drivers/sound/mmixer/mmixer.rbuild trunk/reactos/lib/drivers/sound/mmixer/priv.h Added: trunk/reactos/lib/drivers/sound/mmixer/controls.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/c…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/controls.c (added) +++ trunk/reactos/lib/drivers/sound/mmixer/controls.c [iso-8859-1] Tue Dec 8 22:10:02 2009 @@ -1,0 +1,949 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Kernel Streaming + * FILE: lib/drivers/sound/mmixer/controls.c + * PURPOSE: Mixer Control Iteration Functions + * PROGRAMMER: Johannes Anderwald + */ + +#include "priv.h" + +MIXER_STATUS +MMixerGetTargetPinsByNodeConnectionIndex( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM NodeConnections, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG bUpDirection, + IN ULONG NodeConnectionIndex, + OUT PULONG Pins) +{ + PKSTOPOLOGY_CONNECTION Connection; + ULONG PinId, NodeConnectionCount, Index; + PULONG NodeConnection; + MIXER_STATUS Status; + + + /* sanity check */ + ASSERT(NodeConnectionIndex < NodeConnections->Count); + + Connection = (PKSTOPOLOGY_CONNECTION)(NodeConnections + 1); + + //DPRINT("FromNode %u FromNodePin %u -> ToNode %u ToNodePin %u\n", Connection[NodeConnectionIndex].FromNode, Connection[NodeConnectionIndex].FromNodePin, Connection[NodeConnectionIndex].ToNode, Connection[NodeConnectionIndex].ToNodePin ); + + if ((Connection[NodeConnectionIndex].ToNode == KSFILTER_NODE && bUpDirection == FALSE) || + (Connection[NodeConnectionIndex].FromNode == KSFILTER_NODE && bUpDirection == TRUE)) + { + /* iteration stops here */ + if (bUpDirection) + PinId = Connection[NodeConnectionIndex].FromNodePin; + else + PinId = Connection[NodeConnectionIndex].ToNodePin; + + //DPRINT("GetTargetPinsByNodeIndex FOUND Target Pin %u Parsed %u\n", PinId, Pins[PinId]); + + /* mark pin index as a target pin */ + Pins[PinId] = TRUE; + return MM_STATUS_SUCCESS; + } + + // get all node indexes referenced by that node + if (bUpDirection) + { + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, Connection[NodeConnectionIndex].FromNode, TRUE, FALSE, &NodeConnectionCount, &NodeConnection); + } + else + { + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, Connection[NodeConnectionIndex].ToNode, TRUE, TRUE, &NodeConnectionCount, &NodeConnection); + } + + if (Status == MM_STATUS_SUCCESS) + { + for(Index = 0; Index < NodeConnectionCount; Index++) + { + // iterate recursively into the nodes + Status = MMixerGetTargetPinsByNodeConnectionIndex(MixerContext, NodeConnections, NodeTypes, bUpDirection, NodeConnection[Index], Pins); + ASSERT(Status == MM_STATUS_SUCCESS); + } + // free node connection indexes + MixerContext->Free(NodeConnection); + } + + return Status; +} + +MIXER_STATUS +MMixerGetControlsFromPinByConnectionIndex( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM NodeConnections, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG bUpDirection, + IN ULONG NodeConnectionIndex, + OUT PULONG Nodes) +{ + PKSTOPOLOGY_CONNECTION CurConnection; + LPGUID NodeType; + ULONG NodeIndex; + MIXER_STATUS Status; + ULONG NodeConnectionCount, Index; + PULONG NodeConnection; + + + /* get current connection */ + CurConnection = MMixerGetConnectionByIndex(NodeConnections, NodeConnectionIndex); + + if (bUpDirection) + NodeIndex = CurConnection->FromNode; + else + NodeIndex = CurConnection->ToNode; + + /* get target node type of current connection */ + NodeType = MMixerGetNodeType(NodeTypes, NodeIndex); + + if (IsEqualGUIDAligned(NodeType, &KSNODETYPE_SUM) || IsEqualGUIDAligned(NodeType, &KSNODETYPE_MUX)) + { + if (bUpDirection) + { + /* add the sum / mux node to destination line */ + Nodes[NodeIndex] = TRUE; + } + + return MM_STATUS_SUCCESS; + } + + /* now add the node */ + Nodes[NodeIndex] = TRUE; + + + /* get all node indexes referenced by that node */ + if (bUpDirection) + { + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, NodeIndex, TRUE, FALSE, &NodeConnectionCount, &NodeConnection); + } + else + { + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, NodeIndex, TRUE, TRUE, &NodeConnectionCount, &NodeConnection); + } + + if (Status != MM_STATUS_SUCCESS) + { + for(Index = 0; Index < NodeConnectionCount; Index++) + { + /* iterate recursively into the nodes */ + Status = MMixerGetControlsFromPinByConnectionIndex(MixerContext, NodeConnections, NodeTypes, bUpDirection, NodeConnection[Index], Nodes); + ASSERT(Status == MM_STATUS_SUCCESS); + } + /* free node connection indexes */ + MixerContext->Free(NodeConnection); + } + + return Status; +} + +MIXER_STATUS +MMixerAddMixerControl( + IN PMIXER_CONTEXT MixerContext, + IN LPMIXER_INFO MixerInfo, + IN HANDLE hDevice, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG NodeIndex, + IN LPMIXERLINE_EXT MixerLine, + OUT LPMIXERCONTROLW MixerControl) +{ + LPGUID NodeType; + KSP_NODE Node; + ULONG BytesReturned; + MIXER_STATUS Status; + LPWSTR Name; + + /* initialize mixer control */ + MixerControl->cbStruct = sizeof(MIXERCONTROLW); + MixerControl->dwControlID = MixerInfo->ControlId; + + /* get node type */ + NodeType = MMixerGetNodeType(NodeTypes, NodeIndex); + /* store control type */ + MixerControl->dwControlType = MMixerGetControlTypeFromTopologyNode(NodeType); + + MixerControl->fdwControl = MIXERCONTROL_CONTROLF_UNIFORM; //FIXME + MixerControl->cMultipleItems = 0; //FIXME + + if (MixerControl->dwControlType == MIXERCONTROL_CONTROLTYPE_MUTE) + { + MixerControl->Bounds.dwMinimum = 0; + MixerControl->Bounds.dwMaximum = 1; + } + else if (MixerControl->dwControlType == MIXERCONTROL_CONTROLTYPE_VOLUME) + { + MixerControl->Bounds.dwMinimum = 0; + MixerControl->Bounds.dwMaximum = 0xFFFF; + MixerControl->Metrics.cSteps = 0xC0; //FIXME + } + + /* setup request to retrieve name */ + Node.NodeId = NodeIndex; + Node.Property.Id = KSPROPERTY_TOPOLOGY_NAME; + Node.Property.Flags = KSPROPERTY_TYPE_GET; + Node.Property.Set = KSPROPSETID_Topology; + Node.Reserved = 0; + + /* get node name size */ + Status = MixerContext->Control(hDevice, IOCTL_KS_PROPERTY, (PVOID)&Node, sizeof(KSP_NODE), NULL, 0, &BytesReturned); + + if (Status == MM_STATUS_MORE_ENTRIES) + { + ASSERT(BytesReturned != 0); + Name = (LPWSTR)MixerContext->Alloc(BytesReturned); + if (!Name) + { + /* not enough memory */ + return MM_STATUS_NO_MEMORY; + } + + /* get node name */ + Status = MixerContext->Control(hDevice, IOCTL_KS_PROPERTY, (PVOID)&Node, sizeof(KSP_NODE), (LPVOID)Name, BytesReturned, &BytesReturned); + if (Status != MM_STATUS_SUCCESS) + { + RtlMoveMemory(MixerControl->szShortName, Name, (min(MIXER_SHORT_NAME_CHARS, wcslen(Name)+1)) * sizeof(WCHAR)); + MixerControl->szShortName[MIXER_SHORT_NAME_CHARS-1] = L'\0'; + + RtlMoveMemory(MixerControl->szName, Name, (min(MIXER_LONG_NAME_CHARS, wcslen(Name)+1)) * sizeof(WCHAR)); + MixerControl->szName[MIXER_LONG_NAME_CHARS-1] = L'\0'; + } + + /* free name buffer */ + MixerContext->Free(Name); + } + + MixerInfo->ControlId++; +#if 0 + if (MixerControl->dwControlType == MIXERCONTROL_CONTROLTYPE_MUX) + { + KSNODEPROPERTY Property; + ULONG PinId = 2; + + /* setup the request */ + RtlZeroMemory(&Property, sizeof(KSNODEPROPERTY)); + + Property.NodeId = NodeIndex; + Property.Property.Id = KSPROPERTY_AUDIO_MUX_SOURCE; + Property.Property.Flags = KSPROPERTY_TYPE_SET; + Property.Property.Set = KSPROPSETID_Audio; + + /* get node volume level info */ + Status = MixerContext->Control(hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSNODEPROPERTY), (PVOID)&PinId, sizeof(ULONG), &BytesReturned); + + DPRINT1("Status %x NodeIndex %u PinId %u\n", Status, NodeIndex, PinId); + //DbgBreakPoint(); + }else +#endif + if (MixerControl->dwControlType == MIXERCONTROL_CONTROLTYPE_VOLUME) + { + KSNODEPROPERTY_AUDIO_CHANNEL Property; + ULONG Length; + PKSPROPERTY_DESCRIPTION Desc; + PKSPROPERTY_MEMBERSHEADER Members; + PKSPROPERTY_STEPPING_LONG Range; + + Length = sizeof(KSPROPERTY_DESCRIPTION) + sizeof(KSPROPERTY_MEMBERSHEADER) + sizeof(KSPROPERTY_STEPPING_LONG); + Desc = (PKSPROPERTY_DESCRIPTION)MixerContext->Alloc(Length); + ASSERT(Desc); + + /* setup the request */ + RtlZeroMemory(&Property, sizeof(KSNODEPROPERTY_AUDIO_CHANNEL)); + + Property.NodeProperty.NodeId = NodeIndex; + Property.NodeProperty.Property.Id = KSPROPERTY_AUDIO_VOLUMELEVEL; + Property.NodeProperty.Property.Flags = KSPROPERTY_TYPE_BASICSUPPORT; + Property.NodeProperty.Property.Set = KSPROPSETID_Audio; + + /* get node volume level info */ + Status = MixerContext->Control(hDevice, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSNODEPROPERTY_AUDIO_CHANNEL), Desc, Length, &BytesReturned); + + if (Status == MM_STATUS_SUCCESS) + { + LPMIXERVOLUME_DATA VolumeData; + ULONG Steps, MaxRange, Index; + LONG Value; + + Members = (PKSPROPERTY_MEMBERSHEADER)(Desc + 1); + Range = (PKSPROPERTY_STEPPING_LONG)(Members + 1); + + DPRINT("NodeIndex %u Range Min %d Max %d Steps %x UMin %x UMax %x\n", NodeIndex, Range->Bounds.SignedMinimum, Range->Bounds.SignedMaximum, Range->SteppingDelta, Range->Bounds.UnsignedMinimum, Range->Bounds.UnsignedMaximum); + + MaxRange = Range->Bounds.UnsignedMaximum - Range->Bounds.UnsignedMinimum; + + if (MaxRange) + { + ASSERT(MaxRange); + VolumeData = (LPMIXERVOLUME_DATA)MixerContext->Alloc(sizeof(MIXERVOLUME_DATA)); + if (!VolumeData) + return MM_STATUS_NO_MEMORY; + + Steps = MaxRange / Range->SteppingDelta + 1; + + /* store mixer control info there */ + VolumeData->Header.dwControlID = MixerControl->dwControlID; + VolumeData->SignedMaximum = Range->Bounds.SignedMaximum; + VolumeData->SignedMinimum = Range->Bounds.SignedMinimum; + VolumeData->SteppingDelta = Range->SteppingDelta; + VolumeData->ValuesCount = Steps; + VolumeData->InputSteppingDelta = 0x10000 / Steps; + + VolumeData->Values = (PLONG)MixerContext->Alloc(sizeof(LONG) * Steps); + if (!VolumeData->Values) + { + MixerContext->Free(Desc); + MixerContext->Free(VolumeData); + + return MM_STATUS_NO_MEMORY; + } + + Value = Range->Bounds.SignedMinimum; + for(Index = 0; Index < Steps; Index++) + { + VolumeData->Values[Index] = Value; + Value += Range->SteppingDelta; + } + InsertTailList(&MixerLine->LineControlsExtraData, &VolumeData->Header.Entry); + } + } + MixerContext->Free(Desc); + } + + + DPRINT("Status %x Name %S\n", Status, MixerControl->szName); + return MM_STATUS_SUCCESS; +} + +MIXER_STATUS +MMixerAddMixerSourceLine( + IN PMIXER_CONTEXT MixerContext, + IN OUT LPMIXER_INFO MixerInfo, + IN HANDLE hDevice, + IN PKSMULTIPLE_ITEM NodeConnections, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG PinId, + IN ULONG bBridgePin, + IN ULONG bTargetPin) +{ + LPMIXERLINE_EXT SrcLine, DstLine; + MIXER_STATUS Status; + KSP_PIN Pin; + LPWSTR PinName; + GUID NodeType; + ULONG BytesReturned, ControlCount, Index; + PULONG Nodes; + + if (!bTargetPin) + { + /* allocate src mixer line */ + SrcLine = (LPMIXERLINE_EXT)MixerContext->Alloc(sizeof(MIXERLINE_EXT)); + + if (!SrcLine) + return MM_STATUS_NO_MEMORY; + + /* zero struct */ + RtlZeroMemory(SrcLine, sizeof(MIXERLINE_EXT)); + + } + else + { + ASSERT(!IsListEmpty(&MixerInfo->LineList)); + SrcLine = MMixerGetSourceMixerLineByLineId(MixerInfo, DESTINATION_LINE); + } + + /* get destination line */ + DstLine = MMixerGetSourceMixerLineByLineId(MixerInfo, DESTINATION_LINE); + ASSERT(DstLine); + + + if (!bTargetPin) + { + /* initialize mixer src line */ + SrcLine->hDevice = hDevice; + SrcLine->PinId = PinId; + SrcLine->Line.cbStruct = sizeof(MIXERLINEW); + + /* initialize mixer destination line */ + SrcLine->Line.cbStruct = sizeof(MIXERLINEW); + SrcLine->Line.dwDestination = 0; + SrcLine->Line.dwSource = DstLine->Line.cConnections; + SrcLine->Line.dwLineID = (DstLine->Line.cConnections * 0x10000); + SrcLine->Line.fdwLine = MIXERLINE_LINEF_ACTIVE | MIXERLINE_LINEF_SOURCE; + SrcLine->Line.dwUser = 0; + SrcLine->Line.cChannels = DstLine->Line.cChannels; + SrcLine->Line.cConnections = 0; + SrcLine->Line.Target.dwType = 1; + SrcLine->Line.Target.dwDeviceID = DstLine->Line.Target.dwDeviceID; + SrcLine->Line.Target.wMid = MixerInfo->MixCaps.wMid; + SrcLine->Line.Target.wPid = MixerInfo->MixCaps.wPid; + SrcLine->Line.Target.vDriverVersion = MixerInfo->MixCaps.vDriverVersion; + InitializeListHead(&SrcLine->LineControlsExtraData); + wcscpy(SrcLine->Line.Target.szPname, MixerInfo->MixCaps.szPname); + + } + + /* allocate a node arrary */ + Nodes = (PULONG)MixerContext->Alloc(sizeof(ULONG) * NodeTypes->Count); + + if (!Nodes) + { + /* not enough memory */ + if (!bTargetPin) + { + MixerContext->Free(SrcLine); + } + return MM_STATUS_NO_MEMORY; + } + + Status = MMixerGetControlsFromPin(MixerContext, NodeConnections, NodeTypes, PinId, bTargetPin, Nodes); + if (Status != MM_STATUS_SUCCESS) + { + /* something went wrong */ + if (!bTargetPin) + { + MixerContext->Free(SrcLine); + } + MixerContext->Free(Nodes); + return Status; + } + + /* now count all nodes controlled by that pin */ + ControlCount = 0; + for(Index = 0; Index < NodeTypes->Count; Index++) + { + if (Nodes[Index]) + ControlCount++; + } + + /* now allocate the line controls */ + if (ControlCount) + { + SrcLine->LineControls = (LPMIXERCONTROLW)MixerContext->Alloc(sizeof(MIXERCONTROLW) * ControlCount); + + if (!SrcLine->LineControls) + { + /* no memory available */ + if (!bTargetPin) + { + MixerContext->Free(SrcLine); + } + MixerContext->Free(Nodes); + return MM_STATUS_NO_MEMORY; + } + + SrcLine->NodeIds = (PULONG)MixerContext->Alloc(sizeof(ULONG) * ControlCount); + if (!SrcLine->NodeIds) + { + /* no memory available */ + MixerContext->Free(SrcLine->LineControls); + if (!bTargetPin) + { + MixerContext->Free(SrcLine); + } + MixerContext->Free(Nodes); + return MM_STATUS_NO_MEMORY; + } + + /* zero line controls */ + RtlZeroMemory(SrcLine->LineControls, sizeof(MIXERCONTROLW) * ControlCount); + RtlZeroMemory(SrcLine->NodeIds, sizeof(ULONG) * ControlCount); + + ControlCount = 0; + for(Index = 0; Index < NodeTypes->Count; Index++) + { + if (Nodes[Index]) + { + /* store the node index for retrieving / setting details */ + SrcLine->NodeIds[ControlCount] = Index; + + Status = MMixerAddMixerControl(MixerContext, MixerInfo, hDevice, NodeTypes, Index, SrcLine, &SrcLine->LineControls[ControlCount]); + if (Status != MM_STATUS_SUCCESS) + { + /* increment control count on success */ + ControlCount++; + } + } + } + /* store control count */ + SrcLine->Line.cControls = ControlCount; + } + + /* release nodes array */ + MixerContext->Free(Nodes); + + /* get pin category */ + Pin.PinId = PinId; + Pin.Reserved = 0; + Pin.Property.Flags = KSPROPERTY_TYPE_GET; + Pin.Property.Set = KSPROPSETID_Pin; + Pin.Property.Id = KSPROPERTY_PIN_CATEGORY; + + /* try get pin category */ + Status = MixerContext->Control(hDevice, IOCTL_KS_PROPERTY, (PVOID)&Pin, sizeof(KSP_PIN), (LPVOID)&NodeType, sizeof(GUID), &BytesReturned); + if (Status != MM_STATUS_SUCCESS) + { + //FIXME + //map component type + } + + /* retrieve pin name */ + Pin.PinId = PinId; + Pin.Reserved = 0; + Pin.Property.Flags = KSPROPERTY_TYPE_GET; + Pin.Property.Set = KSPROPSETID_Pin; + Pin.Property.Id = KSPROPERTY_PIN_NAME; + + /* try get pin name size */ + Status = MixerContext->Control(hDevice, IOCTL_KS_PROPERTY, (PVOID)&Pin, sizeof(KSP_PIN), NULL, 0, &BytesReturned); + + if (Status != STATUS_MORE_ENTRIES) + { + SrcLine->Line.szShortName[0] = L'\0'; + SrcLine->Line.szName[0] = L'\0'; + } + else + { + PinName = (LPWSTR)MixerContext->Alloc(BytesReturned); + if (PinName) + { + /* try get pin name */ + Status = MixerContext->Control(hDevice, IOCTL_KS_PROPERTY, (PVOID)&Pin, sizeof(KSP_PIN), (LPVOID)PinName, BytesReturned, &BytesReturned); + + if (Status != MM_STATUS_SUCCESS) + { + RtlMoveMemory(SrcLine->Line.szShortName, PinName, (min(MIXER_SHORT_NAME_CHARS, wcslen(PinName)+1)) * sizeof(WCHAR)); + SrcLine->Line.szShortName[MIXER_SHORT_NAME_CHARS-1] = L'\0'; + + RtlMoveMemory(SrcLine->Line.szName, PinName, (min(MIXER_LONG_NAME_CHARS, wcslen(PinName)+1)) * sizeof(WCHAR)); + SrcLine->Line.szName[MIXER_LONG_NAME_CHARS-1] = L'\0'; + } + MixerContext->Free(PinName); + } + } + + /* insert src line */ + if (!bTargetPin) + { + InsertTailList(&MixerInfo->LineList, &SrcLine->Entry); + DstLine->Line.cConnections++; + } + + return MM_STATUS_SUCCESS; +} + +MIXER_STATUS +MMixerCreateDestinationLine( + IN PMIXER_CONTEXT MixerContext, + IN LPMIXER_INFO MixerInfo, + IN ULONG bInputMixer) +{ + LPMIXERLINE_EXT DestinationLine; + + // allocate a mixer destination line + DestinationLine = (LPMIXERLINE_EXT) MixerContext->Alloc(sizeof(MIXERLINE_EXT)); + if (!MixerInfo) + { + // no memory + return MM_STATUS_NO_MEMORY; + } + + /* initialize mixer destination line */ + DestinationLine->Line.cbStruct = sizeof(MIXERLINEW); + DestinationLine->Line.dwSource = MAXULONG; + DestinationLine->Line.dwLineID = DESTINATION_LINE; + DestinationLine->Line.fdwLine = MIXERLINE_LINEF_ACTIVE; + DestinationLine->Line.dwUser = 0; + DestinationLine->Line.dwComponentType = (bInputMixer == 0 ? MIXERLINE_COMPONENTTYPE_DST_SPEAKERS : MIXERLINE_COMPONENTTYPE_DST_WAVEIN); + DestinationLine->Line.cChannels = 2; //FIXME + wcscpy(DestinationLine->Line.szShortName, L"Summe"); //FIXME + wcscpy(DestinationLine->Line.szName, L"Summe"); //FIXME + DestinationLine->Line.Target.dwType = (bInputMixer == 0 ? MIXERLINE_TARGETTYPE_WAVEOUT : MIXERLINE_TARGETTYPE_WAVEIN); + DestinationLine->Line.Target.dwDeviceID = !bInputMixer; + DestinationLine->Line.Target.wMid = MixerInfo->MixCaps.wMid; + DestinationLine->Line.Target.wPid = MixerInfo->MixCaps.wPid; + DestinationLine->Line.Target.vDriverVersion = MixerInfo->MixCaps.vDriverVersion; + wcscpy(DestinationLine->Line.Target.szPname, MixerInfo->MixCaps.szPname); + + + // insert into mixer info + InsertHeadList(&MixerInfo->LineList, &DestinationLine->Entry); + + // done + return MM_STATUS_SUCCESS; +} + +MIXER_STATUS +MMixerGetControlsFromPin( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM NodeConnections, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG PinId, + IN ULONG bUpDirection, + OUT PULONG Nodes) +{ + ULONG NodeConnectionCount, Index; + MIXER_STATUS Status; + PULONG NodeConnection; + + /* sanity check */ + ASSERT(PinId != (ULONG)-1); + + /* get all node indexes referenced by that pin */ + if (bUpDirection) + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, PinId, FALSE, FALSE, &NodeConnectionCount, &NodeConnection); + else + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, PinId, FALSE, TRUE, &NodeConnectionCount, &NodeConnection); + + for(Index = 0; Index < NodeConnectionCount; Index++) + { + /* get all associated controls */ + Status = MMixerGetControlsFromPinByConnectionIndex(MixerContext, NodeConnections, NodeTypes, bUpDirection, NodeConnection[Index], Nodes); + } + + MixerContext->Free(NodeConnection); + + return Status; +} + + + + +MIXER_STATUS +MMixerAddMixerSourceLines( + IN PMIXER_CONTEXT MixerContext, + IN OUT LPMIXER_INFO MixerInfo, + IN HANDLE hDevice, + IN PKSMULTIPLE_ITEM NodeConnections, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG PinsCount, + IN ULONG BridgePinIndex, + IN ULONG TargetPinIndex, + IN PULONG Pins) +{ + ULONG Index; + + for(Index = PinsCount; Index > 0; Index--) + { + if (Pins[Index-1]) + { + MMixerAddMixerSourceLine(MixerContext, MixerInfo, hDevice, NodeConnections, NodeTypes, Index-1, (Index -1 == BridgePinIndex), (Index -1 == TargetPinIndex)); + } + } + return MM_STATUS_SUCCESS; +} + + +MIXER_STATUS +MMixerHandlePhysicalConnection( + IN PMIXER_CONTEXT MixerContext, + IN OUT LPMIXER_INFO MixerInfo, + IN ULONG bInput, + IN PKSPIN_PHYSICALCONNECTION OutConnection) +{ + PULONG PinsRef = NULL, PinConnectionIndex = NULL, PinsSrcRef; + ULONG PinsRefCount, Index, PinConnectionIndexCount; + MIXER_STATUS Status; + HANDLE hDevice = NULL; + PFILE_OBJECT FileObject = NULL; + PKSMULTIPLE_ITEM NodeTypes = NULL; + PKSMULTIPLE_ITEM NodeConnections = NULL; + PULONG MixerControls; + ULONG MixerControlsCount; + + + // open the connected filter + Status = MixerContext->Open(OutConnection->SymbolicLinkName, &hDevice); + if (Status != MM_STATUS_SUCCESS) + { + DPRINT1("OpenDevice failed with %x\n", Status); + return Status; + } + + // get connected filter pin count + PinsRefCount = MMixerGetFilterPinCount(MixerContext, hDevice); + ASSERT(PinsRefCount); + + PinsRef = (PULONG)MixerContext->Alloc(sizeof(ULONG) * PinsRefCount); + if (!PinsRef) + { + // no memory + MixerContext->Close(hDevice); + return MM_STATUS_UNSUCCESSFUL; + } + + // get topology node types + Status = MMixerGetFilterTopologyProperty(MixerContext, hDevice, KSPROPERTY_TOPOLOGY_NODES, &NodeTypes); + if (Status != MM_STATUS_SUCCESS) + { + MixerContext->Close(hDevice); + MixerContext->Free(PinsRef); + return Status; + } + + // get topology connections + Status = MMixerGetFilterTopologyProperty(MixerContext, hDevice, KSPROPERTY_TOPOLOGY_CONNECTIONS, &NodeConnections); + if (Status != MM_STATUS_SUCCESS) + { + MixerContext->Close(hDevice); + MixerContext->Free(PinsRef); + MixerContext->Free(NodeTypes); + return Status; + } + // gets connection index of the bridge pin which connects to a node + DPRINT("Pin %u\n", OutConnection->Pin); + + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, OutConnection->Pin, FALSE, !bInput, &PinConnectionIndexCount, &PinConnectionIndex); + if (Status != MM_STATUS_SUCCESS) + { + MixerContext->Close(hDevice); + MixerContext->Free(PinsRef); + MixerContext->Free(NodeTypes); + MixerContext->Free(NodeConnections); + return Status; + } + + /* there should be no split in the bride pin */ + ASSERT(PinConnectionIndexCount == 1); + + /* find all target pins of this connection */ + Status = MMixerGetTargetPinsByNodeConnectionIndex(MixerContext, NodeConnections, NodeTypes, FALSE, PinConnectionIndex[0], PinsRef); + if (Status != MM_STATUS_SUCCESS) + { + MixerContext->Close(hDevice); + MixerContext->Free(PinsRef); + MixerContext->Free(NodeTypes); + MixerContext->Free(NodeConnections); + MixerContext->Free(PinConnectionIndex); + return Status; + } + + for(Index = 0; Index < PinsRefCount; Index++) + { + if (PinsRef[Index]) + { + // found a target pin, now get all references + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, Index, FALSE, FALSE, &MixerControlsCount, &MixerControls); + if (Status != MM_STATUS_SUCCESS) + break; + + /* sanity check */ + ASSERT(MixerControlsCount == 1); + + PinsSrcRef = (PULONG)MixerContext->Alloc(PinsRefCount * sizeof(ULONG)); + if (!PinsSrcRef) + { + /* no memory */ + MixerContext->Close(hDevice); + MixerContext->Free(PinsRef); + MixerContext->Free(NodeTypes); + MixerContext->Free(NodeConnections); + MixerContext->Free(PinConnectionIndex); + MixerContext->Free(MixerControls); + return MM_STATUS_NO_MEMORY; + } + + // now get all connected source pins + Status = MMixerGetTargetPinsByNodeConnectionIndex(MixerContext, NodeConnections, NodeTypes, TRUE, MixerControls[0], PinsSrcRef); + if (Status != MM_STATUS_SUCCESS) + { + // failed */ + MixerContext->Close(hDevice); + MixerContext->Free(PinsRef); + MixerContext->Free(NodeTypes); + MixerContext->Free(NodeConnections); + MixerContext->Free(PinConnectionIndex); + MixerContext->Free(MixerControls); + MixerContext->Free(PinsSrcRef); + return Status; + } + + /* add pins from target line */ + if (!bInput) + { + // dont add bridge pin for input mixers + PinsSrcRef[Index] = TRUE; + PinsSrcRef[OutConnection->Pin] = TRUE; + } + PinsSrcRef[OutConnection->Pin] = TRUE; + + Status = MMixerAddMixerSourceLines(MixerContext, MixerInfo, FileObject, NodeConnections, NodeTypes, PinsRefCount, OutConnection->Pin, Index, PinsSrcRef); + + MixerContext->Free(MixerControls); + MixerContext->Free(PinsSrcRef); + } + } + + return Status; +} + + +MIXER_STATUS +MMixerInitializeFilter( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer, + IN LPWSTR DeviceName, + IN PKSMULTIPLE_ITEM NodeTypes, + IN PKSMULTIPLE_ITEM NodeConnections, + IN ULONG PinCount, + IN ULONG NodeIndex, + IN ULONG bInputMixer) +{ + LPMIXER_INFO MixerInfo; + MIXER_STATUS Status; + PKSPIN_PHYSICALCONNECTION OutConnection; + ULONG Index; + ULONG * Pins; + + // allocate a mixer info struct + MixerInfo = (LPMIXER_INFO) MixerContext->Alloc(sizeof(MIXER_INFO)); + if (!MixerInfo) + { + // no memory + return MM_STATUS_NO_MEMORY; + } + + // intialize mixer caps */ + MixerInfo->MixCaps.wMid = MM_MICROSOFT; //FIXME + MixerInfo->MixCaps.wPid = MM_PID_UNMAPPED; //FIXME + MixerInfo->MixCaps.vDriverVersion = 1; //FIXME + MixerInfo->MixCaps.fdwSupport = 0; + MixerInfo->MixCaps.cDestinations = 1; + MixerInfo->hMixer = hMixer; + + // initialize line list + InitializeListHead(&MixerInfo->LineList); + + /* FIXME find mixer name */ + + Status = MMixerCreateDestinationLine(MixerContext, MixerInfo, bInputMixer); + if (Status != MM_STATUS_SUCCESS) + { + // failed to create destination line + MixerContext->Free(MixerInfo); + return Status; + } + + + // now allocate an array which will receive the indices of the pin + // which has a ADC / DAC nodetype in its path + Pins = (PULONG)MixerContext->Alloc(PinCount * sizeof(ULONG)); + + if (!Pins) + { + // no memory + MMixerFreeMixerInfo(MixerContext, MixerInfo); + return MM_STATUS_NO_MEMORY; + } + + // now get the target pins of the ADC / DAC node + Status = MMixerGetTargetPins(MixerContext, NodeTypes, NodeConnections, NodeIndex, bInputMixer, Pins, PinCount); + + if (Status != MM_STATUS_SUCCESS) + { + // failed to locate target pins + MixerContext->Free(Pins); + MMixerFreeMixerInfo(MixerContext, MixerInfo); + return Status; + } + + // now check all pins and generate new lines for destination lines + for(Index = 0; Index < PinCount; Index++) + { + // is the current index a target pin + if (Pins[Index]) + { + // check if the pin has a physical connection + Status = MMixerGetPhysicalConnection(MixerContext, hMixer, Index, &OutConnection); + if (Status != MM_STATUS_SUCCESS) + { + // the pin has a physical connection + Status = MMixerHandlePhysicalConnection(MixerContext, MixerInfo, bInputMixer, OutConnection); + + MixerContext->Free(OutConnection); + } + } + } + MixerContext->Free(Pins); + + //FIXME + // store MixerInfo in context + + + // done + return Status; +} + +MIXER_STATUS +MMixerSetupFilter( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer, + IN PULONG DeviceCount, + IN LPWSTR DeviceName) +{ + PKSMULTIPLE_ITEM NodeTypes, NodeConnections; + MIXER_STATUS Status; + ULONG PinCount; + ULONG NodeIndex; + + // get number of pins + PinCount = MMixerGetFilterPinCount(MixerContext, hMixer); + ASSERT(PinCount); + + + // get filter node types + Status = MMixerGetFilterTopologyProperty(MixerContext, hMixer, KSPROPERTY_TOPOLOGY_NODES, &NodeTypes); + if (Status != MM_STATUS_SUCCESS) + { + // failed + return Status; + } + + // get filter node connections + Status = MMixerGetFilterTopologyProperty(MixerContext, hMixer, KSPROPERTY_TOPOLOGY_CONNECTIONS, &NodeConnections); + if (Status != MM_STATUS_SUCCESS) + { + // failed + MixerContext->Free(NodeTypes); + return Status; + } + + // check if the filter has an wave out node + NodeIndex = MMixerGetIndexOfGuid(NodeTypes, &KSNODETYPE_DAC); + if (NodeIndex != MAXULONG) + { + // it has + Status = MMixerInitializeFilter(MixerContext, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, FALSE); + + // check for success + if (Status == MM_STATUS_SUCCESS) + { + // increment mixer count + (*DeviceCount)++; + } + + } + + // check if the filter has an wave in node + NodeIndex = MMixerGetIndexOfGuid(NodeTypes, &KSNODETYPE_ADC); + if (NodeIndex != MAXULONG) + { + // it has + Status = MMixerInitializeFilter(MixerContext, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, TRUE); + + // check for success + if (Status == MM_STATUS_SUCCESS) + { + // increment mixer count + (*DeviceCount)++; + } + + } + + //free resources + MixerContext->Free((PVOID)NodeTypes); + MixerContext->Free((PVOID)NodeConnections); + + // done + return Status; +} Propchange: trunk/reactos/lib/drivers/sound/mmixer/controls.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/drivers/sound/mmixer/filter.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/f…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/filter.c (added) +++ trunk/reactos/lib/drivers/sound/mmixer/filter.c [iso-8859-1] Tue Dec 8 22:10:02 2009 @@ -1,0 +1,207 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Kernel Streaming + * FILE: lib/drivers/sound/mmixer/filter.c + * PURPOSE: Mixer Filter Functions + * PROGRAMMER: Johannes Anderwald + */ + + + +#include "priv.h" + +ULONG +MMixerGetFilterPinCount( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer) +{ + KSPROPERTY Pin; + MIXER_STATUS Status; + ULONG NumPins, BytesReturned; + + // setup property request + Pin.Flags = KSPROPERTY_TYPE_GET; + Pin.Set = KSPROPSETID_Pin; + Pin.Id = KSPROPERTY_PIN_CTYPES; + + // query pin count + Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Pin, sizeof(KSPROPERTY), (PVOID)&NumPins, sizeof(ULONG), (PULONG)&BytesReturned); + + // check for success + if (Status != MM_STATUS_SUCCESS) + return 0; + + return NumPins; +} + +MIXER_STATUS +MMixerGetFilterTopologyProperty( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer, + IN ULONG PropertyId, + OUT PKSMULTIPLE_ITEM * OutMultipleItem) +{ + KSPROPERTY Property; + PKSMULTIPLE_ITEM MultipleItem; + MIXER_STATUS Status; + ULONG BytesReturned; + + // setup property request + Property.Id = PropertyId; + Property.Flags = KSPROPERTY_TYPE_GET; + Property.Set = KSPROPSETID_Topology; + + // query for the size + Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), NULL, 0, &BytesReturned); + + if (Status != MM_STATUS_MORE_ENTRIES) + return Status; + + // allocate an result buffer + MultipleItem = (PKSMULTIPLE_ITEM)MixerContext->Alloc(BytesReturned); + + if (!MultipleItem) + { + // not enough memory + return MM_STATUS_NO_MEMORY; + } + + // query again with allocated buffer + Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)MultipleItem, BytesReturned, &BytesReturned); + + if (Status != MM_STATUS_SUCCESS) + { + // failed + MixerContext->Free((PVOID)MultipleItem); + return Status; + } + + // store result + *OutMultipleItem = MultipleItem; + + // done + return Status; +} + +MIXER_STATUS +MMixerGetPhysicalConnection( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer, + IN ULONG PinId, + OUT PKSPIN_PHYSICALCONNECTION *OutConnection) +{ + KSP_PIN Pin; + MIXER_STATUS Status; + ULONG BytesReturned; + PKSPIN_PHYSICALCONNECTION Connection; + + /* setup the request */ + Pin.Property.Flags = KSPROPERTY_TYPE_GET; + Pin.Property.Id = KSPROPERTY_PIN_PHYSICALCONNECTION; + Pin.Property.Set = KSPROPSETID_Pin; + Pin.PinId = PinId; + + /* query the pin for the physical connection */ + Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Pin, sizeof(KSP_PIN), NULL, 0, &BytesReturned); + + if (Status == MM_STATUS_UNSUCCESSFUL) + { + // pin does not have a physical connection + return Status; + } + + Connection = (PKSPIN_PHYSICALCONNECTION)MixerContext->Alloc(BytesReturned); + if (!Connection) + { + // not enough memory + return MM_STATUS_NO_MEMORY; + } + + // query the pin for the physical connection + Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Pin, sizeof(KSP_PIN), (PVOID)Connection, BytesReturned, &BytesReturned); + if (Status != MM_STATUS_SUCCESS) + { + // failed to query the physical connection + MixerContext->Free(Connection); + return Status; + } + + // store connection + *OutConnection = Connection; + return Status; +} + +ULONG +MMixerGetControlTypeFromTopologyNode( + IN LPGUID NodeType) +{ + if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_AGC)) + { + // automatic gain control + return MIXERCONTROL_CONTROLTYPE_ONOFF; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_LOUDNESS)) + { + // loudness control + return MIXERCONTROL_CONTROLTYPE_LOUDNESS; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_MUTE )) + { + // mute control + return MIXERCONTROL_CONTROLTYPE_MUTE; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_TONE)) + { + // tpne control + //FIXME + // MIXERCONTROL_CONTROLTYPE_ONOFF if KSPROPERTY_AUDIO_BASS_BOOST is supported + // MIXERCONTROL_CONTROLTYPE_BASS if KSPROPERTY_AUDIO_BASS is supported + // MIXERCONTROL_CONTROLTYPE_TREBLE if KSPROPERTY_AUDIO_TREBLE is supported + UNIMPLEMENTED; + return MIXERCONTROL_CONTROLTYPE_ONOFF; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_VOLUME)) + { + // volume control + return MIXERCONTROL_CONTROLTYPE_VOLUME; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_PEAKMETER)) + { + // peakmeter control + return MIXERCONTROL_CONTROLTYPE_PEAKMETER; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_MUX)) + { + // mux control + return MIXERCONTROL_CONTROLTYPE_MUX; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_MUX)) + { + // mux control + return MIXERCONTROL_CONTROLTYPE_MUX; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_STEREO_WIDE)) + { + // stero wide control + return MIXERCONTROL_CONTROLTYPE_FADER; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_CHORUS)) + { + // chorus control + return MIXERCONTROL_CONTROLTYPE_FADER; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_REVERB)) + { + // reverb control + return MIXERCONTROL_CONTROLTYPE_FADER; + } + else if (IsEqualGUIDAligned(NodeType, (LPGUID)&KSNODETYPE_SUPERMIX)) + { + // supermix control + // MIXERCONTROL_CONTROLTYPE_MUTE if KSPROPERTY_AUDIO_MUTE is supported + UNIMPLEMENTED; + return MIXERCONTROL_CONTROLTYPE_VOLUME; + } + UNIMPLEMENTED + return 0; +} Propchange: trunk/reactos/lib/drivers/sound/mmixer/filter.c ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/lib/drivers/sound/mmixer/mixer.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/m…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/mixer.c [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/mixer.c [iso-8859-1] Tue Dec 8 22:10:02 2009 @@ -11,311 +11,8 @@ #include "priv.h" MIXER_STATUS -MMixerVerifyContext( - IN PMIXER_CONTEXT MixerContext) -{ - if (MixerContext->SizeOfStruct != sizeof(MIXER_CONTEXT)) - return MM_STATUS_INVALID_PARAMETER; - - if (!MixerContext->Alloc || !MixerContext->Control || !MixerContext->Free) - return MM_STATUS_INVALID_PARAMETER; - - if (!MixerContext->MixerContext) - return MM_STATUS_INVALID_PARAMETER; - - return MM_STATUS_SUCCESS; -} - -VOID -MMixerFreeMixerInfo( +MMixerInitialize( IN PMIXER_CONTEXT MixerContext, - IN LPMIXER_INFO MixerInfo) -{ - //UNIMPLEMENTED - // FIXME - // free all lines - - MixerContext->Free((PVOID)MixerInfo); -} - -ULONG -MMixerGetFilterPinCount( - IN PMIXER_CONTEXT MixerContext, - IN HANDLE hMixer) -{ - KSPROPERTY Pin; - MIXER_STATUS Status; - ULONG NumPins, BytesReturned; - - // setup property request - Pin.Flags = KSPROPERTY_TYPE_GET; - Pin.Set = KSPROPSETID_Pin; - Pin.Id = KSPROPERTY_PIN_CTYPES; - - // query pin count - Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Pin, sizeof(KSPROPERTY), (PVOID)&NumPins, sizeof(ULONG), (PULONG)&BytesReturned); - - // check for success - if (Status != MM_STATUS_SUCCESS) - return 0; - - return NumPins; -} - -ULONG -MMixerGetIndexOfGuid( - PKSMULTIPLE_ITEM MultipleItem, - LPCGUID NodeType) -{ - ULONG Index; - LPGUID Guid; - - Guid = (LPGUID)(MultipleItem+1); - - /* iterate through node type array */ - for(Index = 0; Index < MultipleItem->Count; Index++) - { - if (IsEqualGUIDAligned(NodeType, Guid)) - { - /* found matching guid */ - return Index; - } - Guid++; - } - return MAXULONG; -} - - -MIXER_STATUS -MMixerGetFilterTopologyProperty( - IN PMIXER_CONTEXT MixerContext, - IN HANDLE hMixer, - IN ULONG PropertyId, - OUT PKSMULTIPLE_ITEM * OutMultipleItem) -{ - KSPROPERTY Property; - PKSMULTIPLE_ITEM MultipleItem; - MIXER_STATUS Status; - ULONG BytesReturned; - - // setup property request - Property.Id = PropertyId; - Property.Flags = KSPROPERTY_TYPE_GET; - Property.Set = KSPROPSETID_Topology; - - // query for the size - Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), NULL, 0, &BytesReturned); - - if (Status != MM_STATUS_MORE_ENTRIES) - return Status; - - // allocate an result buffer - MultipleItem = (PKSMULTIPLE_ITEM)MixerContext->Alloc(BytesReturned); - - if (!MultipleItem) - { - // not enough memory - return MM_STATUS_NO_MEMORY; - } - - // query again with allocated buffer - Status = MixerContext->Control(hMixer, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), (PVOID)MultipleItem, BytesReturned, &BytesReturned); - - if (Status != MM_STATUS_SUCCESS) - { - // failed - MixerContext->Free((PVOID)MultipleItem); - return Status; - } - - // store result - *OutMultipleItem = MultipleItem; - - // done - return Status; -} - -MIXER_STATUS -MMixerCreateDestinationLine( - IN PMIXER_CONTEXT MixerContext, - IN LPMIXER_INFO MixerInfo, - IN ULONG bInputMixer) -{ - LPMIXERLINE_EXT DestinationLine; - - // allocate a mixer destination line - DestinationLine = (LPMIXERLINE_EXT) MixerContext->Alloc(sizeof(MIXERLINE_EXT)); - if (!MixerInfo) - { - // no memory - return MM_STATUS_NO_MEMORY; - } - - /* initialize mixer destination line */ - DestinationLine->Line.cbStruct = sizeof(MIXERLINEW); - DestinationLine->Line.dwSource = MAXULONG; - DestinationLine->Line.dwLineID = DESTINATION_LINE; - DestinationLine->Line.fdwLine = MIXERLINE_LINEF_ACTIVE; - DestinationLine->Line.dwUser = 0; - DestinationLine->Line.dwComponentType = (bInputMixer == 0 ? MIXERLINE_COMPONENTTYPE_DST_SPEAKERS : MIXERLINE_COMPONENTTYPE_DST_WAVEIN); - DestinationLine->Line.cChannels = 2; //FIXME - wcscpy(DestinationLine->Line.szShortName, L"Summe"); //FIXME - wcscpy(DestinationLine->Line.szName, L"Summe"); //FIXME - DestinationLine->Line.Target.dwType = (bInputMixer == 0 ? MIXERLINE_TARGETTYPE_WAVEOUT : MIXERLINE_TARGETTYPE_WAVEIN); - DestinationLine->Line.Target.dwDeviceID = !bInputMixer; - DestinationLine->Line.Target.wMid = MixerInfo->MixCaps.wMid; - DestinationLine->Line.Target.wPid = MixerInfo->MixCaps.wPid; - DestinationLine->Line.Target.vDriverVersion = MixerInfo->MixCaps.vDriverVersion; - wcscpy(DestinationLine->Line.Target.szPname, MixerInfo->MixCaps.szPname); - - - // insert into mixer info - InsertHeadList(&MixerInfo->LineList, &DestinationLine->Entry); - - // done - return MM_STATUS_SUCCESS; -} - -MIXER_STATUS -MMixerInitializeFilter( - IN PMIXER_CONTEXT MixerContext, - IN HANDLE hMixer, - IN LPWSTR DeviceName, - IN PKSMULTIPLE_ITEM NodeTypes, - IN PKSMULTIPLE_ITEM NodeConnections, - IN ULONG PinCount, - IN ULONG NodeIndex, - IN ULONG bInputMixer) -{ - LPMIXER_INFO MixerInfo; - MIXER_STATUS Status; - ULONG * Pins; - - // allocate a mixer info struct - MixerInfo = (LPMIXER_INFO) MixerContext->Alloc(sizeof(MIXER_INFO)); - if (!MixerInfo) - { - // no memory - return MM_STATUS_NO_MEMORY; - } - - // intialize mixer caps */ - MixerInfo->MixCaps.wMid = MM_MICROSOFT; //FIXME - MixerInfo->MixCaps.wPid = MM_PID_UNMAPPED; //FIXME - MixerInfo->MixCaps.vDriverVersion = 1; //FIXME - MixerInfo->MixCaps.fdwSupport = 0; - MixerInfo->MixCaps.cDestinations = 1; - MixerInfo->hMixer = hMixer; - - // initialize line list - InitializeListHead(&MixerInfo->LineList); - - /* FIXME find mixer name */ - - Status = MMixerCreateDestinationLine(MixerContext, MixerInfo, bInputMixer); - if (Status != MM_STATUS_SUCCESS) - { - // failed to create destination line - MixerContext->Free(MixerInfo); - return Status; - } - - - // now allocate an array which will receive the indices of the pin - // which has a ADC / DAC nodetype in its path - Pins = (PULONG)MixerContext->Alloc(PinCount * sizeof(ULONG)); - - if (!Pins) - { - // no memory - MMixerFreeMixerInfo(MixerContext, MixerInfo); - return MM_STATUS_NO_MEMORY; - } - - - //UNIMPLEMENTED - // get target pins and find all nodes - return MM_STATUS_NOT_IMPLEMENTED; -} - -MIXER_STATUS -MMixerSetupFilter( - IN PMIXER_CONTEXT MixerContext, - IN HANDLE hMixer, - IN PULONG DeviceCount, - IN LPWSTR DeviceName) -{ - PKSMULTIPLE_ITEM NodeTypes, NodeConnections; - MIXER_STATUS Status; - ULONG PinCount; - ULONG NodeIndex; - - // get number of pins - PinCount = MMixerGetFilterPinCount(MixerContext, hMixer); - ASSERT(PinCount); - - - // get filter node types - Status = MMixerGetFilterTopologyProperty(MixerContext, hMixer, KSPROPERTY_TOPOLOGY_NODES, &NodeTypes); - if (Status != MM_STATUS_SUCCESS) - { - // failed - return Status; - } - - // get filter node connections - Status = MMixerGetFilterTopologyProperty(MixerContext, hMixer, KSPROPERTY_TOPOLOGY_CONNECTIONS, &NodeConnections); - if (Status != MM_STATUS_SUCCESS) - { - // failed - MixerContext->Free(NodeTypes); - return Status; - } - - // check if the filter has an wave out node - NodeIndex = MMixerGetIndexOfGuid(NodeTypes, &KSNODETYPE_DAC); - if (NodeIndex != MAXULONG) - { - // it has - Status = MMixerInitializeFilter(MixerContext, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, FALSE); - - // check for success - if (Status == MM_STATUS_SUCCESS) - { - // increment mixer count - (*DeviceCount)++; - } - - } - - // check if the filter has an wave in node - NodeIndex = MMixerGetIndexOfGuid(NodeTypes, &KSNODETYPE_ADC); - if (NodeIndex != MAXULONG) - { - // it has - Status = MMixerInitializeFilter(MixerContext, hMixer, DeviceName, NodeTypes, NodeConnections, PinCount, NodeIndex, TRUE); - - // check for success - if (Status == MM_STATUS_SUCCESS) - { - // increment mixer count - (*DeviceCount)++; - } - - } - - //free resources - MixerContext->Free((PVOID)NodeTypes); - MixerContext->Free((PVOID)NodeConnections); - - // done - return Status; -} - - -MIXER_STATUS -MMixerInitialize( - IN PMIXER_CONTEXT MixerContext, IN PMIXER_ENUM EnumFunction, IN PVOID EnumContext) { Modified: trunk/reactos/lib/drivers/sound/mmixer/mmixer.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/m…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/mmixer.h [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/mmixer.h [iso-8859-1] Tue Dec 8 22:10:02 2009 @@ -37,7 +37,12 @@ ULONG nOutBufferSize, PULONG lpBytesReturned); +typedef MIXER_STATUS(*PMIXER_OPEN)( + IN LPCWSTR DevicePath, + OUT PHANDLE hDevice); +typedef MIXER_STATUS(*PMIXER_CLOSE)( + IN HANDLE hDevice); typedef VOID (*PMIXER_EVENT)( IN PVOID MixerEvent); @@ -51,6 +56,8 @@ PMIXER_ALLOC Alloc; PMIXER_DEVICE_CONTROL Control; PMIXER_FREE Free; + PMIXER_OPEN Open; + PMIXER_CLOSE Close; }MIXER_CONTEXT, *PMIXER_CONTEXT; Modified: trunk/reactos/lib/drivers/sound/mmixer/mmixer.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/m…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/mmixer.rbuild [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/mmixer.rbuild [iso-8859-1] Tue Dec 8 22:10:02 2009 @@ -3,5 +3,8 @@ <module name="mmixer" type="staticlibrary" allowwarnings="false" unicode="yes"> <include base="ReactOS">include/reactos/libs/sound</include> <define name="NDEBUG">1</define> + <file>controls.c</file> + <file>filter.c</file> <file>mixer.c</file> + <file>sup.c</file> </module> Modified: trunk/reactos/lib/drivers/sound/mmixer/priv.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/p…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/priv.h [iso-8859-1] (original) +++ trunk/reactos/lib/drivers/sound/mmixer/priv.h [iso-8859-1] Tue Dec 8 22:10:02 2009 @@ -14,6 +14,8 @@ #include "mmixer.h" +#include <debug.h> + typedef struct { MIXERCAPSW MixCaps; @@ -26,13 +28,124 @@ { LIST_ENTRY Entry; ULONG PinId; - ULONG DeviceIndex; + HANDLE hDevice; MIXERLINEW Line; LPMIXERCONTROLW LineControls; PULONG NodeIds; LIST_ENTRY LineControlsExtraData; }MIXERLINE_EXT, *LPMIXERLINE_EXT; +typedef struct +{ + LIST_ENTRY Entry; + ULONG dwControlID; +}MIXERCONTROL_DATA, *LPMIXERCONTROL_DATA; + +typedef struct +{ + MIXERCONTROL_DATA Header; + LONG SignedMinimum; + LONG SignedMaximum; + LONG SteppingDelta; + ULONG InputSteppingDelta; + ULONG ValuesCount; + PLONG Values; +}MIXERVOLUME_DATA, *LPMIXERVOLUME_DATA; + + #define DESTINATION_LINE 0xFFFF0000 +ULONG +MMixerGetFilterPinCount( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer); + +LPGUID +MMixerGetNodeType( + IN PKSMULTIPLE_ITEM MultipleItem, + IN ULONG Index); + +MIXER_STATUS +MMixerGetNodeIndexes( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM MultipleItem, + IN ULONG NodeIndex, + IN ULONG bNode, + IN ULONG bFrom, + OUT PULONG NodeReferenceCount, + OUT PULONG *NodeReference); + +PKSTOPOLOGY_CONNECTION +MMixerGetConnectionByIndex( + IN PKSMULTIPLE_ITEM MultipleItem, + IN ULONG Index); + +ULONG +MMixerGetControlTypeFromTopologyNode( + IN LPGUID NodeType); + +LPMIXERLINE_EXT +MMixerGetSourceMixerLineByLineId( + LPMIXER_INFO MixerInfo, + DWORD dwLineID); + +MIXER_STATUS +MMixerGetFilterTopologyProperty( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer, + IN ULONG PropertyId, + OUT PKSMULTIPLE_ITEM * OutMultipleItem); + +VOID +MMixerFreeMixerInfo( + IN PMIXER_CONTEXT MixerContext, + IN LPMIXER_INFO MixerInfo); + +MIXER_STATUS +MMixerGetTargetPins( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM NodeTypes, + IN PKSMULTIPLE_ITEM NodeConnections, + IN ULONG NodeIndex, + IN ULONG bUpDirection, + OUT PULONG Pins, + IN ULONG PinCount); + +MIXER_STATUS +MMixerGetPhysicalConnection( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer, + IN ULONG PinId, + OUT PKSPIN_PHYSICALCONNECTION *OutConnection); + +ULONG +MMixerGetIndexOfGuid( + PKSMULTIPLE_ITEM MultipleItem, + LPCGUID NodeType); + +MIXER_STATUS +MMixerSetupFilter( + IN PMIXER_CONTEXT MixerContext, + IN HANDLE hMixer, + IN PULONG DeviceCount, + IN LPWSTR DeviceName); + +MIXER_STATUS +MMixerGetTargetPinsByNodeConnectionIndex( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM NodeConnections, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG bUpDirection, + IN ULONG NodeConnectionIndex, + OUT PULONG Pins); + +MIXER_STATUS +MMixerGetControlsFromPin( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM NodeConnections, + IN PKSMULTIPLE_ITEM NodeTypes, + IN ULONG PinId, + IN ULONG bUpDirection, + OUT PULONG Nodes); + #endif Added: trunk/reactos/lib/drivers/sound/mmixer/sup.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/sound/mmixer/s…
============================================================================== --- trunk/reactos/lib/drivers/sound/mmixer/sup.c (added) +++ trunk/reactos/lib/drivers/sound/mmixer/sup.c [iso-8859-1] Tue Dec 8 22:10:02 2009 @@ -1,0 +1,282 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Kernel Streaming + * FILE: lib/drivers/sound/mmixer/sup.c + * PURPOSE: Mixer Support Functions + * PROGRAMMER: Johannes Anderwald + */ + + + +#include "priv.h" + +MIXER_STATUS +MMixerVerifyContext( + IN PMIXER_CONTEXT MixerContext) +{ + if (MixerContext->SizeOfStruct != sizeof(MIXER_CONTEXT)) + return MM_STATUS_INVALID_PARAMETER; + + if (!MixerContext->Alloc || !MixerContext->Control || !MixerContext->Free) + return MM_STATUS_INVALID_PARAMETER; + + if (!MixerContext->MixerContext) + return MM_STATUS_INVALID_PARAMETER; + + return MM_STATUS_SUCCESS; +} + +VOID +MMixerFreeMixerInfo( + IN PMIXER_CONTEXT MixerContext, + IN LPMIXER_INFO MixerInfo) +{ + //UNIMPLEMENTED + // FIXME + // free all lines + + MixerContext->Free((PVOID)MixerInfo); +} + +LPMIXERLINE_EXT +MMixerGetSourceMixerLineByLineId( + LPMIXER_INFO MixerInfo, + DWORD dwLineID) +{ + PLIST_ENTRY Entry; + LPMIXERLINE_EXT MixerLineSrc; + + /* get first entry */ + Entry = MixerInfo->LineList.Flink; + + while(Entry != &MixerInfo->LineList) + { + MixerLineSrc = (LPMIXERLINE_EXT)CONTAINING_RECORD(Entry, MIXERLINE_EXT, Entry); + DPRINT("dwLineID %x dwLineID %x\n", MixerLineSrc->Line.dwLineID, dwLineID); + if (MixerLineSrc->Line.dwLineID == dwLineID) + return MixerLineSrc; + + Entry = Entry->Flink; + } + + return NULL; +} + +ULONG +MMixerGetIndexOfGuid( + PKSMULTIPLE_ITEM MultipleItem, + LPCGUID NodeType) +{ + ULONG Index; + LPGUID Guid; + + Guid = (LPGUID)(MultipleItem+1); + + /* iterate through node type array */ + for(Index = 0; Index < MultipleItem->Count; Index++) + { + if (IsEqualGUIDAligned(NodeType, Guid)) + { + /* found matching guid */ + return Index; + } + Guid++; + } + return MAXULONG; +} + +PKSTOPOLOGY_CONNECTION +MMixerGetConnectionByIndex( + IN PKSMULTIPLE_ITEM MultipleItem, + IN ULONG Index) +{ + PKSTOPOLOGY_CONNECTION Descriptor; + + ASSERT(Index < MultipleItem->Count); + + Descriptor = (PKSTOPOLOGY_CONNECTION)(MultipleItem + 1); + return &Descriptor[Index]; +} + +LPGUID +MMixerGetNodeType( + IN PKSMULTIPLE_ITEM MultipleItem, + IN ULONG Index) +{ + LPGUID NodeType; + + ASSERT(Index < MultipleItem->Count); + + NodeType = (LPGUID)(MultipleItem + 1); + return &NodeType[Index]; +} + +MIXER_STATUS +MMixerGetNodeIndexes( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM MultipleItem, + IN ULONG NodeIndex, + IN ULONG bNode, + IN ULONG bFrom, + OUT PULONG NodeReferenceCount, + OUT PULONG *NodeReference) +{ + ULONG Index, Count = 0; + PKSTOPOLOGY_CONNECTION Connection; + PULONG Refs; + + // KSMULTIPLE_ITEM is followed by several KSTOPOLOGY_CONNECTION + Connection = (PKSTOPOLOGY_CONNECTION)(MultipleItem + 1); + + // first count all referenced nodes + for(Index = 0; Index < MultipleItem->Count; Index++) + { + if (bNode) + { + if (bFrom) + { + if (Connection->FromNode == NodeIndex) + { + // node id has a connection + Count++; + } + } + else + { + if (Connection->ToNode == NodeIndex) + { + // node id has a connection + Count++; + } + } + } + else + { + if (bFrom) + { + if (Connection->FromNodePin == NodeIndex && Connection->FromNode == KSFILTER_NODE) + { + // node id has a connection + Count++; + } + } + else + { + if (Connection->ToNodePin == NodeIndex && Connection->ToNode == KSFILTER_NODE) + { + // node id has a connection + Count++; + } + } + } + + + // move to next connection + Connection++; + } + + ASSERT(Count != 0); + + /* now allocate node index array */ + Refs = (PULONG)MixerContext->Alloc(sizeof(ULONG) * Count); + if (!Refs) + { + // not enough memory + return MM_STATUS_NO_MEMORY; + } + + Count = 0; + Connection = (PKSTOPOLOGY_CONNECTION)(MultipleItem + 1); + for(Index = 0; Index < MultipleItem->Count; Index++) + { + if (bNode) + { + if (bFrom) + { + if (Connection->FromNode == NodeIndex) + { + /* node id has a connection */ + Refs[Count] = Index; + Count++; + } + } + else + { + if (Connection->ToNode == NodeIndex) + { + /* node id has a connection */ + Refs[Count] = Index; + Count++; + } + } + } + else + { + if (bFrom) + { + if (Connection->FromNodePin == NodeIndex && Connection->FromNode == KSFILTER_NODE) + { + /* node id has a connection */ + Refs[Count] = Index; + Count++; + } + } + else + { + if (Connection->ToNodePin == NodeIndex && Connection->ToNode == KSFILTER_NODE) + { + /* node id has a connection */ + Refs[Count] = Index; + Count++; + } + } + } + + /* move to next connection */ + Connection++; + } + + /* store result */ + *NodeReference = Refs; + *NodeReferenceCount = Count; + + return MM_STATUS_SUCCESS; +} + +MIXER_STATUS +MMixerGetTargetPins( + IN PMIXER_CONTEXT MixerContext, + IN PKSMULTIPLE_ITEM NodeTypes, + IN PKSMULTIPLE_ITEM NodeConnections, + IN ULONG NodeIndex, + IN ULONG bUpDirection, + OUT PULONG Pins, + IN ULONG PinCount) +{ + ULONG NodeConnectionCount, Index; + MIXER_STATUS Status; + PULONG NodeConnection; + + // sanity check */ + ASSERT(NodeIndex != (ULONG)-1); + + /* get all node indexes referenced by that pin */ + if (bUpDirection) + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, NodeIndex, TRUE, FALSE, &NodeConnectionCount, &NodeConnection); + else + Status = MMixerGetNodeIndexes(MixerContext, NodeConnections, NodeIndex, TRUE, TRUE, &NodeConnectionCount, &NodeConnection); + + //DPRINT("NodeIndex %u Status %x Count %u\n", NodeIndex, Status, NodeConnectionCount); + + if (Status == MM_STATUS_SUCCESS) + { + for(Index = 0; Index < NodeConnectionCount; Index++) + { + Status = MMixerGetTargetPinsByNodeConnectionIndex(MixerContext, NodeConnections, NodeTypes, bUpDirection, NodeConnection[Index], Pins); + ASSERT(Status == STATUS_SUCCESS); + } + MixerContext->Free((PVOID)NodeConnection); + } + + return Status; +} Propchange: trunk/reactos/lib/drivers/sound/mmixer/sup.c ------------------------------------------------------------------------------ svn:eol-style = native
15 years, 4 months
1
0
0
0
[dgorbachev] 44472: Update log2lines to the latest version. Jan Roeloffzen, bug #4342.
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Tue Dec 8 21:13:22 2009 New Revision: 44472 URL:
http://svn.reactos.org/svn/reactos?rev=44472&view=rev
Log: Update log2lines to the latest version. Jan Roeloffzen, bug #4342. Modified: trunk/reactos/tools/rsym/log2lines.c Modified: trunk/reactos/tools/rsym/log2lines.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rsym/log2lines.c?rev…
============================================================================== --- trunk/reactos/tools/rsym/log2lines.c [iso-8859-1] (original) +++ trunk/reactos/tools/rsym/log2lines.c [iso-8859-1] Tue Dec 8 21:13:22 2009 @@ -10,15 +10,19 @@ #include "rsym.h" -#define LOG2LINES_VERSION "1.5" +#define LOG2LINES_VERSION "1.7" #define INVALID_BASE 0xFFFFFFFFL #define DEF_OPT_DIR "output-i386" #define SOURCES_ENV "_ROSBE_ROSSOURCEDIR" +#define CACHEFILE "log2lines.cache" +#define TRKBUILDPREFIX "bootcd-" #if defined (__DJGPP__) || defined (__WIN32__) +#define POPEN _popen +#define PCLOSE _pclose #define DEV_NULL "NUL" #define DOS_PATHS #define PATH_CHAR '\\' @@ -33,6 +37,8 @@ #include <limits.h> #define MAX_PATH PATH_MAX +#define POPEN popen +#define PCLOSE pclose #define DEV_NULL "/dev/null" #define UNIX_PATHS #define PATH_CHAR '/' @@ -46,11 +52,11 @@ #define CP_FMT CP_CMD "%s %s > " DEV_NULL #define CMD_7Z "7z" -//#define UNZIP_FMT_7Z "%s e -y %s -o%s > " DEV_NULL -#define UNZIP_FMT_7Z "%s e -y %s -o%s" +#define UNZIP_FMT_7Z "%s e -y %s -o%s > " DEV_NULL #define UNZIP_FMT "%s x -y -r %s -o%s > " DEV_NULL #define UNZIP_FMT_CAB \ -"%s x -y -r %s" PATH_STR "reactos" PATH_STR "reactos.cab -o%s" PATH_STR "reactos" PATH_STR "reactos > " DEV_NULL +"%s x -y -r %s" PATH_STR "reactos" PATH_STR "reactos.cab -o%s" \ +PATH_STR "reactos" PATH_STR "reactos > " DEV_NULL #define LINESIZE 1024 #define NAMESIZE 80 @@ -60,6 +66,12 @@ fprintf(outFile, fmt, ##__VA_ARGS__); \ if (logFile) \ fprintf(logFile, fmt, ##__VA_ARGS__); \ + } + +#define l2l_dbg(level, ...) \ + { \ + if (opt_verbose >= level) \ + fprintf(stderr, ##__VA_ARGS__); \ } struct entry_struct @@ -88,6 +100,7 @@ int skipped; int diff; int majordiff; + int revconflicts; int offset_errors; int total; }; @@ -103,71 +116,166 @@ int nr2; }; +struct revinfo_struct +{ + int rev; + int buildrev; + int opt_verbose; +}; + typedef struct cache_struct CACHE; typedef struct summ_struct SUMM; typedef struct lineinfo_struct LINEINFO; +typedef struct revinfo_struct REVINFO; static CACHE cache; static SUMM summ; static LINEINFO lastLine; - -static char *optchars = "bcd:fFhl:mMrsS:tTuUvz:"; -static int opt_buffered= 0; // -b -static int opt_help = 0; // -h -static int opt_force = 0; // -f -static int opt_exit = 0; // -e -static int opt_verbose = 0; // -v -static int opt_console = 0; // -c -static int opt_mark = 0; // -m -static int opt_Mark = 0; // -M -static int opt_raw = 0; // -r -static int opt_stats = 0; // -s -static int opt_Source = 0; // -S -static int opt_twice = 0; // -t -static int opt_Twice = 0; // -T -static int opt_undo = 0; // -u -static int opt_redo = 0; // -U -static char opt_dir[MAX_PATH]; // -d -static char opt_logFile[MAX_PATH]; // -l -static char opt_7z[MAX_PATH]; // -z -static char opt_scanned[LINESIZE]; // all scanned options -static FILE *logFile = NULL; +static REVINFO revinfo; + +static char *optchars = "bcd:fFhl:mMrR:sS:tTuUvz:"; +static int opt_buffered = 0; // -b +static int opt_help = 0; // -h +static int opt_force = 0; // -f +static int opt_exit = 0; // -e +static int opt_verbose = 0; // -v +static int opt_console = 0; // -c +static int opt_mark = 0; // -m +static int opt_Mark = 0; // -M +static int opt_raw = 0; // -r +static int opt_stats = 0; // -s +static int opt_Source = 0; // -S <opt_Source>[+<opt_SrcPlus>][,<sources_path>] +static int opt_SrcPlus = 0; // -S <opt_Source>[+<opt_SrcPlus>][,<sources_path>] +static int opt_twice = 0; // -t +static int opt_Twice = 0; // -T +static int opt_undo = 0; // -u +static int opt_redo = 0; // -U +static char *opt_Revision = NULL; // -R +static char opt_dir[MAX_PATH]; // -d <opt_dir> +static char opt_logFile[MAX_PATH]; // -l <opt_logFile> +static char opt_7z[MAX_PATH]; // -z <opt_7z> +static char opt_scanned[LINESIZE]; // all scanned options +static FILE *logFile = NULL; static char *cache_name; static char *tmp_name; static char sources_path[LINESIZE]; +static int +file_exists(char *name) +{ + FILE *f; + + f = fopen(name, "r"); + if (!f) + return 0; + fclose(f); + return 1; +} + static void clearLastLine(void) { memset(&lastLine, 0, sizeof(LINEINFO)); } +static int +getRevision(char *fileName, int lastChanged) +{ + char s[LINESIZE]; + FILE *psvn; + int rev = 0; + + if (!fileName) + fileName = sources_path; + sprintf(s, "svn info %s", fileName); + if ((psvn = POPEN(s, "r"))) + { + while (fgets(s, LINESIZE, psvn)) + { + if (lastChanged) + { + if(sscanf(s,"Last Changed Rev: %d",&rev)) + break; + } + else + { + if(sscanf(s,"Revision: %d",&rev)) + break; + } + } + } + else + l2l_dbg(1,"Can't popen: \"%s\"\n", s); + + if (psvn) + PCLOSE(psvn); + + return rev; +} + +static int +getTBRevision(char *fileName) +{ + char *s; + int rev = 0; + + s = strrchr(fileName, PATH_CHAR); + if (s) + s += 1; + else + s = fileName; + + sscanf(s, TRKBUILDPREFIX "%d", &rev); + if (!rev) + { + s = strrchr(fileName, PATH_CHAR); + if (s) + *s = '\0'; // clear, so we have the parent dir + else + { + // where else to look? + fileName = sources_path; + } + rev = getRevision(fileName, 1); + if (s) + *s = PATH_CHAR; // restore + } + + l2l_dbg(1,"TBRevision: %d\n", rev); + return rev; +} + static void -log_file(FILE *outFile, char *fileName, int max ) -{ - int i = 0, min = 0; +log_file(FILE *outFile, char *fileName, int line) +{ + int i = 0, min = 0, max = 0; char s[LINESIZE]; - char p[LINESIZE]; FILE *src; - strcpy(p, sources_path); - strcat(p, fileName); - if ((src = fopen(p, "r"))) - { - min = max - opt_Source; + strcpy(s, sources_path); + strcat(s, fileName); + + max = line + opt_SrcPlus; + if ((src = fopen(s, "r"))) + { + min = line - opt_Source; min = (min < 0) ? 0 : min; while (i < max && fgets(s, LINESIZE, src)) { if (i >= min) - log(outFile, "| %4.4d %s", i + 1, s); + { + if (i == line) + log(outFile, "| ----\n"); + log(outFile, "| %4.4d %s", i+1, s); + } i++; } fclose(src); } - else if (opt_verbose) - fprintf(stderr, "Can't open: %s (check " SOURCES_ENV ")\n", p); + else + l2l_dbg(1,"Can't open: %s (check " SOURCES_ENV ")\n", s); } static void @@ -187,10 +295,61 @@ if (!opt_Source) return; if (lastLine.valid) - { logSource(outFile); - } - clearLastLine(); +} + +static void +log_rev_check(FILE *outFile, char *fileName, int showfile) +{ + int rev = 0; + char s[LINESIZE]; + + strcpy(s, sources_path); + strcat(s, fileName); + rev = getRevision(s, 1); + if (!showfile) + s[0] = '\0'; + if (revinfo.opt_verbose) + log(outFile, "| R--- %s Last Changed Rev: %d\n", s, rev); + + if (rev && opt_Revision) + { + if (revinfo.rev < revinfo.buildrev) + { + summ.revconflicts++; + log(outFile, "| R--- Conflict %s: source tree(%d) < build(%d)\n", s, rev, revinfo.buildrev); + } + else if (rev > revinfo.buildrev) + { + summ.revconflicts++; + log(outFile, "| R--- Conflict %s: file(%d) > build(%d)\n", s, rev, revinfo.buildrev); + } + } +} + +static void +logRevCheck(FILE *outFile) +{ + int twice = 0; + + twice = (lastLine.nr2 && (strcmp(lastLine.file1,lastLine.file2) != 0)); + log_rev_check(outFile, lastLine.file1, twice); + if (twice) + { + log_rev_check(outFile, lastLine.file2, twice); + } +} + +static void +reportRevision(FILE *outFile) +{ + if (!opt_Revision) + return; + if (strcmp(opt_Revision, "check") == 0) + { + if (lastLine.valid) + logRevCheck(outFile); + } } static char * @@ -200,9 +359,7 @@ base = strrchr(path, PATH_CHAR); if (base) - { return ++base; - } return path; } @@ -241,9 +398,7 @@ if (!i--) return NULL; else - { return &Entries[i]; - } } } return NULL; @@ -374,7 +529,7 @@ PEDosHeader = (PIMAGE_DOS_HEADER)FileData; if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L) { - fprintf(stderr, "Input file is not a PE image.\n"); + l2l_dbg(0, "Input file is not a PE image.\n"); summ.offset_errors++; return 1; } @@ -397,7 +552,7 @@ PERosSymSectionHeader = find_rossym_section(PEFileHeader, PESectionHeaders); if (!PERosSymSectionHeader) { - fprintf(stderr, "Couldn't find rossym section in executable\n"); + l2l_dbg(0, "Couldn't find rossym section in executable\n"); summ.offset_errors++; return 1; } @@ -405,14 +560,10 @@ if (res) { if (toString) - { - sprintf(toString, "??:0\n"); - } + sprintf(toString, "??:0"); else - { - printf("??:0\n"); - } - fprintf(stderr, "Offset not found.\n"); + printf("??:0"); + l2l_dbg(1, "Offset not found: %x\n", offset); summ.offset_errors++; } @@ -462,37 +613,22 @@ } static int -file_exists(char *name) -{ - FILE *f; - - f = fopen(name, "r"); - if (!f) - { - return 0; - } - fclose(f); - return 1; -} - -static int copy_file(char *src, char *dst) { char Line[LINESIZE]; sprintf(Line, CP_FMT, src, dst); - if (opt_verbose > 1) - fprintf(stderr, "Executing: %s\n", Line); + l2l_dbg(2, "Executing: %s\n", Line); remove(dst); if (file_exists(dst)) { - fprintf(stderr, "Cannot remove dst %s before copy\n", dst); + l2l_dbg(0, "Cannot remove dst %s before copy\n", dst); return 1; } system(Line); if (!file_exists(dst)) { - fprintf(stderr, "Dst %s does not exist after copy \n", dst); + l2l_dbg(0, "Dst %s does not exist after copy \n", dst); return 2; } return 0; @@ -508,7 +644,7 @@ FileData = load_file(file_name, &FileSize); if (!FileData) { - fprintf(stderr, "An error occured loading '%s'\n", file_name); + l2l_dbg(0, "An error occured loading '%s'\n", file_name); } else { @@ -533,16 +669,14 @@ fr = fopen(fname, "rb"); if (!fr) { - if (opt_verbose > 2) - fprintf(stderr, "get_ImageBase, cannot open '%s' (%s)\n", fname, strerror(errno)); + l2l_dbg(3, "get_ImageBase, cannot open '%s' (%s)\n", fname, strerror(errno)); return 1; } readLen = fread(&PEDosHeader, sizeof(IMAGE_DOS_HEADER), 1, fr); if (1 != readLen) { - if (opt_verbose) - fprintf(stderr, "get_ImageBase %s, read error IMAGE_DOS_HEADER (%s)\n", fname, strerror(errno)); + l2l_dbg(1, "get_ImageBase %s, read error IMAGE_DOS_HEADER (%s)\n", fname, strerror(errno)); fclose(fr); return 2; } @@ -550,8 +684,7 @@ /* Check if MZ header exists */ if (PEDosHeader.e_magic != IMAGE_DOS_MAGIC || PEDosHeader.e_lfanew == 0L) { - if (opt_verbose > 1) - fprintf(stderr, "get_ImageBase %s, MZ header missing\n", fname); + l2l_dbg(2, "get_ImageBase %s, MZ header missing\n", fname); fclose(fr); return 3; } @@ -561,8 +694,7 @@ readLen = fread(&PEFileHeader, sizeof(IMAGE_FILE_HEADER), 1, fr); if (1 != readLen) { - if (opt_verbose) - fprintf(stderr, "get_ImageBase %s, read error IMAGE_FILE_HEADER (%s)\n", fname, strerror(errno)); + l2l_dbg(1, "get_ImageBase %s, read error IMAGE_FILE_HEADER (%s)\n", fname, strerror(errno)); fclose(fr); return 4; } @@ -571,8 +703,7 @@ readLen = fread(&PEOptHeader, sizeof(IMAGE_OPTIONAL_HEADER), 1, fr); if (1 != readLen) { - if (opt_verbose) - fprintf(stderr, "get_ImageBase %s, read error IMAGE_OPTIONAL_HEADER (%s)\n", fname, strerror(errno)); + l2l_dbg(1, "get_ImageBase %s, read error IMAGE_OPTIONAL_HEADER (%s)\n", fname, strerror(errno)); fclose(fr); return 5; } @@ -581,8 +712,7 @@ if (PEOptHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC && PEOptHeader.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) { - if (opt_verbose > 1) - fprintf(stderr, "get_ImageBase %s, not an IMAGE_NT_OPTIONAL_HDR<32|64>\n", fname); + l2l_dbg(2, "get_ImageBase %s, not an IMAGE_NT_OPTIONAL_HDR<32|64>\n", fname); fclose(fr); return 6; } @@ -633,8 +763,7 @@ pentry->buf = s = malloc(l + 1); if (!s) { - if (opt_verbose) - fprintf(stderr, "Alloc entry failed\n"); + l2l_dbg(1, "Alloc entry failed\n"); return entry_delete(pentry); } @@ -646,8 +775,7 @@ s = strchr(s, '|'); if (!s) { - if (opt_verbose) - fprintf(stderr, "Name field missing\n"); + l2l_dbg(1, "Name field missing\n"); return entry_delete(pentry); } *s++ = '\0'; @@ -656,15 +784,13 @@ s = strchr(s, '|'); if (!s) { - if (opt_verbose) - fprintf(stderr, "Path field missing\n"); + l2l_dbg(1, "Path field missing\n"); return entry_delete(pentry); } *s++ = '\0'; if (1 != sscanf(s, "%x", &pentry->ImageBase)) { - if (opt_verbose) - fprintf(stderr, "ImageBase field missing\n"); + l2l_dbg(1, "ImageBase field missing\n"); return entry_delete(pentry); } return pentry; @@ -706,8 +832,7 @@ Line = malloc(LINESIZE + 1); if (!Line) { - if (opt_verbose) - fprintf(stderr, "Alloc Line failed\n"); + l2l_dbg(1, "Alloc Line failed\n"); return 1; } Line[LINESIZE] = '\0'; @@ -715,8 +840,7 @@ fr = fopen(cache_name, "r"); if (!fr) { - if (opt_verbose) - fprintf(stderr, "Open %s failed\n", cache_name); + l2l_dbg(1, "Open %s failed\n", cache_name); free(Line); return 2; } @@ -727,13 +851,10 @@ pentry = entry_create(Line); if (!pentry) { - if (opt_verbose > 1) - fprintf(stderr, "** FAILED: %s\n", Line); + l2l_dbg(2, "** Create entry failed of: %s\n", Line); } else - { entry_insert(pentry); - } } fclose(fr); @@ -751,31 +872,27 @@ if ((fw = fopen(tmp_name, "w")) == NULL) { - if (opt_verbose) - fprintf(stderr, "Apparently %s is not writable (mounted ISO?), using current dir\n", tmp_name); + l2l_dbg(1, "Apparently %s is not writable (mounted ISO?), using current dir\n", tmp_name); cache_name = basename(cache_name); tmp_name = basename(tmp_name); } else { - if (opt_verbose > 2) - fprintf(stderr, "%s is writable\n", tmp_name); + l2l_dbg(3, "%s is writable\n", tmp_name); fclose(fw); remove(tmp_name); } if (force) { - if (opt_verbose > 2) - fprintf(stderr, "Removing %s ...\n", cache_name); + l2l_dbg(3, "Removing %s ...\n", cache_name); remove(cache_name); } else { if (file_exists(cache_name)) { - if (opt_verbose > 2) - fprintf(stderr, "Cache %s already exists\n", cache_name); + l2l_dbg(3, "Cache %s already exists\n", cache_name); return 0; } } @@ -786,10 +903,11 @@ Line[LINESIZE] = '\0'; remove(tmp_name); - fprintf(stderr, "Scanning %s ...\n", opt_dir); + l2l_dbg(0, "Scanning %s ...\n", opt_dir); snprintf(Line, LINESIZE, DIR_FMT, opt_dir, tmp_name); + l2l_dbg(1, "Executing: %s\n", Line); system(Line); - fprintf(stderr, "Creating cache ..."); + l2l_dbg(0, "Creating cache ..."); if ((fr = fopen(tmp_name, "r")) != NULL) { @@ -811,20 +929,15 @@ Fname++; if (*Fname && !skipImageBase) { - if ((err = get_ImageBase(Line, &ImageBase)) != 0) - { - if (opt_verbose > 2) - fprintf(stderr, "%s|%s|%0x, ERR=%d\n", Fname, Line, ImageBase, err); - } + if ((err = get_ImageBase(Line, &ImageBase)) == 0) + fprintf(fw, "%s|%s|%0x\n", Fname, Line, ImageBase); else - { - fprintf(fw, "%s|%s|%0x\n", Fname, Line, ImageBase); - } + l2l_dbg(3, "%s|%s|%0x, ERR=%d\n", Fname, Line, ImageBase, err); } } fclose(fw); } - fprintf(stderr, "... done\n"); + l2l_dbg(0, "... done\n"); fclose(fr); } remove(tmp_name); @@ -847,9 +960,7 @@ */ dpath = path = convert_path(cpath); if (!path) - { return 1; - } // The path could be absolute: if (get_ImageBase(path, &base)) @@ -861,15 +972,13 @@ base = pentry->ImageBase; if (base == INVALID_BASE) { - if (opt_verbose) - fprintf(stderr, "No, or invalid base address: %s\n", path); + l2l_dbg(1, "No, or invalid base address: %s\n", path); res = 2; } } else { - if (opt_verbose) - fprintf(stderr, "Not found in cache: %s\n", path); + l2l_dbg(1, "Not found in cache: %s\n", path); res = 3; } } @@ -920,7 +1029,7 @@ /* Strip all lines added by this tool: */ char buf[NAMESIZE]; if (sscanf(s, "| %s", buf) == 1) - if (buf[0] == '0' || strcmp(buf, "----") == 0 || atoi(buf)) + if (buf[0] == '0' || strcmp(buf, "----") == 0 || strcmp(buf, "R---") == 0 || atoi(buf)) res = 0; } @@ -1001,6 +1110,7 @@ fprintf(outFile, "Skipped: %d\n", summ.skipped); fprintf(outFile, "Differ: %d\n", summ.diff); fprintf(outFile, "Differ (function/source): %d\n", summ.majordiff); + fprintf(outFile, "Revision conflicts: %d\n", summ.revconflicts); fprintf(outFile, "Offset error: %d\n", summ.offset_errors); fprintf(outFile, "Total: %d\n", summ.total); fprintf(outFile, "-------------------------------\n"); @@ -1037,7 +1147,9 @@ translate_line(outFile, Line, path, LineOut); i = 0; translate_char(c, outFile); + reportRevision(outFile); reportSource(outFile); + clearLastLine(); break; case '<': i = 0; @@ -1058,9 +1170,7 @@ } } else - { translate_char(c, outFile); - } i = 0; break; default: @@ -1078,15 +1188,11 @@ } } else - { translate_char(c, outFile); - } } } else - { translate_char(c, outFile); - } } } else @@ -1096,12 +1202,12 @@ if (!opt_raw) { translate_line(outFile, Line, path, LineOut); + reportRevision(outFile); reportSource(outFile); + clearLastLine(); } else - { log(outFile, "%s", Line); - } } } } @@ -1123,7 +1229,7 @@ " When <exefile> <offset> are given, log2lines works like raddr2line:\n" " - The <exefile> <offset> combination can be repeated\n" " - Also, <offset> can be repeated for each <exefile>\n" -" - NOTE: some of the options below will have no effect in this form.\n" +" - NOTE: Some of the options below will have no effect in this form.\n" " Otherwise it reads stdin and tries to translate lines of the form:\n" " <IMAGENAME:ADDRESS>\n\n" " The result is written to stdout.\n" @@ -1132,15 +1238,15 @@ " base address are cached.\n\n" "Options:\n" " -b Use this combined with '-l'. Enable buffering on logFile.\n" -" This may solve loosing output on real hardware.\n\n" +" This may solve loosing output on real hardware (ymmv).\n\n" " -c Console mode. Outputs text per character instead of per line.\n" " This is slightly slower but enables to see what you type.\n\n" " -d <directory>|<ISO image>\n" -" Directory to scan for images. (Do not append a '" PATH_STR "')\n" -" This option also takes an ISO image as argument:\n" +" <directory>: Directory to scan for images. (Do not append a '" PATH_STR "')\n" +" <ISO image>: This option also takes an ISO image as argument:\n" " - The image is recognized by the '.iso' or '.7z' extension.\n" " - NOTE: The '.7z' and extracted '.iso' basenames must be identical,\n" -" which is normally true for Reactos trunk builds.\n" +" which is normally true for ReactOS trunk builds.\n" " - The image will be unpacked to a directory with the same name.\n" " - The embedded reactos.cab file will also be unpacked.\n" " - Combined with -f the file will be re-unpacked.\n" @@ -1150,12 +1256,21 @@ " -F As -f but exits immediately after creating cache.\n\n" " -h This text.\n\n" " -l <logFile>\n" -" Append copy to specified logFile.\n" +" <logFile>: Append copy to specified logFile.\n" " Default: no logFile\n\n" " -m Prefix (mark) each translated line with '* '.\n\n" " -M Prefix (mark) each NOT translated line with '? '.\n" " ( Only for lines of the form: <IMAGENAME:ADDRESS> )\n\n" " -r Raw output without translation.\n\n" +" -R <cmd>\n" +" Revision commands interfacing with SVN. <cmd> is one of:\n" +" - check:\n" +" To be combined with -S. Check each source file in the log and issue\n" +" a warning if its revision is higher than that of the tested build.\n" +" Also when the revison of the source tree is lower than that of the\n" +" tested build (for every source file).\n" +" In both cases the source file's -S output would be unreliable.\n" +" Can be combined with -tTS.\n\n" " -s Statistics. A summary with the following info is printed after EOF:\n" " *** LOG2LINES SUMMARY ***\n" " - Translated: Translated lines.\n" @@ -1164,24 +1279,29 @@ " - Skipped: Lines not translated.\n" " - Differ: Lines where (addr-1) info differs. See -tT options\n" " - Differ(func/src):Lines where also function or source info differ.\n" +" - Rev conflicts: Source files conflicting with build. See '-R check'\n" " - Offset error: Image exists, but error retrieving offset info.\n" " - Total: Total number of lines attempted to translate.\n" " Also some version info is displayed.\n\n" -" -S <context>\n" -" Source lines. Display up to <context> lines until linenumber.\n" -" The environment variable _ROSBE_ROSSOURCEDIR should be correctly set.\n" +" -S <context>[+<add>][,<sources>]\n" +" Source line options:\n" +" <context>: Source lines. Display up to <context> lines until linenumber.\n" +" <add> : Optional. Display additional <add> lines after linenumber.\n" +" <sources>: Optional. Specify alternate source tree.\n" +" The environment variable " SOURCES_ENV " should be correctly set\n" +" or specify <sources>. Use double quotes if the path contains spaces.\n" " For a reliable result, these sources should be up to date with\n" -" the revision you test.\n" -" Can be combined with -tT.\n" -" Implies -U. Retranslation needed for retrieving source info.\n\n" -" -t Translate twice. The address itself and for (address - 1).\n" +" the tested revision (or try '-R check').\n" +" Can be combined with -tTR.\n" +" Implies -U (For retrieving source info).\n\n" +" -t Translate twice. The address itself and for (address-1).\n" " Show extra filename, func and linenumber between [..] if they differ\n" " So if only the linenumbers differ, then only show the extra\n" " linenumber.\n\n" -" -T As -t, but show only filename+func+linenumber for (address - 1.)\n\n" +" -T As -t, but show only filename+func+linenumber for (address-1)\n\n" " -u Undo translations.\n" " Lines are translated back (reverted) to the form <IMAGENAME:ADDRESS>\n" -" Also removes all lines previously added by this tool (see -S)\n\n" +" Also removes all lines previously added by this tool (e.g. see -S)\n\n" " -U Undo and reprocess.\n" " Reverted to the form <IMAGENAME:ADDRESS>, and then retranslated\n" " Implies -u.\n\n" @@ -1189,11 +1309,11 @@ " Repeating this option adds more verbosity.\n" " Default: only (major) errors\n\n" " -z <path to 7z>\n" -" Specify path to 7z. See also option -d.\n" +" <path to 7z>: Specify path to 7z. See also option -d.\n" " Default: '7z'\n" "\n" "Examples:\n" -" Setup is a VMware machine with its serial port set to: '\\\\.\\pipe\\kdbg'.\n\n" +" Setup: A VMware machine with its serial port set to: '\\\\.\\pipe\\kdbg'.\n\n" " Just recreate cache after a svn update or a new module has been added:\n" " log2lines -F\n\n" " Use kdbg debugger via console (interactive):\n" @@ -1205,21 +1325,41 @@ " Re-translate a debug log:\n" " log2lines -U -d bootcd-38701-dbg.iso < bugxxxx.log\n\n" " Re-translate a debug log. Specify a 7z file, which wil be decompressed.\n" -" Also check for (address) - (address - 1) differences:\n" +" Also check for (address) - (address-1) differences:\n" " log2lines -U -t -d bootcd-38701-dbg.7z < bugxxxx.log\n" -" This would generate loglines like:\n" -" '<ntdll.dll:60f1 (dll/ntdll/ldr/utils.c:337[331] (LdrPEStartup))>'\n\n" -" The following command line invocations are equivalent:\n" +" Output:\n" +" <ntdll.dll:60f1 (dll/ntdll/ldr/utils.c:337[331] (LdrPEStartup))>\n\n" +" The following commands are equivalent:\n" " log2lines msi.dll 2e35d msi.dll 2235 msiexec.exe 30a8 msiexec.exe 2e89\n" " log2lines msi.dll 2e35d 2235 msiexec.exe 30a8 2e89\n\n" " Generate source lines from backtrace ('bt') output. Show 2 lines of context:\n" " log2lines -S 2 -d bootcd-38701-dbg.7z < bugxxxx.log\n" +" Output:\n" " <msiexec.exe:2e89 (lib/3rdparty/mingw/crtexe.c:259 (__tmainCRTStartup))>\n" " | 0258 #else\n" " | 0259 mainret = main (\n" " <msiexec.exe:2fad (lib/3rdparty/mingw/crtexe.c:160 (WinMainCRTStartup))>\n" " | 0159 return __tmainCRTStartup ();\n" -" | 0160 }\n" +" | 0160 }\n\n" +" Generate source lines. Show 2 lines of context plus 1 additional line and\n" +" specify an alternate source tree:\n" +" log2lines -S 2+1,\"c:\\ros trees\\r44000\" -d bootcd-44000-dbg < dbg.log\n" +" Output:\n" +" <msi.dll:2e35d (dll/win32/msi/msiquery.c:189 (MSI_IterateRecords))>\n" +" | 0188 {\n" +" | 0189 r = MSI_ViewFetch( view, &rec );\n" +" | ----\n" +" | 0190 if( r != ERROR_SUCCESS )\n\n" +" Use '-R check' to show that action.c has been changed after the build:\n" +" log2lines -s -d bootcd-43850-dbg.iso -R check -S 2 < dbg.log\n" +" Output:\n" +" <msi.dll:35821 (dll/win32/msi/registry.c:781 (MSIREG_OpenUserDataKey))>\n" +" | 0780 if (create)\n" +" | 0781 rc = RegCreateKeyW(HKEY_LOCAL_MACHINE, keypath, key);\n" +" <msi.dll:5262 (dll/win32/msi/action.c:2665 (ACTION_ProcessComponents))>\n" +" | R--- Conflict : source(44191) > build(43850)\n" +" | 2664 else\n" +" | 2665 rc = MSIREG_OpenUserDataKey(comp->ComponentId,\n" "\n"; static void @@ -1228,13 +1368,9 @@ fprintf(stderr, "log2lines " LOG2LINES_VERSION "\n\n"); fprintf(stderr, "Usage: log2lines -%s {<exefile> <offset> {<offset>}}\n", optchars); if (verbose) - { fprintf(stderr, "%s", verboseUsage); - } else - { fprintf(stderr, "Try log2lines -h\n"); - } } static int @@ -1249,8 +1385,7 @@ strcpy(iso_tmp, iso); if ((fiso = fopen(iso, "a")) == NULL) { - if (opt_verbose) - fprintf(stderr, "Open of %s failed (locked for writing?), trying to copy first\n", iso); + l2l_dbg(1, "Open of %s failed (locked for writing?), trying to copy first\n", iso); strcat(iso_tmp, "~"); if (copy_file(iso, iso_tmp)) @@ -1258,35 +1393,28 @@ iso_copied = 1; } else - { fclose(fiso); - } sprintf(Line, UNZIP_FMT, opt_7z, iso_tmp, dir); if (system(Line) < 0) { - fprintf(stderr, "\nCannot unpack %s (check 7z path!)\n", iso_tmp); - if (opt_verbose) - fprintf(stderr, "Failed to execute: '%s'\n", Line); + l2l_dbg(0, "\nCannot unpack %s (check 7z path!)\n", iso_tmp); + l2l_dbg(1, "Failed to execute: '%s'\n", Line); res = 1; } else { - if (opt_verbose > 1) - fprintf(stderr, "\nUnpacking reactos.cab in %s\n", dir); + l2l_dbg(2, "\nUnpacking reactos.cab in %s\n", dir); sprintf(Line, UNZIP_FMT_CAB, opt_7z, dir, dir); if (system(Line) < 0) { - fprintf(stderr, "\nCannot unpack reactos.cab in %s\n", dir); - if (opt_verbose) - fprintf(stderr, "Failed to execute: '%s'\n", Line); + l2l_dbg(0, "\nCannot unpack reactos.cab in %s\n", dir); + l2l_dbg(1, "Failed to execute: '%s'\n", Line); res = 2; } } if (iso_copied) - { remove(iso_tmp); - } return res; } @@ -1300,78 +1428,74 @@ char *check_iso; char *check_dir; + if (opt_Revision) + revinfo.rev = getRevision(NULL, 1); check_iso = strrchr(opt_dir, '.'); + l2l_dbg(1, "Checking directory: %s\n", opt_dir); if (check_iso && PATHCMP(check_iso, ".7z") == 0) { - if (opt_verbose) - fprintf(stderr, "Uncompressing 7z image: %s\n", opt_dir); - - // First attempt to decompress to a .iso image + l2l_dbg(1, "Checking 7z image: %s\n", opt_dir); + + // First attempt to decompress to an .iso image strcpy(compressed_7z_path, opt_dir); if ((check_dir = strrchr(compressed_7z_path, PATH_CHAR))) - { *check_dir = '\0'; - } else strcpy(compressed_7z_path, "."); // default to current dir sprintf(Line, UNZIP_FMT_7Z, opt_7z, opt_dir, compressed_7z_path); /* This of course only works if the .7z and .iso basenames are identical - * which is normally true for our trunk builds: + * which is normally true for ReactOS trunk builds: */ strcpy(check_iso, ".iso"); if (!file_exists(opt_dir) || force) { + l2l_dbg(1, "Decompressing 7z image: %s\n", opt_dir); if (system(Line) < 0) { - fprintf(stderr, "\nCannot decompress to iso image %s\n", opt_dir); - if (opt_verbose) - fprintf(stderr, "Failed to execute: '%s'\n", Line); + l2l_dbg(0, "\nCannot decompress to iso image %s\n", opt_dir); + l2l_dbg(1, "Failed to execute: '%s'\n", Line); return 2; } } else - { - if (opt_verbose > 1) - fprintf(stderr, "%s already decompressed\n", opt_dir); - } + l2l_dbg(2, "%s already decompressed\n", opt_dir); } if (check_iso && PATHCMP(check_iso, ".iso") == 0) { - if (opt_verbose) - fprintf(stderr, "Using ISO image: %s\n", opt_dir); + l2l_dbg(1, "Checking ISO image: %s\n", opt_dir); if (file_exists(opt_dir)) { - if (opt_verbose > 1) - fprintf(stderr, "ISO image exists: %s\n", opt_dir); - + l2l_dbg(2, "ISO image exists: %s\n", opt_dir); strcpy(iso_path, opt_dir); *check_iso = '\0'; sprintf(freeldr_path, "%s" PATH_STR "freeldr.ini", opt_dir); if (!file_exists(freeldr_path) || force) { - fprintf(stderr, "Unpacking %s to: %s ...", iso_path, opt_dir); + l2l_dbg(0, "Unpacking %s to: %s ...", iso_path, opt_dir); unpack_iso(opt_dir, iso_path); - fprintf(stderr, "... done\n"); + l2l_dbg(0, "... done\n"); } else - { - if (opt_verbose > 1) - fprintf(stderr, "%s already unpacked in: %s\n", iso_path, opt_dir); - } + l2l_dbg(2, "%s already unpacked in: %s\n", iso_path, opt_dir); } else { - fprintf(stderr, "ISO image not found: %s\n", opt_dir); + l2l_dbg(0, "ISO image not found: %s\n", opt_dir); return 1; } + } + if (opt_Revision) + { + revinfo.buildrev = getTBRevision(opt_dir); + l2l_dbg(1,"Trunk build revision: %d\n", revinfo.buildrev); } cache_name = malloc(MAX_PATH); tmp_name = malloc(MAX_PATH); strcpy(cache_name, opt_dir); - strcat(cache_name, PATH_STR "log2lines.cache"); + strcat(cache_name, PATH_STR CACHEFILE); strcpy(tmp_name, cache_name); strcat(tmp_name, "~"); return 0; @@ -1386,12 +1510,10 @@ int i; char *s; + strcpy(opt_dir, ""); strcpy(sources_path, ""); if ((s = getenv(SOURCES_ENV))) - { - strcpy(sources_path, s); - strcat(sources_path, PATH_STR); - } + strcpy(sources_path,s); strcpy(opt_scanned, ""); for (i = 1; i < argc; i++) @@ -1399,11 +1521,11 @@ strcat(opt_scanned, argv[i]); strcat(opt_scanned, " "); } - strcpy(opt_dir, DEF_OPT_DIR); strcpy(opt_logFile, ""); strcpy(opt_7z, CMD_7Z); memset(&summ, 0, sizeof(SUMM)); + memset(&revinfo, 0, sizeof(REVINFO)); clearLastLine(); while (-1 != (opt = getopt(argc, (char **const)argv, optchars))) @@ -1445,12 +1567,20 @@ case 'r': opt_raw++; break; + case 'R': + optCount++; + opt_Revision = malloc(LINESIZE); + i = sscanf(optarg, "%s", opt_Revision); + break; case 's': opt_stats++; break; case 'S': optCount++; - opt_Source = atoi(optarg); + i = sscanf(optarg, "%d+%d,%s", &opt_Source,&opt_SrcPlus,sources_path); + if (i == 1) + sscanf(optarg, "%*d,%s", sources_path); + l2l_dbg(3, "Sources option parse result: %d+%d,\"%s\"\n", opt_Source,opt_SrcPlus,sources_path); break; case 't': opt_twice++; @@ -1480,12 +1610,22 @@ } optCount++; } + if (sources_path[0]) + { + strcat(sources_path, PATH_STR); + } if (opt_Source) { /* need to retranslate for source info: */ opt_undo++; opt_redo++; } + if (!opt_dir[0]) + { + strcpy(opt_dir, sources_path); + strcat(opt_dir, DEF_OPT_DIR); + } + argc -= optCount; if (check_directory(opt_force)) return 3; @@ -1496,6 +1636,8 @@ read_cache(); + l2l_dbg(3, "Cache read complete\n"); + if (*opt_logFile) { logFile = fopen(opt_logFile, "a"); @@ -1504,19 +1646,15 @@ // disable buffering so fflush is not needed if (!opt_buffered) { - if (opt_verbose) - fprintf(stderr, "Disabling log buffering on %s\n", opt_logFile); + l2l_dbg(1, "Disabling log buffering on %s\n", opt_logFile); setbuf(logFile, NULL); } else - { - if (opt_verbose) - fprintf(stderr, "Enabling log buffering on %s\n", opt_logFile); - } + l2l_dbg(1, "Enabling log buffering on %s\n", opt_logFile); } else { - fprintf(stderr, "Could not open logfile %s (%s)\n", opt_logFile, strerror(errno)); + l2l_dbg(0, "Could not open logfile %s (%s)\n", opt_logFile, strerror(errno)); return 2; } } @@ -1526,28 +1664,33 @@ int i = 1; const char *base = NULL; const char *offset = NULL; + char Line[LINESIZE + 1]; + while (i < argc) { + Line[0] = '\0'; offset = argv[optCount + i++]; if (isOffset(offset)) { if (base) { - if (opt_verbose > 1) - fprintf(stderr, "translating %s %s\n", base, offset); - translate_file(base, my_atoi(offset), NULL); + l2l_dbg(2, "translating %s %s\n", base, offset); + translate_file(base, my_atoi(offset), Line); + printf("%s\n", Line); + reportRevision(stdout); reportSource(stdout); + clearLastLine(); } else { - fprintf(stderr, "<exefile> expected\n"); + l2l_dbg(0, "<exefile> expected\n"); res = 3; break; } } else { - // Must be exefile + // Not an offset so must be an exefile: base = offset; } }
15 years, 4 months
1
0
0
0
[tkreuzer] 44471: Update moldname-msvcrt.def
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Dec 8 18:14:33 2009 New Revision: 44471 URL:
http://svn.reactos.org/svn/reactos?rev=44471&view=rev
Log: Update moldname-msvcrt.def Modified: branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def Modified: branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/3…
============================================================================== --- branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def [iso-8859-1] Tue Dec 8 18:14:33 2009 @@ -1,120 +1,120 @@ LIBRARY msvcrt.dll EXPORTS -access -chdir -chmod -chsize -close -creat -cwait -daylight DATA -dup -dup2 -ecvt -eof -execl -execle -execlp -execlpe -execv -execve -execvp -execvpe -fcvt +access==_access +chdir==_chdir +chmod==_chmod +chsize==_chsize +close==_close +creat==_creat +cwait==_cwait +daylight==_daylight +dup==_dup +dup2==_dup2 +ecvt==_ecvt +eof==_eof +execl==_execl +execle==_execle +execlp==_execlp +execlpe==_execlpe +execv==_execv +execve==_execve +execvp==_execvp +execvpe==_execvpe +fcvt==_fcvt fdopen==_fdopen -fgetchar -fgetwchar -filelength +fgetchar==_fgetchar +fgetwchar==_fgetwchar +filelength==_filelength fileno==_fileno -; fpreset -fputchar -fputwchar -;fstat -ftime -gcvt -getch -getche -getcwd -getpid -getw -heapwalk -isatty -itoa -kbhit -lfind -lsearch -lseek -ltoa -memccpy -memicmp -mkdir -mktemp -open -pclose -popen -putch -putenv -putw +fpreset==_fpreset +fputchar==_fputchar +fputwchar==_fputwchar +fstat==_fstat +ftime==_ftime +gcvt==_gcvt +getch==_getch +getche==_getche +getcwd==_getcwd +getpid==_getpid +getw==_getw +heapwalk==_heapwalk +isatty==_isatty +itoa==_itoa +kbhit==_kbhit +lfind==_lfind +lsearch==_lsearch +lseek==_lseek +ltoa==_ltoa +memccpy==_memccpy +memicmp==_memicmp +mkdir==_mkdir +mktemp==_mktemp +open==_open +pclose==_pclose +popen==_popen +putch==_putch +putenv==_putenv +putw==_putw read==_read -rmdir -rmtmp -searchenv -setmode -sopen -spawnl -spawnle -spawnlp -spawnlpe -spawnv -spawnve -spawnvp -spawnvpe -;stat -strcmpi -strdup -stricmp -stricoll -strlwr -strnicmp -strnset -strrev -strset -strupr -swab -tell -tempnam -timezone DATA -tzname DATA -tzset -umask -ungetch -unlink -utime -wcsdup -wcsicmp -wcsicoll -wcslwr -wcsnicmp -wcsnset -wcsrev -wcsset -wcsupr -wpopen +rmdir==_rmdir +rmtmp==_rmtmp +searchenv==_searchenv +setmode==_setmode +sopen==_sopen +spawnl==_spawnl +spawnle==_spawnle +spawnlp==_spawnlp +spawnlpe==_spawnlpe +spawnv==_spawnv +spawnve==_spawnve +spawnvp==_spawnvp +spawnvpe==_spawnvpe +stat==_stat +strcmpi==_strcmpi +strdup==_strdup +stricmp==_stricmp +stricoll==_stricoll +strlwr==_strlwr +strnicmp==_strnicmp +strnset==_strnset +strrev==_strrev +strset==_strset +strupr==_strupr +swab==_swab +tell==_tell +tempnam==_tempnam +timezone==_timezone +tzname==_tzname +tzset==_tzset +umask==_umask +ungetch==_ungetch +unlink==_unlink +utime==_utime +wcsdup==_wcsdup +wcsicmp==_wcsicmp +wcsicoll==_wcsicoll +wcslwr==_wcslwr +wcsnicmp==_wcsnicmp +wcsnset==_wcsnset +wcsrev==_wcsrev +wcsset==_wcsset +wcsupr==_wcsupr +wpopen==_wpopen write==_write ; non-ANSI functions declared in math.h -j0 -j1 -jn -y0 -y1 -yn -chgsign -;scalb -finite -fpclass +j0==_j0 +j1==_j1 +jn==_jn +y0==_y0 +y1==_y1 +yn==_yn +chgsign==_chgsign +scalb==_scalb +finite==_finite +fpclass==_fpclass ; C99 functions -cabs -hypot -logb -nextafter +cabs==_cabs +hypot==_hypot +logb==_logb +nextafter==_nextafter
15 years, 4 months
1
0
0
0
[tkreuzer] 44470: Thanks to ktietz for his awesome dlltool patch! Will require dlltool 2.20.51.20091118
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Dec 8 17:41:01 2009 New Revision: 44470 URL:
http://svn.reactos.org/svn/reactos?rev=44470&view=rev
Log: Thanks to ktietz for his awesome dlltool patch! Will require dlltool 2.20.51.20091118 Modified: branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def Modified: branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/3…
============================================================================== --- branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/3rdparty/mingw/moldname-msvcrt.def [iso-8859-1] Tue Dec 8 17:41:01 2009 @@ -1,4 +1,4 @@ -LIBRARY crtdll.dll +LIBRARY msvcrt.dll EXPORTS access @@ -22,11 +22,11 @@ execvp execvpe fcvt -fdopen +fdopen==_fdopen fgetchar fgetwchar filelength -fileno +fileno==_fileno ; fpreset fputchar fputwchar @@ -56,7 +56,7 @@ putch putenv putw -read +read==_read rmdir rmtmp searchenv @@ -101,7 +101,7 @@ wcsset wcsupr wpopen -write +write==_write ; non-ANSI functions declared in math.h j0 j1
15 years, 4 months
1
0
0
0
← Newer
1
...
34
35
36
37
38
39
40
...
51
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Results per page:
10
25
50
100
200