Fix the HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage\Export value. The GUID needs to be prepended by "Tcpip_" Modified: trunk/reactos/lib/netcfgx/netcfgx.c _____
Modified: trunk/reactos/lib/netcfgx/netcfgx.c --- trunk/reactos/lib/netcfgx/netcfgx.c 2005-10-14 21:35:03 UTC (rev 18459) +++ trunk/reactos/lib/netcfgx/netcfgx.c 2005-10-14 22:04:02 UTC (rev 18460) @@ -104,6 +104,7 @@
LPWSTR UuidRpcString = NULL; LPWSTR UuidString = NULL; LPWSTR DeviceName = NULL; + LPWSTR ExportName = NULL; LONG rc; HKEY hKey = INVALID_HANDLE_VALUE; HKEY hLinkageKey = INVALID_HANDLE_VALUE; @@ -151,6 +152,17 @@ } wcscpy(DeviceName, L"\Device\"); wcscat(DeviceName, UuidString); + + /* Create export name */ + ExportName = HeapAlloc(GetProcessHeap(), 0, (wcslen(L"\Device\Tcpip_") + wcslen(UuidString)) * sizeof(WCHAR) + sizeof(UNICODE_NULL)); + if (!ExportName) + { + DPRINT("HeapAlloc() failed\n"); + rc = ERROR_NOT_ENOUGH_MEMORY; + goto cleanup; + } + wcscpy(ExportName, L"\Device\Tcpip_"); + wcscat(ExportName, UuidString);
/* Write Tcpip parameters in new service Key */ rc = RegCreateKeyExW(HKEY_LOCAL_MACHINE, L"SYSTEM\CurrentControlSet\Services", 0, NULL, REG_OPTION_NON_VOLATILE, 0, NULL, &hKey, NULL); @@ -269,22 +281,21 @@ rc = AppendStringToMultiSZ(hKey, L"Bind", DeviceName); if (rc != ERROR_SUCCESS) goto cleanup; - rc = AppendStringToMultiSZ(hKey, L"Export", DeviceName); + rc = AppendStringToMultiSZ(hKey, L"Export", ExportName); if (rc != ERROR_SUCCESS) goto cleanup; rc = AppendStringToMultiSZ(hKey, L"Route", UuidString); if (rc != ERROR_SUCCESS) goto cleanup;
- rc = ERROR_DI_DO_DEFAULT; + rc = ERROR_SUCCESS;
cleanup: if (UuidRpcString != NULL) RpcStringFreeW(&UuidRpcString); - if (UuidString != NULL) - HeapFree(GetProcessHeap(), 0, UuidString); - if (DeviceName != NULL) - HeapFree(GetProcessHeap(), 0, DeviceName); + HeapFree(GetProcessHeap(), 0, UuidString); + HeapFree(GetProcessHeap(), 0, DeviceName); + HeapFree(GetProcessHeap(), 0, ExportName); if (hKey != INVALID_HANDLE_VALUE) RegCloseKey(hKey); if (hLinkageKey != INVALID_HANDLE_VALUE)