66 dwRequired =
sizeof(
WCHAR);
105 TRACE(
"GetNewConnectionName()\n");
110 pszDefaultName =
L"Network Connection";
121 ERR(
"RegQueryInfoKeyW: Error %lu\n", dwError);
125 TRACE(
"Adapter Count: %lu\n", dwSubKeys);
129 (
Length + ((dwSubKeys != 0) ? 6 : 1)) *
sizeof(
WCHAR));
130 if (pszNameBuffer ==
NULL)
140 TRACE(
"Adapter Name: %S\n", pszNameBuffer);
142 *ppszNameBuffer = pszNameBuffer;
153 DWORD Characteristics,
177 ERR(
"SetupDiGetDeviceInstallParamsW() failed (Error %lu)\n", rc);
189 ERR(
"SetupDiSetDeviceInstallParamsW() failed (Error %lu)\n", rc);
197 ERR(
"SetupDiInstallDevice() failed (Error %lu)\n", rc);
204 ERR(
"SetupDiGetDeviceInstanceIdW() returned TRUE. FALSE expected\n");
212 ERR(
"HeapAlloc() failed\n");
220 ERR(
"SetupDiGetDeviceInstanceIdW() failed with error 0x%lx\n", rc);
227 ERR(
"HeapAlloc() failed\n");
241 ERR(
"HeapAlloc() failed\n");
252 ERR(
"HeapAlloc() failed\n");
256 wcscpy(ExportName,
L"\\Device\\Tcpip_");
257 wcscat(ExportName, UuidString);
263 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
270 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
277 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
284 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
291 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
299 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
304#if _WIN32_WINNT >= 0x502
315 ERR(
"SetupDiCreateDevRegKeyW() failed with error 0x%lx\n", rc);
322 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
329 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
336 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
345 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
353 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
360 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
367 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
374 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
382 L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}",
392 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
399 ERR(
"GetUniqueConnectionName() failed with error 0x%lx\n", rc);
406 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
415 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
422 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
429 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
437 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
445 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
451 ERR(
"AppendStringToMultiSZ() failed with error 0x%lx\n", rc);
457 ERR(
"AppendStringToMultiSZ() failed with error 0x%lx\n", rc);
463 ERR(
"AppendStringToMultiSZ() failed with error 0x%lx\n", rc);
471 ERR(
"SetupDiRestartDevices() failed with error 0x%lx\n", rc);
483 if (hInterfaceKey !=
NULL)
485 if (hInterfacesKey !=
NULL)
489 if (hNetworkKey !=
NULL)
491 if (hLinkageKey !=
NULL)
493 if (hConnectionKey !=
NULL)
503 FIXME(
"Installation of network clients is not yet supported\n");
511 FIXME(
"Installation of network services is not yet supported\n");
519 FIXME(
"Installation of network protocols is not yet supported\n");
536 INT CharacteristicsInt;
537 DWORD Characteristics;
556 ERR(
"SetupDiGetSelectedDriverW() failed with error 0x%lx\n", rc);
565 ERR(
"SetupDiGetDriverInfoDetailW() failed with error 0x%lx\n", rc);
573 ERR(
"SetupOpenInfFileW() failed with error 0x%lx\n", rc);
580 ERR(
"SetupDiGetActualSectionToInstallW() failed with error 0x%lx\n", rc);
588 ERR(
"Unable to find key %S in section %S of file %S (error 0x%lx)\n",
589 L"Characteristics", SectionName, DriverInfoDetail.
InfFileName, rc);
596 ERR(
"SetupGetIntField() failed with error 0x%lx\n", rc);
600 Characteristics = (
DWORD)CharacteristicsInt;
608 ERR(
"SetupGetStringFieldW() failed with error 0x%lx\n", rc);
615 ERR(
"HeapAlloc() failed\n");
623 ERR(
"SetupGetStringFieldW() failed with error 0x%lx\n", rc);
633 ERR(
"UuidCreate() failed with RPC status 0x%lx\n", RpcStatus);
641 ERR(
"UuidToStringW() failed with RPC status 0x%lx\n", RpcStatus);
650 ERR(
"HeapAlloc() failed\n");
656 wcscat(UuidString, UuidRpcString);
669 ERR(
"Invalid class guid\n");
676 if (UuidRpcString !=
NULL)
681 TRACE(
"Returning 0x%lx\n", rc);
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char UINT32 ComponentId
#define RegCloseKey(hKey)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
static DWORD DWORD * dwLength
static void cleanup(void)
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
HINSTANCE netcfgx_hInstance
BOOL WINAPI SetupDiRestartDevices(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
BOOL WINAPI SetupDiSetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
HKEY WINAPI SetupDiCreateDevRegKeyW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Scope, DWORD HwProfile, DWORD KeyType, HINF InfHandle, PCWSTR InfSectionName)
BOOL WINAPI SetupDiGetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, OUT PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
BOOL WINAPI SetupDiGetActualSectionToInstallW(HINF InfHandle, PCWSTR InfSectionName, PWSTR InfSectionWithExt, DWORD InfSectionWithExtSize, PDWORD RequiredSize, PWSTR *Extension)
BOOL WINAPI SetupDiInstallDevice(IN HDEVINFO DeviceInfoSet, IN OUT PSP_DEVINFO_DATA DeviceInfoData)
BOOL WINAPI SetupDiGetDeviceInstanceIdW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, PWSTR DeviceInstanceId, DWORD DeviceInstanceIdSize, PDWORD RequiredSize)
HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Scope, DWORD HwProfile, DWORD KeyType, REGSAM samDesired)
BOOL WINAPI SetupDiGetSelectedDriverW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, OUT PSP_DRVINFO_DATA_W DriverInfoData)
BOOL WINAPI SetupDiGetDriverInfoDetailW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN PSP_DRVINFO_DATA_W DriverInfoData, IN OUT PSP_DRVINFO_DETAIL_DATA_W DriverInfoDetailData OPTIONAL, IN DWORD DriverInfoDetailDataSize, OUT PDWORD RequiredSize OPTIONAL)
HINF WINAPI SetupOpenInfFileW(PCWSTR name, PCWSTR class, DWORD style, UINT *error)
_Must_inspect_result_ _In_opt_ PVOID _In_opt_ PVOID InstanceId
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define ERROR_FILE_NOT_FOUND
static DWORD GetUniqueConnectionName(_In_ HKEY hNetworkKey, _Out_ PWSTR *ppszNameBuffer)
static DWORD InstallNetDevice(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, LPCWSTR UuidString, DWORD Characteristics, LPCWSTR BusType)
static DWORD InstallNetService(VOID)
static LONG AppendStringToMultiSZ(IN HKEY hKey, IN PCWSTR ValueName, IN PCWSTR ValueToAppend)
DWORD WINAPI NetClassInstaller(IN DI_FUNCTION InstallFunction, IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL)
static DWORD InstallNetTransport(VOID)
static DWORD InstallNetClient(VOID)
#define KEY_CREATE_SUB_KEY
#define REG_OPTION_NON_VOLATILE
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IsEqualIID(riid1, riid2)
RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, RPC_WSTR *StringUuid)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
RPC_STATUS WINAPI UuidCreate(UUID *Uuid)
struct _SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA_W
SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData
#define ERROR_DI_DO_DEFAULT
#define DIF_INSTALLDEVICE
#define DI_DONOTCALLCONFIGMG
PULONG MinorVersion OPTIONAL
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
WCHAR SectionName[LINE_LEN]
WCHAR InfFileName[MAX_PATH]
BOOL WINAPI SetupGetStringFieldW(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT PWSTR ReturnBuffer, IN ULONG ReturnBufferSize, OUT PULONG RequiredSize)
BOOL WINAPI SetupFindFirstLineW(IN HINF InfHandle, IN PCWSTR Section, IN PCWSTR Key, IN OUT PINFCONTEXT Context)
BOOL WINAPI SetupGetIntField(IN PINFCONTEXT Context, IN ULONG FieldIndex, OUT INT *IntegerValue)
VOID WINAPI SetupCloseInfFile(IN HINF InfHandle)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
DWORD WINAPI GetLastError(void)
#define ERROR_GEN_FAILURE
#define RPC_S_UUID_LOCAL_ONLY
#define HKEY_LOCAL_MACHINE
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType