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
June 2022
----- 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
2 participants
791 discussions
Start a n
N
ew thread
Biswapriyo Nath : include: Add ID3D12Device2 declaration in vkd3d_d3d12.idl.
by Alexandre Julliard
10 Jun '22
10 Jun '22
Module: vkd3d Branch: master Commit: b7fbac1c09e4714321310c958acc8a266510b815 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=b7fbac1c09e4714321310c9…
Author: Biswapriyo Nath <nathbappai(a)gmail.com> Date: Thu Jun 9 19:08:36 2022 +0530 include: Add ID3D12Device2 declaration in vkd3d_d3d12.idl. Signed-off-by: Biswapriyo Nath <nathbappai(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/vkd3d_d3d12.idl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/vkd3d_d3d12.idl b/include/vkd3d_d3d12.idl index 5190b9d7..4d96d25c 100644 --- a/include/vkd3d_d3d12.idl +++ b/include/vkd3d_d3d12.idl @@ -1641,6 +1641,12 @@ typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC D3D12_PIPELINE_STATE_FLAGS Flags; } D3D12_COMPUTE_PIPELINE_STATE_DESC; +typedef struct D3D12_PIPELINE_STATE_STREAM_DESC +{ + SIZE_T SizeInBytes; + void *pPipelineStateSubobjectStream; +} D3D12_PIPELINE_STATE_STREAM_DESC; + typedef enum D3D12_COMMAND_LIST_TYPE { D3D12_COMMAND_LIST_TYPE_DIRECT = 0, @@ -2538,6 +2544,20 @@ interface ID3D12Device1 : ID3D12Device const D3D12_RESIDENCY_PRIORITY *priorities); } +[ + uuid(30baa41e-b15b-475c-a0bb-1af5c5b64328), + object, + local, + pointer_default(unique) +] +interface ID3D12Device2 : ID3D12Device1 +{ + HRESULT CreatePipelineState( + [in] const D3D12_PIPELINE_STATE_STREAM_DESC *desc, + [in] REFIID riid, + [out, iid_is(riid)] void **pipeline_state); +} + [ uuid(34ab647b-3cc8-46ac-841b-c0965645c046), object,
1
0
0
0
Biswapriyo Nath : include: Add ID3D12SharingContract interface declarations in vkd3d_d3d12sdklayers.idl.
by Alexandre Julliard
10 Jun '22
10 Jun '22
Module: vkd3d Branch: master Commit: 694e5c865b01a4728ea1620ad456816248ce88a1 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=694e5c865b01a4728ea1620…
Author: Biswapriyo Nath <nathbappai(a)gmail.com> Date: Thu Jun 9 10:40:28 2022 +0530 include: Add ID3D12SharingContract interface declarations in vkd3d_d3d12sdklayers.idl. Signed-off-by: Biswapriyo Nath <nathbappai(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/vkd3d_d3d12sdklayers.idl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/vkd3d_d3d12sdklayers.idl b/include/vkd3d_d3d12sdklayers.idl index 8238214c..c1036572 100644 --- a/include/vkd3d_d3d12sdklayers.idl +++ b/include/vkd3d_d3d12sdklayers.idl @@ -1087,6 +1087,20 @@ interface ID3D12DebugDevice2 : ID3D12DebugDevice HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE type, void *data, UINT size); } +[ + uuid(0adf7d52-929c-4e61-addb-ffed30de66ef), + object, + local, + pointer_default(unique) +] +interface ID3D12SharingContract : IUnknown +{ + void Present(ID3D12Resource *resource, UINT sub_resource, HWND window); + void SharedFenceSignal(ID3D12Fence *fence, UINT64 fence_value); + void BeginCapturableWork(REFGUID guid); + void EndCapturableWork(REFGUID guid); +} + [ uuid(0742a90b-c387-483f-b946-30a7e4e61458), object,
1
0
0
0
Biswapriyo Nath : include: Add ID3D12DebugDevice interface declarations in vkd3d_d3d12sdklayers.idl.
by Alexandre Julliard
10 Jun '22
10 Jun '22
Module: vkd3d Branch: master Commit: abd82c9e6d58c860249a592de1e0f30488325dae URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=abd82c9e6d58c860249a592…
Author: Biswapriyo Nath <nathbappai(a)gmail.com> Date: Thu Jun 9 10:40:28 2022 +0530 include: Add ID3D12DebugDevice interface declarations in vkd3d_d3d12sdklayers.idl. Signed-off-by: Biswapriyo Nath <nathbappai(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/vkd3d_d3d12sdklayers.idl | 86 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/include/vkd3d_d3d12sdklayers.idl b/include/vkd3d_d3d12sdklayers.idl index 785aba70..8238214c 100644 --- a/include/vkd3d_d3d12sdklayers.idl +++ b/include/vkd3d_d3d12sdklayers.idl @@ -906,6 +906,54 @@ typedef enum D3D12_GPU_BASED_VALIDATION_FLAGS } D3D12_GPU_BASED_VALIDATION_FLAGS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS)") +typedef enum D3D12_RLDO_FLAGS +{ + D3D12_RLDO_NONE = 0x0, + D3D12_RLDO_SUMMARY = 0x1, + D3D12_RLDO_DETAIL = 0x2, + D3D12_RLDO_IGNORE_INTERNAL = 0x4, +} D3D12_RLDO_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS)") + +typedef enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE +{ + D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS, + D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS, + D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR, +} D3D12_DEBUG_DEVICE_PARAMETER_TYPE; + +typedef enum D3D12_DEBUG_FEATURE +{ + D3D12_DEBUG_FEATURE_NONE = 0x00, + D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x01, + D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x02, + D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x04, + D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7 = 0x08, +} D3D12_DEBUG_FEATURE; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE)") + +typedef enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS +{ + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0x00, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x01, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x02, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x04, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x07 +} D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS)") + +typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS +{ + UINT MaxMessagesPerCommandList; + D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode; + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags; +} D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS; + +typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR +{ + FLOAT SlowdownFactor; +} D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; + typedef struct D3D12_MESSAGE { D3D12_MESSAGE_CATEGORY Category; @@ -1001,6 +1049,44 @@ interface ID3D12Debug5 : ID3D12Debug4 void SetEnableAutoName(BOOL enable); } +[ + uuid(3febd6dd-4973-4787-8194-e45f9e28923e), + object, + local, + pointer_default(unique) +] +interface ID3D12DebugDevice : IUnknown +{ + HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE mask); + D3D12_DEBUG_FEATURE GetFeatureMask(); + HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS flags); +} + +[ + uuid(a9b71770-d099-4a65-a698-3dee10020f88), + object, + local, + pointer_default(unique) +] +interface ID3D12DebugDevice1 : IUnknown +{ + HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE type, const void *data, UINT size); + HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE type, void *data, UINT size); + HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS flags); +} + +[ + uuid(60eccbc1-378d-4df1-894c-f8ac5ce4d7dd), + object, + local, + pointer_default(unique) +] +interface ID3D12DebugDevice2 : ID3D12DebugDevice +{ + HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE type, const void *data, UINT size); + HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE type, void *data, UINT size); +} + [ uuid(0742a90b-c387-483f-b946-30a7e4e61458), object,
1
0
0
0
Louis Lenders : advapi32: Fix spec entry for LookupPrivilegeDisplayName{A,W}.
by Alexandre Julliard
09 Jun '22
09 Jun '22
Module: wine Branch: master Commit: 561a5b8f84db68e608df022a8dbd71803f506946 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=561a5b8f84db68e608df022a…
Author: Louis Lenders <xerox.xerox2000x(a)gmail.com> Date: Thu Jun 9 20:34:16 2022 +0200 advapi32: Fix spec entry for LookupPrivilegeDisplayName{A,W}. Signed-off-by: Louis Lenders <xerox.xerox2000x(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/advapi32/advapi32.spec | 4 ++-- dlls/advapi32/security.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec index 3b5f587d40e..3cbf5638ae4 100644 --- a/dlls/advapi32/advapi32.spec +++ b/dlls/advapi32/advapi32.spec @@ -433,8 +433,8 @@ @ stdcall LookupAccountSidLocalA(ptr ptr ptr ptr ptr ptr) @ stdcall LookupAccountSidLocalW(ptr ptr ptr ptr ptr ptr) @ stdcall LookupAccountSidW(wstr ptr ptr ptr ptr ptr ptr) -@ stdcall LookupPrivilegeDisplayNameA(str str str ptr ptr) -@ stdcall LookupPrivilegeDisplayNameW(wstr wstr wstr ptr ptr) +@ stdcall LookupPrivilegeDisplayNameA(str str ptr ptr ptr) +@ stdcall LookupPrivilegeDisplayNameW(wstr wstr ptr ptr ptr) @ stdcall LookupPrivilegeNameA(str ptr ptr ptr) @ stdcall LookupPrivilegeNameW(wstr ptr ptr ptr) @ stdcall LookupPrivilegeValueA(str str ptr) diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c index e0f7b63aedb..599199c325c 100644 --- a/dlls/advapi32/security.c +++ b/dlls/advapi32/security.c @@ -566,7 +566,7 @@ BOOL WINAPI LookupPrivilegeDisplayNameA( LPCSTR lpSystemName, LPCSTR lpName, LPS LPDWORD cchDisplayName, LPDWORD lpLanguageId ) { FIXME("%s %s %s %p %p - stub\n", debugstr_a(lpSystemName), debugstr_a(lpName), - debugstr_a(lpDisplayName), cchDisplayName, lpLanguageId); + lpDisplayName, cchDisplayName, lpLanguageId); return FALSE; } @@ -574,8 +574,8 @@ BOOL WINAPI LookupPrivilegeDisplayNameA( LPCSTR lpSystemName, LPCSTR lpName, LPS BOOL WINAPI LookupPrivilegeDisplayNameW( LPCWSTR lpSystemName, LPCWSTR lpName, LPWSTR lpDisplayName, LPDWORD cchDisplayName, LPDWORD lpLanguageId ) { - FIXME("%s %s %s %p %p - stub\n", debugstr_w(lpSystemName), debugstr_w(lpName), - debugstr_w(lpDisplayName), cchDisplayName, lpLanguageId); + FIXME("%s %s %p %p %p - stub\n", debugstr_w(lpSystemName), debugstr_w(lpName), + lpDisplayName, cchDisplayName, lpLanguageId); return FALSE; }
1
0
0
0
Zebediah Figura : hidclass.sys: No longer set the DEVPROPKEY_HID_HANDLE property.
by Alexandre Julliard
09 Jun '22
09 Jun '22
Module: wine Branch: master Commit: e63cdb3cadf301ed1893298a306771665d0c7753 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=e63cdb3cadf301ed1893298a…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Thu Jun 9 20:32:53 2022 +0200 hidclass.sys: No longer set the DEVPROPKEY_HID_HANDLE property. Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/hidclass.sys/pnp.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/dlls/hidclass.sys/pnp.c b/dlls/hidclass.sys/pnp.c index cc4e3b96c82..873c55c4a67 100644 --- a/dlls/hidclass.sys/pnp.c +++ b/dlls/hidclass.sys/pnp.c @@ -24,7 +24,6 @@ #include "initguid.h" #include "hid.h" #include "devguid.h" -#include "devpkey.h" #include "ntddmou.h" #include "ntddkbd.h" #include "ddk/hidtypes.h" @@ -37,7 +36,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(hid); -DEFINE_DEVPROPKEY(DEVPROPKEY_HID_HANDLE, 0xbc62e415, 0xf4fe, 0x405c, 0x8e, 0xda, 0x63, 0x6f, 0xb5, 0x9f, 0x08, 0x98, 2); DEFINE_GUID(GUID_DEVINTERFACE_WINEXINPUT, 0x6c53d5fd, 0x6480, 0x440f, 0xb6, 0x18, 0x47, 0x67, 0x50, 0xc5, 0xe1, 0xa6); #ifdef __ASM_USE_FASTCALL_WRAPPER @@ -286,15 +284,6 @@ static void create_child(minidriver *minidriver, DEVICE_OBJECT *fdo) IoInvalidateDeviceRelations(fdo_ext->u.fdo.hid_ext.PhysicalDeviceObject, BusRelations); - if ((status = IoSetDevicePropertyData(child_pdo, &DEVPROPKEY_HID_HANDLE, LOCALE_NEUTRAL, - PLUGPLAY_PROPERTY_PERSISTENT, DEVPROP_TYPE_UINT32, - sizeof(pdo_ext->u.pdo.rawinput_handle), &pdo_ext->u.pdo.rawinput_handle))) - { - ERR( "Failed to set device handle property, status %#lx\n", status ); - IoDeleteDevice(child_pdo); - return; - } - pdo_ext->u.pdo.poll_interval = DEFAULT_POLL_INTERVAL; HID_StartDeviceThread(child_pdo);
1
0
0
0
Zebediah Figura : user32: Use IOCTL_HID_GET_WINE_RAWINPUT_HANDLE to retrieve the raw input handle.
by Alexandre Julliard
09 Jun '22
09 Jun '22
Module: wine Branch: master Commit: 17987026554876bd1fd93b5c1ece2907a05c9300 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=17987026554876bd1fd93b5c…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Thu Jun 9 20:32:52 2022 +0200 user32: Use IOCTL_HID_GET_WINE_RAWINPUT_HANDLE to retrieve the raw input handle. Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/rawinput.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c index 4dc240b58b3..e7ff854e3b5 100644 --- a/dlls/user32/rawinput.c +++ b/dlls/user32/rawinput.c @@ -39,14 +39,11 @@ #include "initguid.h" #include "ddk/hidclass.h" -#include "devpkey.h" #include "ntddmou.h" #include "ntddkbd.h" WINE_DEFAULT_DEBUG_CHANNEL(rawinput); -DEFINE_DEVPROPKEY(DEVPROPKEY_HID_HANDLE, 0xbc62e415, 0xf4fe, 0x405c, 0x8e, 0xda, 0x63, 0x6f, 0xb5, 0x9f, 0x08, 0x98, 2); - struct device { SP_DEVICE_INTERFACE_DETAIL_DATA_W *detail; @@ -119,13 +116,6 @@ static struct device *add_device( HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface, return FALSE; } - if (!SetupDiGetDevicePropertyW(set, &device_data, &DEVPROPKEY_HID_HANDLE, &type, (BYTE *)&handle, sizeof(handle), NULL, 0) || - type != DEVPROP_TYPE_UINT32) - { - ERR("Failed to get device handle, error %#lx.\n", GetLastError()); - return NULL; - } - if (!(detail = malloc(size))) { ERR("Failed to allocate memory.\n"); @@ -146,6 +136,15 @@ static struct device *add_device( HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface, return NULL; } + status = NtDeviceIoControlFile( file, NULL, NULL, NULL, &io, + IOCTL_HID_GET_WINE_RAWINPUT_HANDLE, + NULL, 0, &handle, sizeof(handle) ); + if (status) + { + ERR( "Failed to get raw input handle, status %#lx.\n", status ); + goto fail; + } + memset( &info, 0, sizeof(info) ); info.cbSize = sizeof(info); info.dwType = type;
1
0
0
0
Zebediah Figura : dinput: Use IOCTL_HID_GET_WINE_RAWINPUT_HANDLE to retrieve the raw input handle.
by Alexandre Julliard
09 Jun '22
09 Jun '22
Module: wine Branch: master Commit: cf2e168c3a324da59f1358610fd5da01f7299b64 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=cf2e168c3a324da59f135861…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Thu Jun 9 20:32:51 2022 +0200 dinput: Use IOCTL_HID_GET_WINE_RAWINPUT_HANDLE to retrieve the raw input handle. Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dinput/joystick_hid.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/dlls/dinput/joystick_hid.c b/dlls/dinput/joystick_hid.c index 1f4b300be74..3dc7b70aac4 100644 --- a/dlls/dinput/joystick_hid.c +++ b/dlls/dinput/joystick_hid.c @@ -30,7 +30,9 @@ #include "winuser.h" #include "winerror.h" #include "winreg.h" +#include "winioctl.h" +#include "ddk/hidclass.h" #include "ddk/hidsdi.h" #include "setupapi.h" #include "devguid.h" @@ -41,7 +43,6 @@ #include "device_private.h" #include "initguid.h" -#include "devpkey.h" #include "wine/debug.h" #include "wine/hid.h" @@ -51,7 +52,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(dinput); DEFINE_GUID( GUID_DEVINTERFACE_WINEXINPUT,0x6c53d5fd,0x6480,0x440f,0xb6,0x18,0x47,0x67,0x50,0xc5,0xe1,0xa6 ); DEFINE_GUID( hid_joystick_guid, 0x9e573edb, 0x7734, 0x11d2, 0x8d, 0x4a, 0x23, 0x90, 0x3f, 0xb6, 0xbd, 0xf7 ); DEFINE_GUID( device_path_guid, 0x00000000, 0x0000, 0x0000, 0x8d, 0x4a, 0x23, 0x90, 0x3f, 0xb6, 0xbd, 0xf8 ); -DEFINE_DEVPROPKEY( DEVPROPKEY_HID_HANDLE, 0xbc62e415, 0xf4fe, 0x405c, 0x8e, 0xda, 0x63, 0x6f, 0xb5, 0x9f, 0x08, 0x98, 2 ); struct pid_control_report { @@ -1413,19 +1413,20 @@ static DWORD device_type_for_version( DWORD type, DWORD version ) } } -static HRESULT hid_joystick_device_try_open( UINT32 handle, const WCHAR *path, HANDLE *device, - PHIDP_PREPARSED_DATA *preparsed, HIDD_ATTRIBUTES *attrs, - HIDP_CAPS *caps, DIDEVICEINSTANCEW *instance, DWORD version ) +static HRESULT hid_joystick_device_try_open( const WCHAR *path, HANDLE *device, PHIDP_PREPARSED_DATA *preparsed, + HIDD_ATTRIBUTES *attrs, HIDP_CAPS *caps, DIDEVICEINSTANCEW *instance, + DWORD version ) { BOOL has_accelerator, has_brake, has_clutch, has_z, has_pov; PHIDP_PREPARSED_DATA preparsed_data = NULL; HIDP_LINK_COLLECTION_NODE nodes[256]; - DWORD type, button_count = 0; + DWORD type, size, button_count = 0; HIDP_BUTTON_CAPS buttons[10]; HIDP_VALUE_CAPS value; HANDLE device_file; ULONG node_count; NTSTATUS status; + UINT32 handle; USHORT count; device_file = CreateFileW( path, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, @@ -1448,6 +1449,12 @@ static HRESULT hid_joystick_device_try_open( UINT32 handle, const WCHAR *path, H if (!HidD_GetProductString( device_file, instance->tszInstanceName, MAX_PATH * sizeof(WCHAR) )) goto failed; if (!HidD_GetProductString( device_file, instance->tszProductName, MAX_PATH * sizeof(WCHAR) )) goto failed; + if (!DeviceIoControl( device_file, IOCTL_HID_GET_WINE_RAWINPUT_HANDLE, NULL, 0, &handle, sizeof(handle), &size, NULL )) + { + ERR( "failed to get raw input handle, error %lu\n", GetLastError() ); + goto failed; + } + instance->guidInstance = hid_joystick_guid; instance->guidInstance.Data1 ^= handle; instance->guidProduct = dinput_pidvid_guid; @@ -1574,9 +1581,8 @@ static HRESULT hid_joystick_device_open( int index, const GUID *guid, DIDEVICEIN SP_DEVINFO_DATA devinfo = {.cbSize = sizeof(devinfo)}; WCHAR device_id[MAX_PATH], *tmp; HDEVINFO set, xi_set; - UINT32 i = 0, handle; BOOL override; - DWORD type; + UINT32 i = 0; GUID hid; TRACE( "index %d, guid %s\n", index, debugstr_guid( guid ) ); @@ -1594,11 +1600,7 @@ static HRESULT hid_joystick_device_open( int index, const GUID *guid, DIDEVICEIN detail->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W); if (!SetupDiGetDeviceInterfaceDetailW( set, &iface, detail, sizeof(buffer), NULL, &devinfo )) continue; - if (!SetupDiGetDevicePropertyW( set, &devinfo, &DEVPROPKEY_HID_HANDLE, &type, - (BYTE *)&handle, sizeof(handle), NULL, 0 ) || - type != DEVPROP_TYPE_UINT32) - continue; - if (FAILED(hid_joystick_device_try_open( handle, detail->DevicePath, device, preparsed, + if (FAILED(hid_joystick_device_try_open( detail->DevicePath, device, preparsed, attrs, caps, instance, version ))) continue; @@ -1618,7 +1620,7 @@ static HRESULT hid_joystick_device_open( int index, const GUID *guid, DIDEVICEIN CloseHandle( *device ); HidD_FreePreparsedData( *preparsed ); - if (FAILED(hid_joystick_device_try_open( handle, detail->DevicePath, device, preparsed, + if (FAILED(hid_joystick_device_try_open( detail->DevicePath, device, preparsed, attrs, caps, instance, version ))) continue; } @@ -2040,7 +2042,7 @@ HRESULT hid_joystick_create_device( struct dinput *dinput, const GUID *guid, IDi else { wcscpy( impl->device_path, *(const WCHAR **)guid ); - hr = hid_joystick_device_try_open( 0, impl->device_path, &impl->device, &impl->preparsed, &attrs, + hr = hid_joystick_device_try_open( impl->device_path, &impl->device, &impl->preparsed, &attrs, &impl->caps, &impl->base.instance, dinput->dwVersion ); } if (hr != DI_OK) goto failed;
1
0
0
0
Zebediah Figura : hidclass.sys: Expose an ioctl to retrieve the raw input handle.
by Alexandre Julliard
09 Jun '22
09 Jun '22
Module: wine Branch: master Commit: b68d2aad192e13fa182b0c33afb64af91395594b URL:
https://source.winehq.org/git/wine.git/?a=commit;h=b68d2aad192e13fa182b0c33…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Thu Jun 9 20:32:50 2022 +0200 hidclass.sys: Expose an ioctl to retrieve the raw input handle. Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/hidclass.sys/device.c | 12 ++++++++++++ include/wine/hid.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/dlls/hidclass.sys/device.c b/dlls/hidclass.sys/device.c index 9d917bbc674..7c0dbdcbc10 100644 --- a/dlls/hidclass.sys/device.c +++ b/dlls/hidclass.sys/device.c @@ -655,6 +655,18 @@ NTSTATUS WINAPI pdo_ioctl(DEVICE_OBJECT *device, IRP *irp) case IOCTL_HID_SET_OUTPUT_REPORT: status = hid_device_xfer_report( ext, code, irp ); break; + + case IOCTL_HID_GET_WINE_RAWINPUT_HANDLE: + if (irpsp->Parameters.DeviceIoControl.OutputBufferLength < sizeof(ULONG)) + status = STATUS_BUFFER_OVERFLOW; + else + { + *(ULONG *)irp->AssociatedIrp.SystemBuffer = ext->u.pdo.rawinput_handle; + irp->IoStatus.Information = sizeof(ULONG); + status = STATUS_SUCCESS; + } + break; + default: { ULONG code = irpsp->Parameters.DeviceIoControl.IoControlCode; diff --git a/include/wine/hid.h b/include/wine/hid.h index 236888cbdc7..6a92317551f 100644 --- a/include/wine/hid.h +++ b/include/wine/hid.h @@ -227,4 +227,6 @@ struct hid_preparsed_data #define PID_USAGE_CREATE_NEW_EFFECT_REPORT ((USAGE) 0xab) #define PID_USAGE_RAM_POOL_AVAILABLE ((USAGE) 0xac) +#define IOCTL_HID_GET_WINE_RAWINPUT_HANDLE HID_BUFFER_CTL_CODE(300) + #endif /* __WINE_PARSE_H */
1
0
0
0
Rémi Bernon : kernelbase: Use RtlSetUserValueHeap to store HLOCAL.
by Alexandre Julliard
09 Jun '22
09 Jun '22
Module: wine Branch: master Commit: 64efaf26b75cd83cc624cdf6c1490755c62f56a3 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=64efaf26b75cd83cc624cdf6…
Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Thu Jun 9 12:09:26 2022 +0200 kernelbase: Use RtlSetUserValueHeap to store HLOCAL. Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/kernelbase/memory.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c index 776f0aafa18..409b35089e3 100644 --- a/dlls/kernelbase/memory.c +++ b/dlls/kernelbase/memory.c @@ -44,6 +44,9 @@ WINE_DECLARE_DEBUG_CHANNEL(virtual); WINE_DECLARE_DEBUG_CHANNEL(globalmem); +BOOLEAN WINAPI RtlSetUserValueHeap( HANDLE handle, ULONG flags, void *ptr, void *user_value ); + + /*********************************************************************** * Virtual memory functions ***********************************************************************/ @@ -842,6 +845,7 @@ HLOCAL WINAPI DECLSPEC_HOTPATCH LocalAlloc( UINT flags, SIZE_T size ) if (!(flags & LMEM_MOVEABLE)) /* pointer */ { ptr = HeapAlloc( heap, heap_flags, size ); + if (ptr) RtlSetUserValueHeap( heap, heap_flags, ptr, ptr ); TRACE_(globalmem)( "return %p\n", ptr ); return ptr; } @@ -869,6 +873,7 @@ HLOCAL WINAPI DECLSPEC_HOTPATCH LocalAlloc( UINT flags, SIZE_T size ) else { if (!(ptr = HeapAlloc( heap, heap_flags, size + HLOCAL_STORAGE ))) goto failed; + RtlSetUserValueHeap( heap, heap_flags, ptr, handle ); *(HLOCAL *)ptr = handle; mem->ptr = (char *)ptr + HLOCAL_STORAGE; } @@ -1014,6 +1019,7 @@ HLOCAL WINAPI DECLSPEC_HOTPATCH LocalReAlloc( HLOCAL handle, SIZE_T size, UINT f /* reallocate fixed memory */ if (!(flags & LMEM_MOVEABLE)) heap_flags |= HEAP_REALLOC_IN_PLACE_ONLY; ret = HeapReAlloc( GetProcessHeap(), heap_flags, ptr, size ); + if (ret) RtlSetUserValueHeap( GetProcessHeap(), heap_flags, ret, ret ); } else if ((mem = unsafe_mem_from_HLOCAL( handle ))) { @@ -1027,6 +1033,7 @@ HLOCAL WINAPI DECLSPEC_HOTPATCH LocalReAlloc( HLOCAL handle, SIZE_T size, UINT f if ((ptr = HeapReAlloc( GetProcessHeap(), heap_flags, (char *)mem->ptr - HLOCAL_STORAGE, size + HLOCAL_STORAGE ))) { + RtlSetUserValueHeap( GetProcessHeap(), heap_flags, ptr, handle ); mem->ptr = (char *)ptr + HLOCAL_STORAGE; ret = handle; } @@ -1035,6 +1042,7 @@ HLOCAL WINAPI DECLSPEC_HOTPATCH LocalReAlloc( HLOCAL handle, SIZE_T size, UINT f { if ((ptr = HeapAlloc( GetProcessHeap(), heap_flags, size + HLOCAL_STORAGE ))) { + RtlSetUserValueHeap( GetProcessHeap(), heap_flags, ptr, handle ); *(HLOCAL *)ptr = handle; mem->ptr = (char *)ptr + HLOCAL_STORAGE; ret = handle;
1
0
0
0
Rémi Bernon : ntdll: Implement RtlSetUserValueHeap.
by Alexandre Julliard
09 Jun '22
09 Jun '22
Module: wine Branch: master Commit: ff864e5621c5f31ef697ef06b3f814c1a7f66550 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=ff864e5621c5f31ef697ef06…
Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Tue Jun 7 15:03:31 2022 +0200 ntdll: Implement RtlSetUserValueHeap. Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/kernel32/tests/heap.c | 13 +++---------- dlls/ntdll/heap.c | 36 ++++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c index 97f4d9c9fe3..4221fd39c0f 100644 --- a/dlls/kernel32/tests/heap.c +++ b/dlls/kernel32/tests/heap.c @@ -354,9 +354,7 @@ static void test_HeapCreate(void) ok( !!ptrs[i], "HeapAlloc failed, error %lu\n", GetLastError() ); align |= (UINT_PTR)ptrs[i]; } - todo_wine_if( sizeof(void *) == 8 ) ok( !(align & (8 * sizeof(void *) - 1)), "got wrong alignment\n" ); - todo_wine_if( sizeof(void *) == 8 ) ok( align & (8 * sizeof(void *)), "got wrong alignment\n" ); for (i = 0; i < ARRAY_SIZE(ptrs); ++i) { @@ -2228,7 +2226,7 @@ static void test_block_layout( HANDLE heap, DWORD global_flags, DWORD heap_flags ok( !!ptr2, "HeapAlloc failed, error %lu\n", GetLastError() ); align = (UINT_PTR)ptr0 | (UINT_PTR)ptr1 | (UINT_PTR)ptr2; - todo_wine_if( sizeof(void *) == 8 || alloc_size == 0x7efe9 ) + todo_wine_if( alloc_size == 0x7efe9 ) ok( !(align & (8 * sizeof(void *) - 1)), "wrong align\n" ); expect_size = max( alloc_size, 2 * sizeof(void *) ); @@ -2303,7 +2301,6 @@ static void test_block_layout( HANDLE heap, DWORD global_flags, DWORD heap_flags ok( tmp_flags == 0x200, "got flags %#lx\n", tmp_flags ); ret = pRtlSetUserValueHeap( heap, 0, ptr0, (void *)0xdeadbeef ); - todo_wine ok( ret, "RtlSetUserValueHeap failed, error %lu\n", GetLastError() ); SetLastError( 0xdeadbeef ); ret = pRtlSetUserFlagsHeap( heap, 0, ptr0, 0, 0x1000 ); @@ -2330,13 +2327,9 @@ static void test_block_layout( HANDLE heap, DWORD global_flags, DWORD heap_flags "got flags %#lx\n", tmp_flags ); user_ptr = (void **)(ptr0 + alloc_size + tail_size); - todo_wine ok( user_ptr[1] == (void *)0xdeadbeef, "unexpected user value\n" ); - if (user_ptr[1] == (void *)0xdeadbeef) - { - user_ptr[0] = (void *)0xdeadbeef; - user_ptr[1] = (void *)0xdeadbee0; - } + user_ptr[0] = (void *)0xdeadbeef; + user_ptr[1] = (void *)0xdeadbee0; tmp_ptr = NULL; tmp_flags = 0; diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c index 6d9f949b6a9..64d4f6644af 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -105,10 +105,11 @@ C_ASSERT( sizeof(struct entry) == 2 * ALIGNMENT ); typedef struct { + SIZE_T __pad[sizeof(SIZE_T) / sizeof(DWORD)]; struct list entry; /* entry in heap large blocks list */ SIZE_T data_size; /* size of user data */ SIZE_T block_size; /* total size of virtual memory block */ - DWORD pad[2]; /* padding to ensure 16-byte alignment of data */ + void *user_value; DWORD size; /* fields for compatibility with normal arenas */ DWORD magic; /* these must remain at the end of the structure */ } ARENA_LARGE; @@ -362,6 +363,12 @@ static inline void mark_block_tail( struct block *block, DWORD flags ) memset( tail, ARENA_TAIL_FILLER, ALIGNMENT ); } valgrind_make_noaccess( tail, ALIGNMENT ); + if (flags & HEAP_ADD_USER_INFO) + { + if (flags & HEAP_TAIL_CHECKING_ENABLED || RUNNING_ON_VALGRIND) tail += ALIGNMENT; + valgrind_make_writable( tail + sizeof(void *), sizeof(void *) ); + memset( tail + sizeof(void *), 0, sizeof(void *) ); + } } /* initialize contents of a newly created block of memory */ @@ -2001,10 +2008,31 @@ BOOLEAN WINAPI RtlGetUserInfoHeap( HANDLE heap, ULONG flags, void *ptr, void **u /*********************************************************************** * RtlSetUserValueHeap (NTDLL.@) */ -BOOLEAN WINAPI RtlSetUserValueHeap( HANDLE heap, ULONG flags, void *ptr, void *user_value ) +BOOLEAN WINAPI RtlSetUserValueHeap( HANDLE handle, ULONG flags, void *ptr, void *user_value ) { - FIXME( "heap %p, flags %#x, ptr %p, user_value %p stub!\n", heap, flags, ptr, user_value ); - return FALSE; + ARENA_LARGE *large = (ARENA_LARGE *)ptr - 1; + struct block *block; + BOOLEAN ret = TRUE; + SUBHEAP *subheap; + HEAP *heap; + char *tmp; + + TRACE( "handle %p, flags %#x, ptr %p, user_value %p.\n", handle, flags, ptr, user_value ); + + if (!(heap = HEAP_GetPtr( handle ))) return TRUE; + + heap_lock( heap, flags ); + if (!(block = unsafe_block_from_ptr( heap, ptr, &subheap ))) ret = FALSE; + else if (!subheap) large->user_value = user_value; + else + { + tmp = (char *)block + block_get_size( block ) - block->tail_size + sizeof(void *); + if ((heap_get_flags( heap, flags ) & HEAP_TAIL_CHECKING_ENABLED) || RUNNING_ON_VALGRIND) tmp += ALIGNMENT; + *(void **)tmp = user_value; + } + heap_unlock( heap, flags ); + + return ret; } /***********************************************************************
1
0
0
0
← Newer
1
...
48
49
50
51
52
53
54
...
80
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
Results per page:
10
25
50
100
200