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,
176 ERR(
"SetupDiGetDeviceInstallParamsW() failed (Error %lu)\n", rc);
188 ERR(
"SetupDiSetDeviceInstallParamsW() failed (Error %lu)\n", rc);
196 ERR(
"SetupDiInstallDevice() failed (Error %lu)\n", rc);
203 ERR(
"SetupDiGetDeviceInstanceIdW() returned TRUE. FALSE expected\n");
211 ERR(
"HeapAlloc() failed\n");
219 ERR(
"SetupDiGetDeviceInstanceIdW() failed with error 0x%lx\n", rc);
226 ERR(
"HeapAlloc() failed\n");
240 ERR(
"HeapAlloc() failed\n");
251 ERR(
"HeapAlloc() failed\n");
255 wcscpy(ExportName,
L"\\Device\\Tcpip_");
256 wcscat(ExportName, UuidString);
262 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
269 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
278 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
287 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
294 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
301 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
309 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
316#if _WIN32_WINNT >= 0x502
327 ERR(
"SetupDiCreateDevRegKeyW() failed with error 0x%lx\n", rc);
334 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
341 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
348 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
357 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
365 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
372 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
379 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
386 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
394 L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}",
404 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
411 ERR(
"GetUniqueConnectionName() failed with error 0x%lx\n", rc);
418 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
427 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
434 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
441 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
449 ERR(
"RegSetValueExW() failed with error 0x%lx\n", rc);
457 ERR(
"RegCreateKeyExW() failed with error 0x%lx\n", rc);
463 ERR(
"AppendStringToMultiSZ() failed with error 0x%lx\n", rc);
469 ERR(
"AppendStringToMultiSZ() failed with error 0x%lx\n", rc);
475 ERR(
"AppendStringToMultiSZ() failed with error 0x%lx\n", rc);
483 ERR(
"SetupDiRestartDevices() failed with error 0x%lx\n", rc);
497 if (hNetworkKey !=
NULL)
499 if (hLinkageKey !=
NULL)
501 if (hConnectionKey !=
NULL)
511 FIXME(
"Installation of network clients is not yet supported\n");
519 FIXME(
"Installation of network services is not yet supported\n");
527 FIXME(
"Installation of network protocols is not yet supported\n");
544 INT CharacteristicsInt;
545 DWORD Characteristics;
564 ERR(
"SetupDiGetSelectedDriverW() failed with error 0x%lx\n", rc);
573 ERR(
"SetupDiGetDriverInfoDetailW() failed with error 0x%lx\n", rc);
581 ERR(
"SetupOpenInfFileW() failed with error 0x%lx\n", rc);
588 ERR(
"SetupDiGetActualSectionToInstallW() failed with error 0x%lx\n", rc);
596 ERR(
"Unable to find key %S in section %S of file %S (error 0x%lx)\n",
597 L"Characteristics", SectionName, DriverInfoDetail.
InfFileName, rc);
604 ERR(
"SetupGetIntField() failed with error 0x%lx\n", rc);
608 Characteristics = (
DWORD)CharacteristicsInt;
616 ERR(
"SetupGetStringFieldW() failed with error 0x%lx\n", rc);
623 ERR(
"HeapAlloc() failed\n");
631 ERR(
"SetupGetStringFieldW() failed with error 0x%lx\n", rc);
641 ERR(
"UuidCreate() failed with RPC status 0x%lx\n", RpcStatus);
649 ERR(
"UuidToStringW() failed with RPC status 0x%lx\n", RpcStatus);
658 ERR(
"HeapAlloc() failed\n");
664 wcscat(UuidString, UuidRpcString);
677 ERR(
"Invalid class guid\n");
684 if (UuidRpcString !=
NULL)
689 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)
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
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType