From: Aida JonikienÄ— aidas957@gmail.com
Tomato Jones II queries most of these properties and errors out if any of them aren't found. --- dlls/wbemprox/builtin.c | 107 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c index f6991ac2d8a..d0a43bd5c68 100644 --- a/dlls/wbemprox/builtin.c +++ b/dlls/wbemprox/builtin.c @@ -463,27 +463,62 @@ static const struct column col_sysrestore[] = }; static const struct column col_videocontroller[] = { + { L"AcceleratorCapabilities", CIM_UINT16|CIM_FLAG_ARRAY }, { L"AdapterCompatibility", CIM_STRING }, { L"AdapterDACType", CIM_STRING }, { L"AdapterRAM", CIM_UINT32 }, { L"Availability", CIM_UINT16 }, + { L"CapabilityDescriptions", CIM_STRING|CIM_FLAG_ARRAY }, { L"Caption", CIM_STRING|COL_FLAG_DYNAMIC }, + { L"ColorTableEntries", CIM_UINT32 }, { L"ConfigManagerErrorCode", CIM_UINT32 }, + { L"ConfigManagerUserConfig", CIM_BOOLEAN }, + { L"CreationClassName", CIM_STRING }, { L"CurrentBitsPerPixel", CIM_UINT32 }, { L"CurrentHorizontalResolution", CIM_UINT32 }, + { L"CurrentNumberOfColors", CIM_UINT64 }, + { L"CurrentNumberOfColumns", CIM_UINT32 }, + { L"CurrentNumberOfRows", CIM_UINT32 }, { L"CurrentRefreshRate", CIM_UINT32 }, { L"CurrentScanMode", CIM_UINT16 }, { L"CurrentVerticalResolution", CIM_UINT32 }, { L"Description", CIM_STRING|COL_FLAG_DYNAMIC }, { L"DeviceId", CIM_STRING|COL_FLAG_KEY }, + { L"DeviceSpecificPens", CIM_UINT32 }, + { L"DitherType", CIM_UINT32 }, { L"DriverDate", CIM_DATETIME }, { L"DriverVersion", CIM_STRING }, + { L"ErrorCleared", CIM_BOOLEAN }, + { L"ErrorDescription", CIM_STRING }, + { L"ICMIntent", CIM_UINT32 }, + { L"ICMMethod", CIM_UINT32 }, + { L"InfFilename", CIM_STRING }, + { L"InfSection", CIM_STRING }, { L"InstalledDisplayDrivers", CIM_STRING }, + { L"LastErrorCode", CIM_UINT32 }, + { L"MaxMemorySupported", CIM_UINT32 }, + { L"MaxNumberControlled", CIM_UINT32 }, + { L"MaxRefreshRate", CIM_UINT32 }, + { L"MinRefreshRate", CIM_UINT32 }, + { L"Monochrome", CIM_BOOLEAN }, { L"Name", CIM_STRING|COL_FLAG_DYNAMIC }, + { L"NumberOfColorPlanes", CIM_UINT16 }, + { L"NumberofVideoPages", CIM_UINT32 }, { L"PNPDeviceID", CIM_STRING|COL_FLAG_DYNAMIC }, + { L"PowerManagementCapabilities", CIM_UINT16|CIM_FLAG_ARRAY }, + { L"PowerManagementSupported", CIM_BOOLEAN }, + { L"ProtocolSupported", CIM_UINT16 }, + { L"ReservedSystemPaletteEntries", CIM_UINT32 }, + { L"SpecificationVersion", CIM_UINT32 }, { L"Status", CIM_STRING }, + { L"StatusInfo", CIM_UINT16 }, + { L"SystemCreationClassName", CIM_STRING }, + { L"SystemName", CIM_STRING }, + { L"SystemPaletteEntries", CIM_UINT32 }, + { L"TimeOfLastReset", CIM_DATETIME }, { L"VideoArchitecture", CIM_UINT16 }, { L"VideoMemoryType", CIM_UINT16 }, + { L"VideoMode", CIM_UINT16 }, { L"VideoModeDescription", CIM_STRING|COL_FLAG_DYNAMIC }, { L"VideoProcessor", CIM_STRING|COL_FLAG_DYNAMIC }, }; @@ -918,27 +953,62 @@ struct record_systemenclosure }; struct record_videocontroller { + const struct array *accelerator_caps; const WCHAR *adapter_compatibility; const WCHAR *adapter_dactype; UINT32 adapter_ram; UINT16 availability; + const struct array *capability_desc; const WCHAR *caption; + UINT32 color_table_entries; UINT32 config_errorcode; + int config_userconfig; + const WCHAR *creation_class_name; UINT32 current_bitsperpixel; UINT32 current_horizontalres; + UINT64 current_numcolors; + UINT32 current_numcolumns; + UINT32 current_numrows; UINT32 current_refreshrate; UINT16 current_scanmode; UINT32 current_verticalres; const WCHAR *description; const WCHAR *device_id; + UINT32 device_pens; + UINT32 dither_type; const WCHAR *driverdate; const WCHAR *driverversion; + int error_cleared; + const WCHAR *error_desc; + UINT32 icm_intent; + UINT32 icm_method; + const WCHAR *inf_name; + const WCHAR *infsection; const WCHAR *installeddriver; + UINT32 lasterror; + UINT32 max_memory; + UINT32 max_number; + UINT32 max_refresh; + UINT32 min_refresh; + int monochrome; const WCHAR *name; + UINT16 number_planes; + UINT32 number_pages; const WCHAR *pnpdevice_id; + const struct array *power_caps; + int power_supported; + UINT16 protocol_supported; + UINT32 reserved_entries; + UINT32 spec_version; const WCHAR *status; + UINT16 status_info; + const WCHAR *systemclass_name; + const WCHAR *system_name; + UINT32 system_entries; + const WCHAR *time_reset; UINT16 videoarchitecture; UINT16 videomemorytype; + UINT16 videomode; const WCHAR *videomodedescription; const WCHAR *videoprocessor; }; @@ -4192,28 +4262,63 @@ static enum fill_status fill_videocontroller( struct table *table, const struct }
rec = (struct record_videocontroller *)table->data; + rec->accelerator_caps = NULL; rec->adapter_compatibility = L"(Standard display types)"; rec->adapter_dactype = L"Integrated RAMDAC"; rec->adapter_ram = vidmem; rec->availability = 3; /* Running or Full Power */ - rec->config_errorcode = 0; /* no error */ + rec->capability_desc = NULL; rec->caption = wcsdup( name ); + rec->color_table_entries = 0; + rec->config_errorcode = 0; /* no error */ + rec->config_userconfig = 0; + rec->creation_class_name = NULL; rec->current_bitsperpixel = get_bitsperpixel( &hres, &vres ); rec->current_horizontalres = hres; + rec->current_numcolors = 0; + rec->current_numcolumns = 0; + rec->current_numrows = 0; rec->current_refreshrate = 0; /* default refresh rate */ rec->current_scanmode = 2; /* Unknown */ rec->current_verticalres = vres; rec->description = wcsdup( name ); rec->device_id = L"VideoController1"; + rec->device_pens = 0; + rec->dither_type = 0; rec->driverdate = L"20230420000000.000000-000"; rec->driverversion = L"31.0.14051.5006"; + rec->error_cleared = 0; + rec->error_desc = NULL; + rec->icm_intent = 0; + rec->icm_method = 0; + rec->inf_name = NULL; + rec->infsection = NULL; rec->installeddriver = get_videocontroller_installeddriver( desc.VendorId ); + rec->lasterror = 0; + rec->max_memory = 0; + rec->max_number = 0; + rec->max_refresh = 0; + rec->min_refresh = 0; + rec->monochrome = 0; rec->name = wcsdup( name ); + rec->number_planes = 0; + rec->number_pages = 0; rec->pnpdevice_id = get_videocontroller_pnpdeviceid( &desc ); + rec->power_caps = NULL; + rec->power_supported = 0; + rec->protocol_supported = 0; + rec->reserved_entries = 0; + rec->spec_version = 0; rec->status = L"OK"; + rec->status_info = 0; + rec->systemclass_name = NULL; + rec->system_name = NULL; + rec->system_entries = 0; + rec->time_reset = NULL; rec->videoarchitecture = 2; /* Unknown */ rec->videomemorytype = 2; /* Unknown */ swprintf( mode, ARRAY_SIZE( mode ), L"%u x %u x %I64u colors", hres, vres, (UINT64)1 << rec->current_bitsperpixel ); + rec->videomode = 0; rec->videomodedescription = wcsdup( mode ); rec->videoprocessor = wcsdup( name ); if (!match_row( table, row, cond, &status )) free_row_values( table, row );