winebus.sys: Use WINEBUS\ as a common hardware ids prefix.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Rémi Bernon 2021-09-20 09:37:05 +02:00 committed by Alexandre Julliard
parent f37ae29b49
commit 9e3f9408b0
1 changed files with 12 additions and 3 deletions

View File

@ -229,13 +229,22 @@ static WCHAR *get_device_id(DEVICE_OBJECT *device)
static WCHAR *get_hardware_ids(DEVICE_OBJECT *device)
{
static const WCHAR input_format[] = L"&MI_%02u";
static const WCHAR winebus_format[] = L"WINEBUS\\VID_%04X&PID_%04X";
struct device_extension *ext = (struct device_extension *)device->DeviceExtension;
DWORD pos = 0, len = 0, input_len = 0, winebus_len = 25;
WCHAR *dst;
if ((dst = ExAllocatePool(PagedPool, (wcslen(ext->desc.busid) + 2) * sizeof(WCHAR))))
if (ext->desc.input != -1) input_len = 14;
len += winebus_len + input_len + 1;
if ((dst = ExAllocatePool(PagedPool, (len + 1) * sizeof(WCHAR))))
{
wcscpy(dst, ext->desc.busid);
dst[wcslen(dst) + 1] = 0;
pos += swprintf(dst + pos, len - pos, winebus_format, ext->desc.vid, ext->desc.pid);
if (input_len) pos += swprintf(dst + pos, len - pos, input_format, ext->desc.input);
pos += 1;
dst[pos] = 0;
}
return dst;