Module: wine Branch: master Commit: e69520ab6e1191308fa98272822e0f13bb0086ea URL: http://source.winehq.org/git/wine.git/?a=commit;h=e69520ab6e1191308fa9827282...
Author: Juan Lang juan.lang@gmail.com Date: Fri Sep 21 17:08:01 2007 -0700
setupapi: Save interface to registry when creating it.
---
dlls/setupapi/devinst.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index acaa8ae..a1a060c 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -336,6 +336,8 @@ static BOOL SETUPDI_AddInterfaceInstance(PSP_DEVINFO_DATA DeviceInfoData, ifaceInfo->referenceString = NULL; if (ret) { + HKEY key; + iface->cInstances++; instance->cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); @@ -346,7 +348,16 @@ static BOOL SETUPDI_AddInterfaceInstance(PSP_DEVINFO_DATA DeviceInfoData, if (newInterface) memcpy(&iface->guid, InterfaceClassGuid, sizeof(GUID)); - /* FIXME: now create this homeboy in the registry */ + key = SetupDiCreateDeviceInterfaceRegKeyW(devInfo->set, + instance, 0, KEY_WRITE, NULL, NULL); + if (key != INVALID_HANDLE_VALUE) + { + RegSetValueExW(key, SymbolicLink, 0, REG_SZ, + (BYTE *)ifaceInfo->symbolicLink, + lstrlenW(ifaceInfo->symbolicLink) * + sizeof(WCHAR)); + RegCloseKey(key); + } if (ifaceData) *ifaceData = instance; }