mirror of
https://github.com/reactos/reactos.git
synced 2024-07-07 21:25:05 +00:00
Write connection name at the right place in registry.
Add PnpInstanceId and ShowIcon values svn path=/trunk/; revision=19699
This commit is contained in:
parent
e9ec5f234e
commit
568f5a31a2
|
@ -100,11 +100,13 @@ NetClassInstaller(
|
||||||
{
|
{
|
||||||
RPC_STATUS RpcStatus;
|
RPC_STATUS RpcStatus;
|
||||||
UUID Uuid;
|
UUID Uuid;
|
||||||
|
LPWSTR InstanceId = NULL;
|
||||||
LPWSTR UuidRpcString = NULL;
|
LPWSTR UuidRpcString = NULL;
|
||||||
LPWSTR UuidString = NULL;
|
LPWSTR UuidString = NULL;
|
||||||
LPWSTR DeviceName = NULL;
|
LPWSTR DeviceName = NULL;
|
||||||
LPWSTR ExportName = NULL;
|
LPWSTR ExportName = NULL;
|
||||||
LONG rc;
|
LONG rc;
|
||||||
|
DWORD dwShowIcon, dwLength;
|
||||||
HKEY hKey = INVALID_HANDLE_VALUE;
|
HKEY hKey = INVALID_HANDLE_VALUE;
|
||||||
HKEY hLinkageKey = INVALID_HANDLE_VALUE;
|
HKEY hLinkageKey = INVALID_HANDLE_VALUE;
|
||||||
HKEY hNetworkKey = INVALID_HANDLE_VALUE;
|
HKEY hNetworkKey = INVALID_HANDLE_VALUE;
|
||||||
|
@ -115,6 +117,27 @@ NetClassInstaller(
|
||||||
|
|
||||||
DPRINT("%lu %p %p\n", InstallFunction, DeviceInfoSet, DeviceInfoData);
|
DPRINT("%lu %p %p\n", InstallFunction, DeviceInfoSet, DeviceInfoData);
|
||||||
|
|
||||||
|
/* Get Instance ID */
|
||||||
|
if (SetupDiGetDeviceInstanceIdW(DeviceInfoSet, DeviceInfoData, NULL, 0, &dwLength))
|
||||||
|
{
|
||||||
|
DPRINT("SetupDiGetDeviceInstanceIdW() returned TRUE. FALSE expected\n");
|
||||||
|
rc = ERROR_GEN_FAILURE;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
InstanceId = HeapAlloc(GetProcessHeap(), 0, dwLength);
|
||||||
|
if (!InstanceId)
|
||||||
|
{
|
||||||
|
DPRINT("HeapAlloc() failed\n");
|
||||||
|
rc = ERROR_NOT_ENOUGH_MEMORY;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
if (!SetupDiGetDeviceInstanceIdW(DeviceInfoSet, DeviceInfoData, InstanceId, dwLength, NULL))
|
||||||
|
{
|
||||||
|
rc = GetLastError();
|
||||||
|
DPRINT("SetupDiGetDeviceInstanceIdW() failed with error 0x%lx\n", rc);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
/* Create a new UUID */
|
/* Create a new UUID */
|
||||||
RpcStatus = UuidCreate(&Uuid);
|
RpcStatus = UuidCreate(&Uuid);
|
||||||
if (RpcStatus != RPC_S_OK && RpcStatus != RPC_S_UUID_LOCAL_ONLY)
|
if (RpcStatus != RPC_S_OK && RpcStatus != RPC_S_UUID_LOCAL_ONLY)
|
||||||
|
@ -263,20 +286,39 @@ NetClassInstaller(
|
||||||
DPRINT("RegCreateKeyExW() failed with error 0x%lx\n", rc);
|
DPRINT("RegCreateKeyExW() failed with error 0x%lx\n", rc);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
rc = RegCreateKeyExW(hNetworkKey, UuidString, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hKey, NULL);
|
rc = RegCreateKeyExW(hNetworkKey, UuidString, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY, NULL, &hKey, NULL);
|
||||||
if (rc != ERROR_SUCCESS)
|
if (rc != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
DPRINT("RegCreateKeyExW() failed with error 0x%lx\n", rc);
|
DPRINT("RegCreateKeyExW() failed with error 0x%lx\n", rc);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
rc = RegSetValueExW(hKey, L"Name", 0, REG_SZ, (const BYTE*)L"Network connection", (wcslen(L"Network connection") + 1) * sizeof(WCHAR));
|
rc = RegCreateKeyExW(hKey, L"Connection", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hConnectionKey, NULL);
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
hKey = INVALID_HANDLE_VALUE;
|
||||||
|
if (rc != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT("RegCreateKeyExW() failed with error 0x%lx\n", rc);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
rc = RegSetValueExW(hConnectionKey, L"Name", 0, REG_SZ, (const BYTE*)L"Network connection", (wcslen(L"Network connection") + 1) * sizeof(WCHAR));
|
||||||
|
if (rc != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT("RegSetValueExW() failed with error 0x%lx\n", rc);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
rc = RegSetValueExW(hConnectionKey, L"PnpInstanceId", 0, REG_SZ, (const BYTE*)InstanceId, (wcslen(InstanceId) + 1) * sizeof(WCHAR));
|
||||||
|
if (rc != ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
DPRINT("RegSetValueExW() failed with error 0x%lx\n", rc);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
dwShowIcon = 1;
|
||||||
|
rc = RegSetValueExW(hConnectionKey, L"ShowIcon", 0, REG_DWORD, (const BYTE*)&dwShowIcon, sizeof(dwShowIcon));
|
||||||
if (rc != ERROR_SUCCESS)
|
if (rc != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
DPRINT("RegSetValueExW() failed with error 0x%lx\n", rc);
|
DPRINT("RegSetValueExW() failed with error 0x%lx\n", rc);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
RegCloseKey(hKey);
|
|
||||||
hKey = INVALID_HANDLE_VALUE;
|
|
||||||
|
|
||||||
/* Write linkage information in Tcpip service */
|
/* Write linkage information in Tcpip service */
|
||||||
rc = RegCreateKeyExW(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Linkage", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_QUERY_VALUE | KEY_SET_VALUE, NULL, &hKey, NULL);
|
rc = RegCreateKeyExW(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Linkage", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_QUERY_VALUE | KEY_SET_VALUE, NULL, &hKey, NULL);
|
||||||
|
@ -309,6 +351,7 @@ NetClassInstaller(
|
||||||
cleanup:
|
cleanup:
|
||||||
if (UuidRpcString != NULL)
|
if (UuidRpcString != NULL)
|
||||||
RpcStringFreeW(&UuidRpcString);
|
RpcStringFreeW(&UuidRpcString);
|
||||||
|
HeapFree(GetProcessHeap(), 0, InstanceId);
|
||||||
HeapFree(GetProcessHeap(), 0, UuidString);
|
HeapFree(GetProcessHeap(), 0, UuidString);
|
||||||
HeapFree(GetProcessHeap(), 0, DeviceName);
|
HeapFree(GetProcessHeap(), 0, DeviceName);
|
||||||
HeapFree(GetProcessHeap(), 0, ExportName);
|
HeapFree(GetProcessHeap(), 0, ExportName);
|
||||||
|
|
Loading…
Reference in a new issue