winehq.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
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
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
October 2007
----- 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
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
4 participants
996 discussions
Start a n
N
ew thread
Stefan Dösinger : wined3d: Add texreg2rgb support to arb shaders.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: 66447040396dfecbcd8f2b1510d65c900424f46a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=66447040396dfecbcd8f2b151…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Wed Sep 5 17:05:58 2007 +0200 wined3d: Add texreg2rgb support to arb shaders. --- dlls/wined3d/arb_program_shader.c | 16 ++++++++++++++++ dlls/wined3d/pixelshader.c | 2 +- dlls/wined3d/wined3d_private.h | 1 + 3 files changed, 18 insertions(+), 1 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index b4d1426..1fc3338 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -1118,6 +1118,22 @@ void pshader_hw_texreg2gb(SHADER_OPCODE_ARG* arg) { shader_hw_sample(arg, reg1, dst_str, "TMP", FALSE, FALSE); } +void pshader_hw_texreg2rgb(SHADER_OPCODE_ARG* arg) { + + SHADER_BUFFER* buffer = arg->buffer; + IWineD3DPixelShaderImpl* This = (IWineD3DPixelShaderImpl*) arg->shader; + IWineD3DDeviceImpl* deviceImpl = (IWineD3DDeviceImpl*) This->baseShader.device; + DWORD flags; + DWORD reg1 = arg->dst & WINED3DSP_REGNUM_MASK; + char dst_str[8]; + char src_str[50]; + + sprintf(dst_str, "T%u", reg1); + pshader_gen_input_modifier_line(buffer, arg->src[0], 0, src_str); + flags = reg1 < MAX_TEXTURES ? deviceImpl->stateBlock->textureState[reg1][WINED3DTSS_TEXTURETRANSFORMFLAGS] : 0; + shader_hw_sample(arg, reg1, dst_str, src_str, FALSE, FALSE); +} + void pshader_hw_texbem(SHADER_OPCODE_ARG* arg) { IWineD3DPixelShaderImpl* This = (IWineD3DPixelShaderImpl*) arg->shader; diff --git a/dlls/wined3d/pixelshader.c b/dlls/wined3d/pixelshader.c index ad9b11d..512badc 100644 --- a/dlls/wined3d/pixelshader.c +++ b/dlls/wined3d/pixelshader.c @@ -220,7 +220,7 @@ CONST SHADER_OPCODE IWineD3DPixelShaderImpl_shader_ins[] = { {WINED3DSIO_TEXBEML, "texbeml", GLNAME_REQUIRE_GLSL, 1, 2, pshader_hw_texbem, pshader_glsl_texbem, WINED3DPS_VERSION(1,0), WINED3DPS_VERSION(1,3)}, {WINED3DSIO_TEXREG2AR,"texreg2ar","undefined", 1, 2, pshader_hw_texreg2ar, pshader_glsl_texreg2ar, WINED3DPS_VERSION(1,0), WINED3DPS_VERSION(1,3)}, {WINED3DSIO_TEXREG2GB,"texreg2gb","undefined", 1, 2, pshader_hw_texreg2gb, pshader_glsl_texreg2gb, WINED3DPS_VERSION(1,0), WINED3DPS_VERSION(1,3)}, - {WINED3DSIO_TEXREG2RGB, "texreg2rgb", GLNAME_REQUIRE_GLSL, 1, 2, NULL, pshader_glsl_texreg2rgb, WINED3DPS_VERSION(1,2), WINED3DPS_VERSION(1,3)}, + {WINED3DSIO_TEXREG2RGB, "texreg2rgb", "undefined", 1, 2, pshader_hw_texreg2rgb, pshader_glsl_texreg2rgb, WINED3DPS_VERSION(1,2), WINED3DPS_VERSION(1,3)}, {WINED3DSIO_TEXM3x2PAD, "texm3x2pad", "undefined", 1, 2, pshader_hw_texm3x2pad, pshader_glsl_texm3x2pad, WINED3DPS_VERSION(1,0), WINED3DPS_VERSION(1,3)}, {WINED3DSIO_TEXM3x2TEX, "texm3x2tex", "undefined", 1, 2, pshader_hw_texm3x2tex, pshader_glsl_texm3x2tex, WINED3DPS_VERSION(1,0), WINED3DPS_VERSION(1,3)}, {WINED3DSIO_TEXM3x3PAD, "texm3x3pad", "undefined", 1, 2, pshader_hw_texm3x3pad, pshader_glsl_texm3x3pad, WINED3DPS_VERSION(1,0), WINED3DPS_VERSION(1,3)}, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 86fd2dc..ddea219 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1788,6 +1788,7 @@ extern void pshader_hw_texdp3(SHADER_OPCODE_ARG* arg); extern void pshader_hw_texm3x3(SHADER_OPCODE_ARG* arg); extern void pshader_hw_texm3x2depth(SHADER_OPCODE_ARG* arg); extern void pshader_hw_dp2add(SHADER_OPCODE_ARG* arg); +extern void pshader_hw_texreg2rgb(SHADER_OPCODE_ARG* arg); /* ARB vertex / pixel shader common prototypes */ extern void shader_hw_nrm(SHADER_OPCODE_ARG* arg);
1
0
0
0
Rob Shearman : user32: Add tests for DefWindowProc processing the undocumented 0x3B message.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: dbfb6b04148e5884c6accfc589b9e0fa9104e3bf URL:
http://source.winehq.org/git/wine.git/?a=commit;h=dbfb6b04148e5884c6accfc58…
Author: Rob Shearman <rob(a)codeweavers.com> Date: Sun Sep 30 17:56:08 2007 +0100 user32: Add tests for DefWindowProc processing the undocumented 0x3B message. --- dlls/user32/tests/msg.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 88c5228..0d47262 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -3852,6 +3852,41 @@ static const struct message WmSetIcon_2[] = { { 0 } }; +/* Sending undocumented 0x3B message with wparam = 0x8000000b */ +static const struct message WmInitEndSession[] = { + { 0x003B, sent }, + { WM_QUERYENDSESSION, sent|defwinproc|wparam|lparam, 0, ENDSESSION_LOGOFF }, + { 0 } +}; + +/* Sending undocumented 0x3B message with wparam = 0x0000000b */ +static const struct message WmInitEndSession_2[] = { + { 0x003B, sent }, + { WM_QUERYENDSESSION, sent|defwinproc|wparam|lparam, 0, 0 }, + { 0 } +}; + +/* Sending undocumented 0x3B message with wparam = 0x80000008 */ +static const struct message WmInitEndSession_3[] = { + { 0x003B, sent }, + { WM_ENDSESSION, sent|defwinproc|wparam|lparam, 0, ENDSESSION_LOGOFF }, + { 0 } +}; + +/* Sending undocumented 0x3B message with wparam = 0x00000008 */ +static const struct message WmInitEndSession_4[] = { + { 0x003B, sent }, + { WM_ENDSESSION, sent|defwinproc|wparam|lparam, 0, 0 }, + { 0 } +}; + +/* Sending undocumented 0x3B message with wparam = 0x80000001 */ +static const struct message WmInitEndSession_5[] = { + { 0x003B, sent }, + { WM_ENDSESSION, sent|defwinproc|wparam|lparam, 1, ENDSESSION_LOGOFF }, + { 0 } +}; + static void test_MsgWaitForMultipleObjects(HWND hwnd) { DWORD ret; @@ -3902,6 +3937,7 @@ static void test_messages(void) HWND hchild2, hbutton; HMENU hmenu; MSG msg; + LRESULT res; flush_sequence(); @@ -4275,6 +4311,41 @@ static void test_messages(void) flush_sequence(); SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(0, IDI_APPLICATION)); ok_sequence(WmSetIcon_2, "WM_SETICON for hidden window without caption", FALSE); + + flush_sequence(); + res = SendMessage(hwnd, 0x3B, 0x8000000b, 0); + ok_sequence(WmInitEndSession, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x8000000b", TRUE); + todo_wine + ok(res == 1, "SendMessage(hwnd, 0x3B, 0x8000000b, 0) should have returned 1 instead of %ld\n", res); + res = SendMessage(hwnd, 0x3B, 0x0000000b, 0); + ok_sequence(WmInitEndSession_2, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x0000000b", TRUE); + todo_wine + ok(res == 1, "SendMessage(hwnd, 0x3B, 0x0000000b, 0) should have returned 1 instead of %ld\n", res); + res = SendMessage(hwnd, 0x3B, 0x0000000f, 0); + ok_sequence(WmInitEndSession_2, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x0000000f", TRUE); + todo_wine + ok(res == 1, "SendMessage(hwnd, 0x3B, 0x0000000f, 0) should have returned 1 instead of %ld\n", res); + + flush_sequence(); + res = SendMessage(hwnd, 0x3B, 0x80000008, 0); + ok_sequence(WmInitEndSession_3, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000008", TRUE); + todo_wine + ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000008, 0) should have returned 2 instead of %ld\n", res); + res = SendMessage(hwnd, 0x3B, 0x00000008, 0); + ok_sequence(WmInitEndSession_4, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x00000008", TRUE); + todo_wine + ok(res == 2, "SendMessage(hwnd, 0x3B, 0x00000008, 0) should have returned 2 instead of %ld\n", res); + + res = SendMessage(hwnd, 0x3B, 0x80000004, 0); + ok_sequence(WmInitEndSession_3, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000004", TRUE); + todo_wine + ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000004, 0) should have returned 2 instead of %ld\n", res); + + res = SendMessage(hwnd, 0x3B, 0x80000001, 0); + ok_sequence(WmInitEndSession_5, "Handling of undocumented 0x3B message by DefWindowProc wparam=0x80000001", TRUE); + todo_wine + ok(res == 2, "SendMessage(hwnd, 0x3B, 0x80000001, 0) should have returned 2 instead of %ld\n", res); + DestroyWindow(hwnd); flush_sequence(); }
1
0
0
0
Roderick Colenbrander : wined3d: WINAPI compile fixes.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: dac5e5ff1ec08507eabe02f302475a4465c6d24b URL:
http://source.winehq.org/git/wine.git/?a=commit;h=dac5e5ff1ec08507eabe02f30…
Author: Roderick Colenbrander <thunderbird2k(a)gmx.net> Date: Sun Sep 30 15:38:16 2007 +0200 wined3d: WINAPI compile fixes. --- include/wine/wined3d_interface.h | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/wine/wined3d_interface.h b/include/wine/wined3d_interface.h index 603eeb5..895ba66 100644 --- a/include/wine/wined3d_interface.h +++ b/include/wine/wined3d_interface.h @@ -196,7 +196,7 @@ DEFINE_GUID(IID_IWineD3DClipper, /***************************************************************************** * Callback functions required for predefining surfaces / stencils */ -typedef HRESULT WINAPI (*D3DCB_CREATERENDERTARGETFN) (IUnknown *pDevice, +typedef HRESULT (WINAPI *D3DCB_CREATERENDERTARGETFN) (IUnknown *pDevice, IUnknown *pSuperior, UINT Width, UINT Height, @@ -207,7 +207,7 @@ typedef HRESULT WINAPI (*D3DCB_CREATERENDERTARGETFN) (IUnknown *pDevice, struct IWineD3DSurface **ppSurface, HANDLE *pSharedHandle); -typedef HRESULT WINAPI (*D3DCB_CREATESURFACEFN) (IUnknown *pDevice, +typedef HRESULT (WINAPI *D3DCB_CREATESURFACEFN) (IUnknown *pDevice, IUnknown *pSuperior, UINT Width, UINT Height, @@ -219,7 +219,7 @@ typedef HRESULT WINAPI (*D3DCB_CREATESURFACEFN) (IUnknown *pDevice, struct IWineD3DSurface **ppSurface, HANDLE *pSharedHandle); -typedef HRESULT WINAPI (*D3DCB_CREATEDEPTHSTENCILSURFACEFN) (IUnknown *pDevice, +typedef HRESULT (WINAPI *D3DCB_CREATEDEPTHSTENCILSURFACEFN) (IUnknown *pDevice, IUnknown *pSuperior, UINT Width, UINT Height, @@ -231,7 +231,7 @@ typedef HRESULT WINAPI (*D3DCB_CREATEDEPTHSTENCILSURFACEFN) (IUnknown *pDevice, HANDLE *pSharedHandle); -typedef HRESULT WINAPI (*D3DCB_CREATEVOLUMEFN) (IUnknown *pDevice, +typedef HRESULT (WINAPI *D3DCB_CREATEVOLUMEFN) (IUnknown *pDevice, IUnknown *pSuperior, UINT Width, UINT Height, @@ -242,7 +242,7 @@ typedef HRESULT WINAPI (*D3DCB_CREATEVOLUMEFN) (IUnknown *pDevice, struct IWineD3DVolume **ppVolume, HANDLE *pSharedHandle); -typedef HRESULT WINAPI (*D3DCB_CREATEADDITIONALSWAPCHAIN) (IUnknown *pDevice, +typedef HRESULT (WINAPI *D3DCB_CREATEADDITIONALSWAPCHAIN) (IUnknown *pDevice, WINED3DPRESENT_PARAMETERS *pPresentationParameters, struct IWineD3DSwapChain **pSwapChain ); @@ -250,11 +250,11 @@ typedef HRESULT WINAPI (*D3DCB_CREATEADDITIONALSWAPCHAIN) (IUnknown *pDevice, /***************************************************************************** * Callback functions for custom implicit object destruction. */ -typedef ULONG WINAPI (*D3DCB_DESTROYSWAPCHAINFN) (struct IWineD3DSwapChain *pSwapChain); +typedef ULONG (WINAPI *D3DCB_DESTROYSWAPCHAINFN) (struct IWineD3DSwapChain *pSwapChain); -typedef ULONG WINAPI (*D3DCB_DESTROYSURFACEFN) (struct IWineD3DSurface *pSurface); +typedef ULONG (WINAPI *D3DCB_DESTROYSURFACEFN) (struct IWineD3DSurface *pSurface); -typedef ULONG WINAPI (*D3DCB_DESTROYVOLUMEFN) (struct IWineD3DVolume *pVolume); +typedef ULONG (WINAPI *D3DCB_DESTROYVOLUMEFN) (struct IWineD3DVolume *pVolume); /***************************************************************************** * IWineD3DBase interface
1
0
0
0
Maarten Lankhorst : wineoss: Seperate wave-in and wave-outs shared use of a single OSS_DEVICE struct.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: 58e26451dbed69e3ad3a4256333b81a2d5320c01 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=58e26451dbed69e3ad3a42563…
Author: Maarten Lankhorst <maarten(a)codeweavers.com> Date: Mon Oct 1 09:16:59 2007 +0200 wineoss: Seperate wave-in and wave-outs shared use of a single OSS_DEVICE struct. --- dlls/wineoss.drv/audio.c | 231 +++++++++++++++++++++--------------------- dlls/wineoss.drv/audio.h | 5 +- dlls/wineoss.drv/dscapture.c | 70 +++++++------- dlls/wineoss.drv/dsrender.c | 66 ++++++------ 4 files changed, 184 insertions(+), 188 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=58e26451dbed69e3ad3a4…
1
0
0
0
Maarten Lankhorst : dsound: Call waveInUnPrepareHeader and waveInPrepareHeader when submitting new buffer .
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: 847d5565fc4c78c2b127d861a046478a86b5c1cc URL:
http://source.winehq.org/git/wine.git/?a=commit;h=847d5565fc4c78c2b127d861a…
Author: Maarten Lankhorst <maarten(a)codeweavers.com> Date: Mon Oct 1 09:14:03 2007 +0200 dsound: Call waveInUnPrepareHeader and waveInPrepareHeader when submitting new buffer. --- dlls/dsound/capture.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/dlls/dsound/capture.c b/dlls/dsound/capture.c index a949673..f0b230d 100644 --- a/dlls/dsound/capture.c +++ b/dlls/dsound/capture.c @@ -439,6 +439,8 @@ DSOUND_capture_callback( capture_CheckNotify(Moi, 0, 0); } else { if (This->state == STATE_CAPTURING) { + waveInUnprepareHeader(hwi, &(This->pwave[index]), sizeof(WAVEHDR)); + waveInPrepareHeader(hwi, &(This->pwave[index]), sizeof(WAVEHDR)); waveInAddBuffer(hwi, &(This->pwave[index]), sizeof(WAVEHDR)); } else if (This->state == STATE_STOPPING) { TRACE("stopping\n");
1
0
0
0
Maarten Lankhorst : dsound: Use smaller buffers for wavein capture.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: 3bafbb22b80c09ff661b283d81615b5fbf2f9388 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=3bafbb22b80c09ff661b283d8…
Author: Maarten Lankhorst <maarten(a)codeweavers.com> Date: Sat Sep 29 01:54:03 2007 +0200 dsound: Use smaller buffers for wavein capture. --- dlls/dsound/capture.c | 195 ++++++++++++++++------------------------- dlls/dsound/dsound_private.h | 2 +- dlls/dsound/primary.c | 54 +++++++----- 3 files changed, 108 insertions(+), 143 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=3bafbb22b80c09ff661b2…
1
0
0
0
Hans Leidekker : pdh: Skip tests when running on non-english locale.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: 290869b03d91021e4ac3999b1c556166e9cdc92c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=290869b03d91021e4ac3999b1…
Author: Hans Leidekker <hans(a)it.vu.nl> Date: Sat Sep 29 21:07:16 2007 +0200 pdh: Skip tests when running on non-english locale. --- dlls/pdh/tests/pdh.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/dlls/pdh/tests/pdh.c b/dlls/pdh/tests/pdh.c index 0cfdff3..7a9770d 100644 --- a/dlls/pdh/tests/pdh.c +++ b/dlls/pdh/tests/pdh.c @@ -858,6 +858,11 @@ static void test_PdhCollectQueryDataEx(void) START_TEST(pdh) { + if (PRIMARYLANGID(LANGIDFROMLCID(GetThreadLocale())) != LANG_ENGLISH) + { + skip("non-english locale\n"); + return; + } init_function_ptrs(); test_PdhOpenQueryA();
1
0
0
0
Hans Leidekker : pdh: Fix parameter handling in PdhAddEnglishCounter{A, W} and PdhCollectQueryDataWithTime.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: cf8b16bc9ec8b427ed330869060532681cdf5329 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=cf8b16bc9ec8b427ed3308690…
Author: Hans Leidekker <hans(a)it.vu.nl> Date: Sat Sep 29 21:07:01 2007 +0200 pdh: Fix parameter handling in PdhAddEnglishCounter{A, W} and PdhCollectQueryDataWithTime. --- dlls/pdh/pdh_main.c | 20 ++++++++++++++------ dlls/pdh/tests/pdh.c | 17 +++++++++++++---- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/dlls/pdh/pdh_main.c b/dlls/pdh/pdh_main.c index a97ee9b..c5117bf 100644 --- a/dlls/pdh/pdh_main.c +++ b/dlls/pdh/pdh_main.c @@ -304,6 +304,9 @@ PDH_STATUS WINAPI PdhAddCounterW( PDH_HQUERY hquery, LPCWSTR path, PDH_STATUS WINAPI PdhAddEnglishCounterA( PDH_HQUERY query, LPCSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter ) { + TRACE("%p %s %lx %p\n", query, debugstr_a(path), userdata, counter); + + if (!query) return PDH_INVALID_ARGUMENT; return PdhAddCounterA( query, path, userdata, counter ); } @@ -313,6 +316,9 @@ PDH_STATUS WINAPI PdhAddEnglishCounterA( PDH_HQUERY query, LPCSTR path, PDH_STATUS WINAPI PdhAddEnglishCounterW( PDH_HQUERY query, LPCWSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter ) { + TRACE("%p %s %lx %p\n", query, debugstr_w(path), userdata, counter); + + if (!query) return PDH_INVALID_ARGUMENT; return PdhAddCounterW( query, path, userdata, counter ); } @@ -543,9 +549,13 @@ PDH_STATUS WINAPI PdhCollectQueryDataEx( PDH_HQUERY handle, DWORD interval, HAND PDH_STATUS WINAPI PdhCollectQueryDataWithTime( PDH_HQUERY handle, LONGLONG *timestamp ) { struct query *query = handle; + struct counter *counter; + struct list *item; TRACE("%p %p\n", handle, timestamp); + if (!timestamp) return PDH_INVALID_ARGUMENT; + EnterCriticalSection( &pdh_handle_cs ); if (!query || query->magic != PDH_MAGIC_QUERY) { @@ -560,13 +570,11 @@ PDH_STATUS WINAPI PdhCollectQueryDataWithTime( PDH_HQUERY handle, LONGLONG *time collect_query_data( query ); - if (timestamp) - { - struct list *item = list_head( &query->counters ); - struct counter *counter = LIST_ENTRY( item, struct counter, entry ); + item = list_head( &query->counters ); + counter = LIST_ENTRY( item, struct counter, entry ); + + *timestamp = ((LONGLONG)counter->stamp.dwHighDateTime << 32) | counter->stamp.dwLowDateTime; - *timestamp = ((LONGLONG)counter->stamp.dwHighDateTime << 32) | counter->stamp.dwLowDateTime; - } LeaveCriticalSection( &pdh_handle_cs ); return ERROR_SUCCESS; } diff --git a/dlls/pdh/tests/pdh.c b/dlls/pdh/tests/pdh.c index 2853f8b..0cfdff3 100644 --- a/dlls/pdh/tests/pdh.c +++ b/dlls/pdh/tests/pdh.c @@ -211,11 +211,14 @@ static void test_PdhAddEnglishCounterA( void ) ret = PdhOpenQueryA( NULL, 0, &query ); ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret); + ret = PdhCollectQueryData( query ); + ok(ret == PDH_NO_DATA, "PdhCollectQueryData failed 0x%08x\n", ret); + ret = pPdhAddEnglishCounterA( NULL, "\\System\\System Up Time", 0, NULL ); ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterA failed 0x%08x\n", ret); ret = pPdhAddEnglishCounterA( NULL, "\\System\\System Up Time", 0, &counter ); - ok(ret == PDH_INVALID_HANDLE, "PdhAddEnglishCounterA failed 0x%08x\n", ret); + ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterA failed 0x%08x\n", ret); ret = pPdhAddEnglishCounterA( query, NULL, 0, &counter ); ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterA failed 0x%08x\n", ret); @@ -249,11 +252,14 @@ static void test_PdhAddEnglishCounterW( void ) ret = PdhOpenQueryW( NULL, 0, &query ); ok(ret == ERROR_SUCCESS, "PdhOpenQueryW failed 0x%08x\n", ret); + ret = PdhCollectQueryData( query ); + ok(ret == PDH_NO_DATA, "PdhCollectQueryData failed 0x%08x\n", ret); + ret = pPdhAddEnglishCounterW( NULL, system_uptime, 0, NULL ); ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterW failed 0x%08x\n", ret); ret = pPdhAddEnglishCounterW( NULL, system_uptime, 0, &counter ); - ok(ret == PDH_INVALID_HANDLE, "PdhAddEnglishCounterW failed 0x%08x\n", ret); + ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterW failed 0x%08x\n", ret); ret = pPdhAddEnglishCounterW( query, NULL, 0, &counter ); ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterW failed 0x%08x\n", ret); @@ -288,14 +294,17 @@ static void test_PdhCollectQueryDataWithTime( void ) ret = PdhOpenQueryA( NULL, 0, &query ); ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret); + ret = PdhCollectQueryData( query ); + ok(ret == PDH_NO_DATA, "PdhCollectQueryData failed 0x%08x\n", ret); + ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter ); ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret); ret = pPdhCollectQueryDataWithTime( NULL, NULL ); - ok(ret == PDH_INVALID_HANDLE, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret); + ok(ret == PDH_INVALID_ARGUMENT, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret); ret = pPdhCollectQueryDataWithTime( query, NULL ); - ok(ret == ERROR_SUCCESS, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret); + ok(ret == PDH_INVALID_ARGUMENT, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret); ret = pPdhCollectQueryDataWithTime( NULL, &time ); ok(ret == PDH_INVALID_HANDLE, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret);
1
0
0
0
Hans Leidekker : pdh: Implement PdhCalculateCounterFromRawValue.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: a83509c7d36b15cb084f47b6761f13192ffe413f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a83509c7d36b15cb084f47b67…
Author: Hans Leidekker <hans(a)it.vu.nl> Date: Sat Sep 29 21:06:49 2007 +0200 pdh: Implement PdhCalculateCounterFromRawValue. --- dlls/pdh/pdh.spec | 2 +- dlls/pdh/pdh_main.c | 109 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 73 insertions(+), 38 deletions(-) diff --git a/dlls/pdh/pdh.spec b/dlls/pdh/pdh.spec index 8735c0f..ad46f40 100644 --- a/dlls/pdh/pdh.spec +++ b/dlls/pdh/pdh.spec @@ -11,7 +11,7 @@ @ stub PdhBrowseCountersHA @ stub PdhBrowseCountersHW @ stub PdhBrowseCountersW -@ stub PdhCalculateCounterFromRawValue +@ stdcall PdhCalculateCounterFromRawValue(ptr long ptr ptr ptr) @ stub PdhCloseLog @ stdcall PdhCloseQuery(ptr) @ stdcall PdhCollectQueryData(ptr) diff --git a/dlls/pdh/pdh_main.c b/dlls/pdh/pdh_main.c index 479fe3b..a97ee9b 100644 --- a/dlls/pdh/pdh_main.c +++ b/dlls/pdh/pdh_main.c @@ -96,6 +96,13 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) return TRUE; } +union value +{ + LONG longvalue; + double doublevalue; + LONGLONG largevalue; +}; + struct counter { DWORD magic; /* signature */ @@ -110,18 +117,8 @@ struct counter LONGLONG base; /* samples per second */ FILETIME stamp; /* time stamp */ void (CALLBACK *collect)( struct counter * ); /* collect callback */ - union - { - LONG longvalue; - double doublevalue; - LONGLONG largevalue; - } one; /* first value */ - union - { - LONG longvalue; - double doublevalue; - LONGLONG largevalue; - } two; /* second value */ + union value one; /* first value */ + union value two; /* second value */ }; #define PDH_MAGIC_COUNTER 0x50444831 /* 'PDH1' */ @@ -319,6 +316,64 @@ PDH_STATUS WINAPI PdhAddEnglishCounterW( PDH_HQUERY query, LPCWSTR path, return PdhAddCounterW( query, path, userdata, counter ); } +/* caller must hold counter lock */ +static PDH_STATUS format_value( struct counter *counter, DWORD format, union value *raw1, + union value *raw2, PDH_FMT_COUNTERVALUE *value ) +{ + LONG factor; + + factor = counter->scale ? counter->scale : counter->defaultscale; + if (format & PDH_FMT_LONG) + { + if (format & PDH_FMT_1000) value->u.longValue = raw2->longvalue * 1000; + else value->u.longValue = raw2->longvalue * pow( 10, factor ); + } + else if (format & PDH_FMT_LARGE) + { + if (format & PDH_FMT_1000) value->u.largeValue = raw2->largevalue * 1000; + else value->u.largeValue = raw2->largevalue * pow( 10, factor ); + } + else if (format & PDH_FMT_DOUBLE) + { + if (format & PDH_FMT_1000) value->u.doubleValue = raw2->doublevalue * 1000; + else value->u.doubleValue = raw2->doublevalue * pow( 10, factor ); + } + else + { + WARN("unknown format %x\n", format); + return PDH_INVALID_ARGUMENT; + } + return ERROR_SUCCESS; +} + +/*********************************************************************** + * PdhCalculateCounterFromRawValue (PDH.@) + */ +PDH_STATUS WINAPI PdhCalculateCounterFromRawValue( PDH_HCOUNTER handle, DWORD format, + PPDH_RAW_COUNTER raw1, PPDH_RAW_COUNTER raw2, + PPDH_FMT_COUNTERVALUE value ) +{ + PDH_STATUS ret; + struct counter *counter = handle; + + TRACE("%p 0x%08x %p %p %p\n", handle, format, raw1, raw2, value); + + if (!value) return PDH_INVALID_ARGUMENT; + + EnterCriticalSection( &pdh_handle_cs ); + if (!counter || counter->magic != PDH_MAGIC_COUNTER) + { + LeaveCriticalSection( &pdh_handle_cs ); + return PDH_INVALID_HANDLE; + } + + ret = format_value( counter, format, (union value *)&raw1->SecondValue, + (union value *)&raw2->SecondValue, value ); + + LeaveCriticalSection( &pdh_handle_cs ); + return ret; +} + /* caller must hold query lock */ static void shutdown_query_thread( struct query *query ) { @@ -630,7 +685,7 @@ PDH_STATUS WINAPI PdhGetCounterTimeBase( PDH_HCOUNTER handle, LONGLONG *base ) PDH_STATUS WINAPI PdhGetFormattedCounterValue( PDH_HCOUNTER handle, DWORD format, LPDWORD type, PPDH_FMT_COUNTERVALUE value ) { - LONG factor; + PDH_STATUS ret; struct counter *counter = handle; TRACE("%p %x %p %p\n", handle, format, type, value); @@ -648,34 +703,14 @@ PDH_STATUS WINAPI PdhGetFormattedCounterValue( PDH_HCOUNTER handle, DWORD format LeaveCriticalSection( &pdh_handle_cs ); return PDH_INVALID_DATA; } - - factor = counter->scale ? counter->scale : counter->defaultscale; - if (format & PDH_FMT_LONG) - { - if (format & PDH_FMT_1000) value->u.longValue = counter->two.longvalue * 1000; - else value->u.longValue = counter->two.longvalue * pow( 10, factor ); - } - else if (format & PDH_FMT_LARGE) - { - if (format & PDH_FMT_1000) value->u.largeValue = counter->two.largevalue * 1000; - else value->u.largeValue = counter->two.largevalue * pow( 10, factor ); - } - else if (format & PDH_FMT_DOUBLE) - { - if (format & PDH_FMT_1000) value->u.doubleValue = counter->two.doublevalue * 1000; - else value->u.doubleValue = counter->two.doublevalue * pow( 10, factor ); - } - else + if (!(ret = format_value( counter, format, &counter->one, &counter->two, value ))) { - WARN("unknown format %x\n", format); - LeaveCriticalSection( &pdh_handle_cs ); - return PDH_INVALID_ARGUMENT; + value->CStatus = ERROR_SUCCESS; + if (type) *type = counter->type; } - value->CStatus = ERROR_SUCCESS; - if (type) *type = counter->type; LeaveCriticalSection( &pdh_handle_cs ); - return ERROR_SUCCESS; + return ret; } /***********************************************************************
1
0
0
0
Hans Leidekker : pdh: Implement and test PdhCollectQueryDataEx.
by Alexandre Julliard
01 Oct '07
01 Oct '07
Module: wine Branch: master Commit: 0389ec60d98381c8f99fa518434455742f6ee439 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=0389ec60d98381c8f99fa5184…
Author: Hans Leidekker <hans(a)it.vu.nl> Date: Sat Sep 29 21:06:35 2007 +0200 pdh: Implement and test PdhCollectQueryDataEx. --- dlls/pdh/pdh.spec | 2 +- dlls/pdh/pdh_main.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++ dlls/pdh/tests/pdh.c | 52 ++++++++++++++++++++++++++++ include/pdh.h | 1 + 4 files changed, 145 insertions(+), 1 deletions(-) diff --git a/dlls/pdh/pdh.spec b/dlls/pdh/pdh.spec index 795a45e..8735c0f 100644 --- a/dlls/pdh/pdh.spec +++ b/dlls/pdh/pdh.spec @@ -16,7 +16,7 @@ @ stdcall PdhCloseQuery(ptr) @ stdcall PdhCollectQueryData(ptr) @ stdcall PdhCollectQueryDataWithTime(ptr ptr) -@ stub PdhCollectQueryDataEx +@ stdcall PdhCollectQueryDataEx(ptr long ptr) @ stub PdhComputeCounterStatistics @ stub PdhConnectMachineA @ stub PdhConnectMachineW diff --git a/dlls/pdh/pdh_main.c b/dlls/pdh/pdh_main.c index 8d5c081..479fe3b 100644 --- a/dlls/pdh/pdh_main.c +++ b/dlls/pdh/pdh_main.c @@ -151,6 +151,10 @@ struct query { DWORD magic; /* signature */ DWORD_PTR user; /* user data */ + HANDLE thread; /* collect thread */ + DWORD interval; /* collect interval */ + HANDLE wait; /* wait event */ + HANDLE stop; /* stop event */ struct list counters; /* counter list */ }; @@ -315,6 +319,18 @@ PDH_STATUS WINAPI PdhAddEnglishCounterW( PDH_HQUERY query, LPCWSTR path, return PdhAddCounterW( query, path, userdata, counter ); } +/* caller must hold query lock */ +static void shutdown_query_thread( struct query *query ) +{ + SetEvent( query->stop ); + WaitForSingleObject( query->thread, INFINITE ); + + CloseHandle( query->stop ); + CloseHandle( query->thread ); + + query->thread = NULL; +} + /*********************************************************************** * PdhCloseQuery (PDH.@) */ @@ -332,6 +348,8 @@ PDH_STATUS WINAPI PdhCloseQuery( PDH_HQUERY handle ) return PDH_INVALID_HANDLE; } + if (query->thread) shutdown_query_thread( query ); + LIST_FOR_EACH_SAFE( item, next, &query->counters ) { struct counter *counter = LIST_ENTRY( item, struct counter, entry ); @@ -391,6 +409,79 @@ PDH_STATUS WINAPI PdhCollectQueryData( PDH_HQUERY handle ) return ERROR_SUCCESS; } +static DWORD CALLBACK collect_query_thread( void *arg ) +{ + struct query *query = arg; + DWORD interval = query->interval; + HANDLE stop = query->stop; + + SetEvent( stop ); + for (;;) + { + if (WaitForSingleObject( stop, interval ) != WAIT_TIMEOUT) ExitThread( 0 ); + + EnterCriticalSection( &pdh_handle_cs ); + if (!query || query->magic != PDH_MAGIC_QUERY) + { + LeaveCriticalSection( &pdh_handle_cs ); + ExitThread( PDH_INVALID_HANDLE ); + } + + collect_query_data( query ); + + if (!SetEvent( query->wait )) + { + LeaveCriticalSection( &pdh_handle_cs ); + ExitThread( 0 ); + } + LeaveCriticalSection( &pdh_handle_cs ); + } +} + +/*********************************************************************** + * PdhCollectQueryDataEx (PDH.@) + */ +PDH_STATUS WINAPI PdhCollectQueryDataEx( PDH_HQUERY handle, DWORD interval, HANDLE event ) +{ + PDH_STATUS ret; + struct query *query = handle; + + TRACE("%p %d %p\n", handle, interval, event); + + EnterCriticalSection( &pdh_handle_cs ); + if (!query || query->magic != PDH_MAGIC_QUERY) + { + LeaveCriticalSection( &pdh_handle_cs ); + return PDH_INVALID_HANDLE; + } + if (list_empty( &query->counters )) + { + LeaveCriticalSection( &pdh_handle_cs ); + return PDH_NO_DATA; + } + if (query->thread) shutdown_query_thread( query ); + if (!(query->stop = CreateEventW( NULL, FALSE, FALSE, NULL ))) + { + ret = GetLastError(); + LeaveCriticalSection( &pdh_handle_cs ); + return ret; + } + query->wait = event; + query->interval = interval * 1000; + if (!(query->thread = CreateThread( NULL, 0, collect_query_thread, query, 0, NULL ))) + { + ret = GetLastError(); + CloseHandle( query->stop ); + + LeaveCriticalSection( &pdh_handle_cs ); + return ret; + } + WaitForSingleObject( query->stop, INFINITE ); + + LeaveCriticalSection( &pdh_handle_cs ); + return ERROR_SUCCESS; +} + /*********************************************************************** * PdhCollectQueryDataWithTime (PDH.@) */ diff --git a/dlls/pdh/tests/pdh.c b/dlls/pdh/tests/pdh.c index 85b0853..2853f8b 100644 --- a/dlls/pdh/tests/pdh.c +++ b/dlls/pdh/tests/pdh.c @@ -797,6 +797,56 @@ static void test_PdhValidatePathExW( void ) ok(ret == ERROR_SUCCESS, "PdhValidatePathExW failed 0x%08x\n", ret); } +static void test_PdhCollectQueryDataEx(void) +{ + PDH_STATUS status; + PDH_HQUERY query; + PDH_HCOUNTER counter; + HANDLE event; + BOOL ret; + UINT i; + + status = PdhOpenQueryA( NULL, 0, &query ); + ok(status == ERROR_SUCCESS, "PdhOpenQuery failed 0x%08x\n", status); + + event = CreateEventA( NULL, FALSE, FALSE, "winetest" ); + ok(event != NULL, "CreateEvent failed\n"); + + status = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter ); + ok(status == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", status); + + status = PdhCollectQueryDataEx( NULL, 1, event ); + ok(status == PDH_INVALID_HANDLE, "PdhCollectQueryDataEx failed 0x%08x\n", status); + + status = PdhCollectQueryDataEx( query, 1, NULL ); + ok(status == ERROR_SUCCESS, "PdhCollectQueryDataEx failed 0x%08x\n", status); + + status = PdhCollectQueryDataEx( query, 1, event ); + ok(status == ERROR_SUCCESS, "PdhCollectQueryDataEx failed 0x%08x\n", status); + + status = PdhCollectQueryData( query ); + ok(status == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", status); + + for (i = 0; i < 3; i++) + { + if (WaitForSingleObject( event, INFINITE ) == WAIT_OBJECT_0) + { + PDH_FMT_COUNTERVALUE value; + + status = PdhGetFormattedCounterValue( counter, PDH_FMT_LARGE, NULL, &value ); + ok(status == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", status); + + trace( "uptime %x%08x\n", (DWORD)(value.largeValue >> 32), (DWORD)value.largeValue ); + } + } + + ret = CloseHandle( event ); + ok(ret, "CloseHandle failed\n"); + + status = PdhCloseQuery( query ); + ok(status == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", status); +} + START_TEST(pdh) { init_function_ptrs(); @@ -830,4 +880,6 @@ START_TEST(pdh) if (pPdhValidatePathExA) test_PdhValidatePathExA(); if (pPdhValidatePathExW) test_PdhValidatePathExW(); + + test_PdhCollectQueryDataEx(); } diff --git a/include/pdh.h b/include/pdh.h index 3aff6db..7018247 100644 --- a/include/pdh.h +++ b/include/pdh.h @@ -173,6 +173,7 @@ PDH_STATUS WINAPI PdhAddEnglishCounterW(PDH_HQUERY, LPCWSTR, DWORD_PTR, PDH_HCOU #define PdhAddEnglishCounter WINELIB_NAME_AW(PdhAddEnglishCounter) PDH_STATUS WINAPI PdhCloseQuery(PDH_HQUERY); PDH_STATUS WINAPI PdhCollectQueryData(PDH_HQUERY); +PDH_STATUS WINAPI PdhCollectQueryDataEx(PDH_HQUERY, DWORD, HANDLE); PDH_STATUS WINAPI PdhCollectQueryDataWithTime(PDH_HQUERY,LONGLONG *); PDH_STATUS WINAPI PdhGetCounterInfoA(PDH_HCOUNTER, BOOLEAN, LPDWORD, PPDH_COUNTER_INFO_A); PDH_STATUS WINAPI PdhGetCounterInfoW(PDH_HCOUNTER, BOOLEAN, LPDWORD, PPDH_COUNTER_INFO_W);
1
0
0
0
← Newer
1
...
94
95
96
97
98
99
100
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Results per page:
10
25
50
100
200