Hi,
I thought I understood this thing, but I don't. I'm trying to get this working so that I can work towards getting Rocksmith going.
I've added:
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c index 4b02ea2..0051837 100644 --- a/dlls/wbemprox/builtin.c +++ b/dlls/wbemprox/builtin.c @@ -75,6 +75,8 @@ static const WCHAR class_paramsW[] = {'_','_','P','A','R','A','M','E','T','E','R','S',0}; static const WCHAR class_physicalmediaW[] =
{'W','i','n','3','2','_','P','h','y','s','i','c','a','l','M','e','d','i','a',0}; +static const WCHAR class_pnpentityW[] = + {'W','i','n','3','2','_','P','N','P','E','n','t','i','t','y',0}; static const WCHAR class_qualifiersW[] = {'_','_','Q','U','A','L','I','F','I','E','R','S',0}; static const WCHAR class_process_getowner_outW[] = @@ -394,6 +396,10 @@ static const struct column col_physicalmedia[] = { { prop_serialnumberW, CIM_STRING } }; +static const struct column col_pnpentity[] = +{ + { prop_deviceidW, CIM_STRING|COL_FLAG_KEY } +}; static const struct column col_process[] = { { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC }, @@ -513,6 +519,8 @@ static const WCHAR diskdrive_manufacturerW[] = {'(','S','t','a','n','d','a','r','d',' ','d','i','s','k',' ','d','r','i','v','e','s',')',0}; static const WCHAR diskdrive_serialW[] = {'W','I','N','E','H','D','I','S','K',0}; +static const WCHAR pnpentity_rscableW[] = + {'U','S','B','\ ','V','I','D','_','1','2','B','A','&','P','I','D','_','0','0','F','F','&','R','E','V','_','0','1','0','0',0}; static const WCHAR networkadapter_pnpdeviceidW[]= {'P','C','I','\ ','V','E','N','_','8','0','8','6','&','D','E','V','_','1','0','0','E','&',
'S','U','B','S','Y','S','_','0','0','1','E','8','0','8','6','&','R','E','V','_','0','2','\', @@ -796,6 +804,10 @@ static const struct record_physicalmedia data_physicalmedia[] = { { diskdrive_serialW } }; +static const struct record_physicalmedia data_pnpentity[] = +{ + { pnpentity_rscableW } +}; static const struct record_qualifier data_qualifier[] = { { class_process_getowner_outW, param_userW, CIM_SINT32, FLAVOR_ID, prop_idW, 0 }, @@ -2241,6 +2253,7 @@ static struct table builtin_classes[] = { class_osW, SIZEOF(col_os), col_os, 0, 0, NULL, fill_os }, { class_paramsW, SIZEOF(col_param), col_param, SIZEOF(data_param), 0, (BYTE *)data_param }, { class_physicalmediaW, SIZEOF(col_physicalmedia), col_physicalmedia, SIZEOF(data_physicalmedia), 0, (BYTE *)data_physicalmedia }, + { class_pnpentityW, SIZEOF(col_pnpentity), col_pnpentity, SIZEOF(data_pnpentity), 0, (BYTE *)data_pnpentity }, { class_processW, SIZEOF(col_process), col_process, 0, 0, NULL, fill_process }, { class_processorW, SIZEOF(col_processor), col_processor, 0, 0, NULL, fill_processor }, { class_qualifiersW, SIZEOF(col_qualifier), col_qualifier, SIZEOF(data_qualifier), 0, (BYTE *)data_qualifier },
With the *_pnpentity* elements being mine. I've hardcoded the USB device hardware ID in for now. I also added a TRACE to get_propval, but that's not being called.
Here's the relevant part of the log:
0009:trace:wbemprox:wbem_services_CreateInstanceEnum 0x3cd6b58, L"Win32_PNPEntity", 000000000, (nil), 0x32f858 0009:trace:wbemprox:parse_query parse_query: L"SELECT * FROM Win32_PNPEntity" 0009:trace:wbemprox:parse_query wql_parse returned 0 0009:trace:wbemprox:EnumWbemClassObject_create 0x32f858 0009:trace:wbemprox:EnumWbemClassObject_create returning iface 0x3cd6ea8 0009:trace:wbemprox:enum_class_object_Next 0x3cd6ea8, 10000, 20, 0x32f888, 0x32f864 0009:fixme:wbemprox:enum_class_object_Next timeout not supported 0009:trace:wbemprox:enum_class_object_Release destroying 0x3cd6ea8 0009:trace:wbemprox:wbem_locator_Release destroying 0x3cd6cc8 0009:trace:wbemprox:wbem_services_Release destroying 0x3cd6b58 0009:trace:wbemprox:DllGetClassObject {4590f811-1d3a-11d0-891f-00aa004b2e24} {00000001-0000-0000-c000-000000000046} 0x32f80c 0009:trace:wbemprox:wbemprox_cf_CreateInstance (nil) {dc12a687-737f-11cf-884d-00aa004b2e24} 0x32f85c 0009:trace:wbemprox:WbemLocator_create (0x32f78c) 0009:trace:wbemprox:WbemLocator_create returning iface 0x3cd6b78 0009:trace:wbemprox:wbem_locator_QueryInterface 0x3cd6b78 {dc12a687-737f-11cf-884d-00aa004b2e24} 0x32f85c 0009:trace:wbemprox:wbem_locator_ConnectServer 0x3cd6b78, L"\\.\root\ \cimv2", (null), (null), (null), 0x00000000, (null), (nil), 0x32f860) 0009:trace:wbemprox:WbemServices_create (0x32f860) 0009:trace:wbemprox:WbemServices_create returning iface 0x3cd6f10
Have I missed something here?
Thanks, Luke.