51 LPWSTR *ppszwClientDescription)
58 if (
This->bInitialized)
64 if (ppszwClientDescription)
68 dwResult =
sizeof(szValue);
71 szValue[(
sizeof(szValue)/
sizeof(
WCHAR))-1] =
L'\0';
73 if (*ppszwClientDescription)
74 wcscpy(*ppszwClientDescription, szValue);
101 if (
This->bInitialized)
115 LPWSTR *ppszwClientDescription)
129 szValue[(
sizeof(szValue)/
sizeof(
WCHAR))-1] =
L'\0';
131 if (*ppszwClientDescription)
132 wcscpy(*ppszwClientDescription, szValue);
161 INetCfgPnpReconfigCallback * iface,
172 INetCfgPnpReconfigCallback * iface)
182 INetCfgPnpReconfigCallback * iface)
191 INetCfgPnpReconfigCallback * iface,
226 wcscpy(szBuffer,
L"SYSTEM\\CurrentControlSet\\Services\\");
228 wcscat(szBuffer,
L"\\Linkage");
258 HKEY hSubKey, hNDIKey;
289 pCurrent->dwCharacteristics = 0;
297 szText[(
sizeof(szText)/
sizeof(
WCHAR))-1] =
L'\0';
300 wcscpy(pCurrent->szId, szText);
310 szText[(
sizeof(szText)/
sizeof(
WCHAR))-1] =
L'\0';
312 if (pCurrent->szDisplayName)
313 wcscpy(pCurrent->szDisplayName, szText);
325 szText[(
sizeof(szText)/
sizeof(
WCHAR))-1] =
L'\0';
327 if (pCurrent->szHelpText)
328 wcscpy(pCurrent->szHelpText, szText);
338 szText[(
sizeof(szText)/
sizeof(
WCHAR))-1] =
L'\0';
340 if (pCurrent->szBindName)
341 wcscpy(pCurrent->szBindName, szText);
353 pLast->
pNext = pCurrent;
379 swprintf(
szName,
L"SYSTEM\\CurrentControlSet\\Control\\Network\\%s", pszGuid);
399 WCHAR szDetail[200] =
L"SYSTEM\\CurrentControlSet\\Control\\Class\\";
400 WCHAR szName[130] =
L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\";
413 DevInfo.
cbSize =
sizeof(DevInfo);
428 dwSize =
sizeof(szNetCfg);
441 CopyMemory(&pCurrent->ClassGUID, &GUID_DEVCLASS_NET,
sizeof(
GUID));
446 if (pCurrent->szBindName)
447 wcscpy(pCurrent->szBindName, szNetCfg);
450 dwSize =
sizeof(szAdapterNetCfg);
455 wcscpy(pCurrent->szId, szAdapterNetCfg);
458 dwSize =
sizeof(szAdapterNetCfg);
462 if (pCurrent->szDisplayName)
463 wcscpy(pCurrent->szDisplayName, szAdapterNetCfg);
474 dwSize =
sizeof(szAdapterNetCfg);
478 if (pCurrent->szNodeId)
479 wcscpy(pCurrent->szNodeId, szAdapterNetCfg);
486 szNetCfg[(
sizeof(szNetCfg)/
sizeof(
WCHAR))-1] =
L'\0';
488 if (pCurrent->szDisplayName)
489 wcscpy(pCurrent->szDisplayName, szNetCfg);
493 pLast->
pNext = pCurrent;
510 INetCfgComponent **pComponent,
519 pHead = pHead->
pNext;
545 if (
This->bInitialized)
556 if (
This->bInitialized)
559 *ppvObj = (
LPVOID)&
This->lpVtblPnpReconfigCallback;
602 if (
This->bInitialized)
630 const CLSID * lpClassGUID,
647 swprintf(
szName,
L"SYSTEM\\CurrentControlSet\\Control\\Network\\%s", pszGuid);
658 else if (pHead->
pNCCC)
673 pHead = pHead->
pNext;
697 if (!
This->bInitialized)
703 pItem =
This->pService;
711 pItem =
This->pClient;
719 pItem =
This->pProtocol;
745 if (!
This->bInitialized)
763 if (!
This->bInitialized)
777 const GUID *pguidClass,
778 IEnumNetCfgComponent **ppenumComponent)
782 if (!
This->bInitialized)
787 else if (
IsEqualGUID(&GUID_DEVCLASS_NETCLIENT, pguidClass))
789 else if (
IsEqualGUID(&GUID_DEVCLASS_NETSERVICE, pguidClass))
791 else if (
IsEqualGUID(&GUID_DEVCLASS_NETTRANS, pguidClass))
803 INetCfgComponent **pComponent)
808 if (!
This->bInitialized)
830 const GUID *pguidClass,
#define InterlockedIncrement
#define InterlockedDecrement
#define RegCloseKey(hKey)
#define MAX_DEVICE_ID_LEN
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 RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
BOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO devinfo, DWORD index, PSP_DEVINFO_DATA info)
BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Property, PDWORD PropertyRegDataType, PBYTE PropertyBuffer, DWORD PropertyBufferSize, PDWORD RequiredSize)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT WINAPI INetCfgComponent_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, NetCfgComponentItem *pItem, INetCfg *pNCfg)
HRESULT WINAPI IEnumNetCfgComponent_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, NetCfgComponentItem *pItem, INetCfg *pNCfg)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
ULONG WINAPI INetCfgLock_fnAddRef(INetCfgLock *iface)
HRESULT WINAPI INetCfgPnpReconfigCallback_fnSendPnpReconfig(INetCfgPnpReconfigCallback *iface, NCPNP_RECONFIG_LAYER Layer, LPCWSTR pszwUpper, LPCWSTR pszwLower, PVOID pvData, DWORD dwSizeOfData)
HRESULT WINAPI INetCfg_fnApply(INetCfg *iface)
HRESULT EnumerateNetworkAdapter(NetCfgComponentItem **pHead)
static const INetCfgPnpReconfigCallbackVtbl vt_NetCfgPnpReconfigCallback
HRESULT FindNetworkComponent(NetCfgComponentItem *pHead, LPCWSTR pszwComponentId, INetCfgComponent **pComponent, INetCfg *iface)
static __inline INetCfgImpl * impl_from_INetCfgLock(INetCfgLock *iface)
ULONG WINAPI INetCfgPnpReconfigCallback_fnAddRef(INetCfgPnpReconfigCallback *iface)
HRESULT WINAPI INetCfg_fnCancel(INetCfg *iface)
HRESULT WINAPI INetCfg_fnEnumComponents(INetCfg *iface, const GUID *pguidClass, IEnumNetCfgComponent **ppenumComponent)
HRESULT WINAPI INetCfg_fnInitialize(INetCfg *iface, PVOID pReserved)
VOID ApplyOrCancelChanges(NetCfgComponentItem *pHead, const CLSID *lpClassGUID, BOOL bApply)
HRESULT WINAPI INetCfgLock_fnAcquireWriteLock(INetCfgLock *iface, DWORD cmsTimeout, LPCWSTR pszwClientDescription, LPWSTR *ppszwClientDescription)
static const INetCfgLockVtbl vt_NetCfgLock
HRESULT WINAPI INetCfgPnpReconfigCallback_fnQueryInterface(INetCfgPnpReconfigCallback *iface, REFIID iid, LPVOID *ppvObj)
HRESULT WINAPI INetCfg_fnUninitialize(INetCfg *iface)
HRESULT WINAPI INetCfgLock_fnReleaseWriteLock(INetCfgLock *iface)
ULONG WINAPI INetCfgLock_fnRelease(INetCfgLock *iface)
HRESULT EnumClientServiceProtocol(HKEY hKey, const GUID *pGuid, NetCfgComponentItem **pHead)
ULONG WINAPI INetCfgPnpReconfigCallback_fnRelease(INetCfgPnpReconfigCallback *iface)
HRESULT WINAPI INetCfgLock_fnIsWriteLocked(INetCfgLock *iface, LPWSTR *ppszwClientDescription)
HRESULT WINAPI INetCfg_fnQueryNetCfgClass(INetCfg *iface, const GUID *pguidClass, REFIID riid, void **ppvObject)
HRESULT WINAPI INetCfg_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
HRESULT EnumerateNetworkComponent(const GUID *pGuid, NetCfgComponentItem **pHead)
HRESULT WINAPI INetCfg_fnQueryInterface(INetCfg *iface, REFIID iid, LPVOID *ppvObj)
HRESULT ReadBindingString(NetCfgComponentItem *Item)
HRESULT WINAPI INetCfgLock_fnQueryInterface(INetCfgLock *iface, REFIID iid, LPVOID *ppvObj)
ULONG WINAPI INetCfg_fnRelease(INetCfg *iface)
HRESULT WINAPI INetCfg_fnFindComponent(INetCfg *iface, LPCWSTR pszwComponentId, INetCfgComponent **pComponent)
static const INetCfgVtbl vt_NetCfg
VOID FreeComponentItem(NetCfgComponentItem *pItem)
static __inline INetCfgImpl * impl_from_INetCfgPnpReconfigCallback(INetCfgPnpReconfigCallback *iface)
ULONG WINAPI INetCfg_fnAddRef(INetCfg *iface)
HRESULT WINAPI INetCfgClass_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, const GUID *pguidClass, INetCfg *pNetCfg)
#define INetCfgComponentControl_ApplyRegistryChanges(p)
#define INetCfgComponentControl_CancelChanges(p)
EXTERN_C const IID IID_INetCfgPnpReconfigCallback
#define INetCfgPnpReconfigCallback_AddRef(p)
#define INetCfg_Release(p)
#define INetCfg_QueryInterface(p, a, b)
EXTERN_C const IID IID_INetCfgLock
EXTERN_C const IID IID_INetCfgComponent
#define INetCfgLock_AddRef(p)
#define INetCfg_AddRef(p)
#define NETCFG_E_NOT_INITIALIZED
EXTERN_C const IID IID_IEnumNetCfgComponent
EXTERN_C const IID IID_INetCfg
#define NETCFG_E_ALREADY_INITIALIZED
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
static const WCHAR szName[]
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define SetupDiGetClassDevs
INetCfgComponentControl * pNCCC
struct tagNetCfgComponentItem * pNext
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexW(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, IN BOOL bInitialOwner, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
#define FIELD_OFFSET(t, f)
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
#define HKEY_LOCAL_MACHINE