Added patch to implement various missing columns in Win32_VideoController wbemprox class.

This commit is contained in:
Sebastian Lackner 2017-02-20 15:37:09 +01:00
parent 2a755a9b6f
commit 33efbf2440
6 changed files with 303 additions and 0 deletions

View File

@ -375,6 +375,7 @@ patch_enable_all ()
enable_vulkan_Vulkan_Implementation="$1"
enable_wbemdisp_ISWbemSecurity="$1"
enable_wbemprox_Printer="$1"
enable_wbemprox_Win32_VideoController="$1"
enable_wevtapi_EvtNext="$1"
enable_widl_SLTG_Typelib_Support="$1"
enable_windowscodecs_32bppGrayFloat="$1"
@ -1337,6 +1338,9 @@ patch_enable ()
wbemprox-Printer)
enable_wbemprox_Printer="$2"
;;
wbemprox-Win32_VideoController)
enable_wbemprox_Win32_VideoController="$2"
;;
wevtapi-EvtNext)
enable_wevtapi_EvtNext="$2"
;;
@ -7755,6 +7759,24 @@ if test "$enable_wbemprox_Printer" -eq 1; then
) >> "$patchlist"
fi
# Patchset wbemprox-Win32_VideoController
# |
# | Modified files:
# | * dlls/wbemprox/builtin.c
# |
if test "$enable_wbemprox_Win32_VideoController" -eq 1; then
patch_apply wbemprox-Win32_VideoController/0001-wbemprox-Add-ConfigManagerErrorCode-for-Win32_VideoC.patch
patch_apply wbemprox-Win32_VideoController/0002-wbemprox-Add-Status-for-Win32_VideoController.patch
patch_apply wbemprox-Win32_VideoController/0003-wbemprox-Add-InstalledDisplayDrivers-for-Win32_Video.patch
patch_apply wbemprox-Win32_VideoController/0004-wbemprox-Add-DriverDate-for-Win32_VideoController.patch
(
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add ConfigManagerErrorCode for Win32_VideoController.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add Status for Win32_VideoController.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add InstalledDisplayDrivers for Win32_VideoController.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add DriverDate for Win32_VideoController.", 1 },';
) >> "$patchlist"
fi
# Patchset wevtapi-EvtNext
# |
# | This patchset fixes the following Wine bugs:

View File

@ -0,0 +1,85 @@
From 8941fc985e103893adbec29ad592f9f8b9dbae44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 05:41:23 +0100
Subject: wbemprox: Add ConfigManagerErrorCode for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 41 +++++++++++++++++++++++------------------
1 file changed, 23 insertions(+), 18 deletions(-)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 4dd7dcd5598..a8f8851086a 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -163,6 +163,8 @@ static const WCHAR prop_codesetW[] =
{'C','o','d','e','S','e','t',0};
static const WCHAR prop_commandlineW[] =
{'C','o','m','m','a','n','d','L','i','n','e',0};
+static const WCHAR prop_configmanagererrorcodeW[] =
+ {'C','o','n','f','i','g','M','a','n','a','g','e','r','E','r','r','o','r','C','o','d','e',0};
static const WCHAR prop_countrycodeW[] =
{'C','o','u','n','t','r','y','C','o','d','e',0};
static const WCHAR prop_cpustatusW[] =
@@ -684,24 +686,25 @@ static const struct column col_systemsecurity[] =
};
static const struct column col_videocontroller[] =
{
- { prop_adapterdactypeW, CIM_STRING },
- { prop_adapterramW, CIM_UINT32, VT_I4 },
- { prop_availabilityW, CIM_UINT16 },
- { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 },
- { prop_currenthorizontalresW, CIM_UINT32, VT_I4 },
- { prop_currentrefreshrateW, CIM_UINT32, VT_I4 },
- { prop_currentscanmodeW, CIM_UINT16, VT_I4 },
- { prop_currentverticalresW, CIM_UINT32, VT_I4 },
- { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
- { prop_driverversionW, CIM_STRING },
- { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_videoarchitectureW, CIM_UINT16, VT_I4 },
- { prop_videomemorytypeW, CIM_UINT16, VT_I4 },
- { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC }
+ { prop_adapterdactypeW, CIM_STRING },
+ { prop_adapterramW, CIM_UINT32, VT_I4 },
+ { prop_availabilityW, CIM_UINT16 },
+ { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_configmanagererrorcodeW, CIM_UINT32, VT_I4 },
+ { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 },
+ { prop_currenthorizontalresW, CIM_UINT32, VT_I4 },
+ { prop_currentrefreshrateW, CIM_UINT32, VT_I4 },
+ { prop_currentscanmodeW, CIM_UINT16, VT_I4 },
+ { prop_currentverticalresW, CIM_UINT32, VT_I4 },
+ { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
+ { prop_driverversionW, CIM_STRING },
+ { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_videoarchitectureW, CIM_UINT16, VT_I4 },
+ { prop_videomemorytypeW, CIM_UINT16, VT_I4 },
+ { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC },
};
static const WCHAR baseboard_manufacturerW[] =
@@ -1081,6 +1084,7 @@ struct record_videocontroller
UINT32 adapter_ram;
UINT16 availability;
const WCHAR *caption;
+ UINT32 config_errorcode;
UINT32 current_bitsperpixel;
UINT32 current_horizontalres;
UINT32 current_refreshrate;
@@ -3222,6 +3226,7 @@ done:
rec->adapter_dactype = videocontroller_dactypeW;
rec->adapter_ram = vidmem;
rec->availability = 3; /* Running or Full Power */
+ rec->config_errorcode = 0; /* no error */
rec->caption = heap_strdupW( name );
rec->current_bitsperpixel = get_bits_per_pixel( &hres, &vres );
rec->current_horizontalres = hres;
--
2.11.0

View File

@ -0,0 +1,58 @@
From de0496c36ab695d0900b2056b7d6896d0ab73060 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 05:47:40 +0100
Subject: wbemprox: Add Status for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index a8f8851086a..eb0c1495c79 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -353,6 +353,8 @@ static const WCHAR prop_startingoffsetW[] =
{'S','t','a','r','t','i','n','g','O','f','f','s','e','t',0};
static const WCHAR prop_stateW[] =
{'S','t','a','t','e',0};
+static const WCHAR prop_statusW[] =
+ {'S','t','a','t','u','s',0};
static const WCHAR prop_statusinfoW[] =
{'S','t','a','t','u','s','I','n','f','o',0};
static const WCHAR prop_strvalueW[] =
@@ -701,6 +703,7 @@ static const struct column col_videocontroller[] =
{ prop_driverversionW, CIM_STRING },
{ prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_statusW, CIM_STRING },
{ prop_videoarchitectureW, CIM_UINT16, VT_I4 },
{ prop_videomemorytypeW, CIM_UINT16, VT_I4 },
{ prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
@@ -793,6 +796,8 @@ static const WCHAR videocontroller_deviceidW[] =
{'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r','1',0};
static const WCHAR videocontroller_driverversionW[] =
{'1','.','0',0};
+static const WCHAR videocontroller_statusW[] =
+ {'O','K',0};
#include "pshpack1.h"
struct record_baseboard
@@ -1095,6 +1100,7 @@ struct record_videocontroller
const WCHAR *driverversion;
const WCHAR *name;
const WCHAR *pnpdevice_id;
+ const WCHAR *status;
UINT16 videoarchitecture;
UINT16 videomemorytype;
const WCHAR *videomodedescription;
@@ -3238,6 +3244,7 @@ done:
rec->driverversion = videocontroller_driverversionW;
rec->name = heap_strdupW( name );
rec->pnpdevice_id = get_pnpdeviceid( &desc );
+ rec->status = videocontroller_statusW;
rec->videoarchitecture = 2; /* Unknown */
rec->videomemorytype = 2; /* Unknown */
wsprintfW( mode, fmtW, hres, vres, (UINT64)1 << rec->current_bitsperpixel );
--
2.11.0

View File

@ -0,0 +1,79 @@
From 649bd4d7d1d114846041edfa13941864a6c2b02c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 06:17:57 +0100
Subject: wbemprox: Add InstalledDisplayDrivers for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index eb0c1495c79..4da7613f24b 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -241,6 +241,8 @@ static const WCHAR prop_indexW[] =
{'I','n','d','e','x',0};
static const WCHAR prop_installdateW[] =
{'I','n','s','t','a','l','l','D','a','t','e',0};
+static const WCHAR prop_installeddisplaydriversW[]=
+ {'I','n','s','t','a','l','l','e','d','D','i','s','p','l','a','y','D','r','i','v','e','r','s',0};
static const WCHAR prop_interfaceindexW[] =
{'I','n','t','e','r','f','a','c','e','I','n','d','e','x',0};
static const WCHAR prop_interfacetypeW[] =
@@ -701,6 +703,7 @@ static const struct column col_videocontroller[] =
{ prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
{ prop_driverversionW, CIM_STRING },
+ { prop_installeddisplaydriversW,CIM_STRING },
{ prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_statusW, CIM_STRING },
@@ -1098,6 +1101,7 @@ struct record_videocontroller
const WCHAR *description;
const WCHAR *device_id;
const WCHAR *driverversion;
+ const WCHAR *installeddriver;
const WCHAR *name;
const WCHAR *pnpdevice_id;
const WCHAR *status;
@@ -3198,6 +3202,29 @@ static WCHAR *get_pnpdeviceid( DXGI_ADAPTER_DESC *desc )
return ret;
}
+#define HW_VENDOR_AMD 0x1002
+#define HW_VENDOR_NVIDIA 0x10de
+#define HW_VENDOR_VMWARE 0x15ad
+#define HW_VENDOR_INTEL 0x8086
+
+static const WCHAR* get_video_driver(UINT vendorid)
+{
+ static const WCHAR driver_amdW[] = {'a','t','i','c','f','x','3','2','.','d','l','l',0};
+ static const WCHAR driver_intelW[] = {'i','g','d','u','m','d','i','m','3','2','.','d','l','l',0};
+ static const WCHAR driver_nvidiaW[] = {'n','v','d','3','d','u','m','.','d','l','l',0};
+ static const WCHAR driver_wineW[] = {'w','i','n','e','.','d','l','l',0};
+
+ /* FIXME: wined3d has a better table, but we can not access this information through dxgi */
+
+ if (vendorid == HW_VENDOR_AMD)
+ return driver_amdW;
+ else if (vendorid == HW_VENDOR_NVIDIA)
+ return driver_nvidiaW;
+ else if (vendorid == HW_VENDOR_INTEL)
+ return driver_intelW;
+ return driver_wineW;
+}
+
static enum fill_status fill_videocontroller( struct table *table, const struct expr *cond )
{
static const WCHAR fmtW[] = {'%','u',' ','x',' ','%','u',' ','x',' ','%','I','6','4','u',' ','c','o','l','o','r','s',0};
@@ -3242,6 +3269,7 @@ done:
rec->description = heap_strdupW( name );
rec->device_id = videocontroller_deviceidW;
rec->driverversion = videocontroller_driverversionW;
+ rec->installeddriver = get_video_driver( desc.VendorId );
rec->name = heap_strdupW( name );
rec->pnpdevice_id = get_pnpdeviceid( &desc );
rec->status = videocontroller_statusW;
--
2.11.0

View File

@ -0,0 +1,58 @@
From b7325b56bd63c485c58678378b549f856329bb09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 06:49:40 +0100
Subject: wbemprox: Add DriverDate for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 4da7613f24b..ffcffaa621c 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -213,6 +213,8 @@ static const WCHAR prop_domainroleW[] =
{'D','o','m','a','i','n','R','o','l','e',0};
static const WCHAR prop_driveW[] =
{'D','r','i','v','e',0};
+static const WCHAR prop_driverdateW[] =
+ {'D','r','i','v','e','r','D','a','t','e',0};
static const WCHAR prop_drivernameW[] =
{'D','r','i','v','e','r','N','a','m','e',0};
static const WCHAR prop_driverversionW[] =
@@ -702,6 +704,7 @@ static const struct column col_videocontroller[] =
{ prop_currentverticalresW, CIM_UINT32, VT_I4 },
{ prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
+ { prop_driverdateW, CIM_DATETIME },
{ prop_driverversionW, CIM_STRING },
{ prop_installeddisplaydriversW,CIM_STRING },
{ prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
@@ -797,6 +800,8 @@ static const WCHAR videocontroller_dactypeW[] =
{'I','n','t','e','g','r','a','t','e','d',' ','R','A','M','D','A','C',0};
static const WCHAR videocontroller_deviceidW[] =
{'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r','1',0};
+static const WCHAR videocontroller_driverDateW[] =
+ {'2','0','1','7','0','1','0','1','0','0','0','0','0','0','.','0','0','0','0','0','0','+','0','0','0',0};
static const WCHAR videocontroller_driverversionW[] =
{'1','.','0',0};
static const WCHAR videocontroller_statusW[] =
@@ -1100,6 +1105,7 @@ struct record_videocontroller
UINT32 current_verticalres;
const WCHAR *description;
const WCHAR *device_id;
+ const WCHAR *driverdate;
const WCHAR *driverversion;
const WCHAR *installeddriver;
const WCHAR *name;
@@ -3268,6 +3274,7 @@ done:
rec->current_verticalres = vres;
rec->description = heap_strdupW( name );
rec->device_id = videocontroller_deviceidW;
+ rec->driverdate = videocontroller_driverDateW;
rec->driverversion = videocontroller_driverversionW;
rec->installeddriver = get_video_driver( desc.VendorId );
rec->name = heap_strdupW( name );
--
2.11.0

View File

@ -0,0 +1 @@
Fixes: Implement various missing columns in Win32_VideoController wbemprox class