ReactOS 0.4.17-dev-243-g1369312
iphlpapi_undoc.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

DWORD WINAPI NhGetGuidFromInterfaceName (_In_ PWCHAR pInterfaceName, _Out_ GUID *pInterfaceGUID, DWORD dwUnknown3, DWORD dwUnknown4)
 
DWORD WINAPI NhGetInterfaceNameFromDeviceGuid (_In_ const GUID *pInterfaceGUID, _Out_writes_bytes_to_(*pOutBufLen, *pOutBufLen) PWCHAR pInterfaceName, _Inout_ PULONG pOutBufLen, DWORD dwUnknown4, DWORD dwUnknown5)
 
DWORD WINAPI NhGetInterfaceNameFromGuid (_In_ const GUID *pInterfaceGUID, _Out_writes_bytes_to_(*pOutBufLen, *pOutBufLen) PWCHAR pInterfaceName, _Inout_ PULONG pOutBufLen, DWORD dwUnknown4, DWORD dwUnknown5)
 
DWORD WINAPI NhpAllocateAndGetInterfaceInfoFromStack (_Inout_ IP_INTERFACE_NAME_INFO **ppTable, _Inout_ PDWORD pdwCount, _In_ BOOL bOrder, _In_ HANDLE hHeap, _In_ DWORD dwFlags)
 

Function Documentation

◆ NhGetGuidFromInterfaceName()

DWORD WINAPI NhGetGuidFromInterfaceName ( _In_ PWCHAR  pInterfaceName,
_Out_ GUID pInterfaceGUID,
DWORD  dwUnknown3,
DWORD  dwUnknown4 
)

Definition at line 3347 of file iphlpapi_main.c.

3351{
3352 WCHAR szGuidBuffer[45];
3354 HKEY hAdaptersKey = NULL, hAdapterKey = NULL, hConnectionKey = NULL;
3355 PWSTR pszNameBuffer = NULL;
3356 DWORD i, dwNameSize, dwValueSize;
3357 BOOL bFound = FALSE;
3359
3360 result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}", 0, KEY_READ, &hAdaptersKey);
3361 if (result != ERROR_SUCCESS)
3362 {
3363 // failed to find adapter entry
3364 return ERROR_NOT_FOUND;
3365 }
3366
3367 for (i = 0; ; i++)
3368 {
3369 dwNameSize = ARRAYSIZE(szGuidBuffer);
3370 result = RegEnumKeyExW(hAdaptersKey,
3371 i,
3372 szGuidBuffer,
3373 &dwNameSize,
3374 NULL,
3375 NULL,
3376 NULL,
3377 NULL);
3378 if (result != ERROR_SUCCESS)
3379 break;
3380
3381 TRACE("Guid %S\n", szGuidBuffer);
3382
3383 result = RegOpenKeyExW(hAdaptersKey, szGuidBuffer, 0, KEY_READ, &hAdapterKey);
3384 if (result == ERROR_SUCCESS)
3385 {
3386 result = RegOpenKeyExW(hAdapterKey, L"Connection", 0, KEY_READ, &hConnectionKey);
3387 if (result == ERROR_SUCCESS)
3388 {
3389 RegQueryValueExW(hConnectionKey, L"Name", NULL, NULL, NULL, &dwValueSize);
3390 pszNameBuffer = HeapAlloc(GetProcessHeap(), 0, dwValueSize);
3391 if (pszNameBuffer)
3392 {
3393 RegQueryValueExW(hConnectionKey, L"Name", NULL, NULL, (PBYTE)pszNameBuffer, &dwValueSize);
3394
3395 TRACE("%S -- %S\n", pInterfaceName, pszNameBuffer);
3396 if (_wcsnicmp(pInterfaceName, pszNameBuffer, wcslen(pszNameBuffer)) == 0)
3397 {
3398 TRACE("Found it!\n");
3399 RtlInitUnicodeString(&GuidString, szGuidBuffer);
3400 RtlGUIDFromString(&GuidString, pInterfaceGUID);
3401
3402 bFound = TRUE;
3403 }
3404
3405 HeapFree(GetProcessHeap(), 0, pszNameBuffer);
3406 }
3407
3408 RegCloseKey(hConnectionKey);
3409 }
3410
3411 RegCloseKey(hAdapterKey);
3412 }
3413
3414 if (bFound == TRUE)
3415 break;
3416 }
3417
3418 RegCloseKey(hAdaptersKey);
3419
3420 return bFound ? ERROR_SUCCESS : ERROR_NOT_FOUND;
3421}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
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)
Definition: reg.c:2504
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
Definition: wcs.c:2983
_ACRTIMP int __cdecl _wcsnicmp(const wchar_t *, const wchar_t *, size_t)
Definition: wcs.c:195
#define L(x)
Definition: resources.c:13
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint64EXT * result
Definition: glext.h:11304
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static PWSTR GuidString
Definition: apphelp.c:93
#define KEY_READ
Definition: nt_native.h:1026
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
BYTE * PBYTE
Definition: pedump.c:66
short WCHAR
Definition: pedump.c:58
#define TRACE(s)
Definition: solgame.cpp:4
uint16_t * PWSTR
Definition: typedefs.h:56
NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING, GUID *)
#define ERROR_NOT_FOUND
Definition: winerror.h:1014
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by IpSetAddress().

◆ NhGetInterfaceNameFromDeviceGuid()

DWORD WINAPI NhGetInterfaceNameFromDeviceGuid ( _In_ const GUID pInterfaceGUID,
_Out_writes_bytes_to_ *, *pOutBufLen PWCHAR  pInterfaceName,
_Inout_ PULONG  pOutBufLen,
DWORD  dwUnknown4,
DWORD  dwUnknown5 
)

Definition at line 3315 of file iphlpapi_main.c.

3320{
3322
3323 if (pInterfaceName == NULL)
3325
3326 return GetInterfaceNameInternal(pInterfaceGUID, pInterfaceName, pOutBufLen);
3327}
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SetLastError(x)
Definition: compat.h:752
DWORD GetInterfaceNameInternal(_In_ const GUID *pInterfaceGUID, _Out_writes_bytes_to_(*pOutBufLen, *pOutBufLen) PWCHAR pInterfaceName, _Inout_ PULONG pOutBufLen)

Referenced by NsGetFriendlyNameFromIfName().

◆ NhGetInterfaceNameFromGuid()

DWORD WINAPI NhGetInterfaceNameFromGuid ( _In_ const GUID pInterfaceGUID,
_Out_writes_bytes_to_ *, *pOutBufLen PWCHAR  pInterfaceName,
_Inout_ PULONG  pOutBufLen,
DWORD  dwUnknown4,
DWORD  dwUnknown5 
)

Definition at line 3330 of file iphlpapi_main.c.

3335{
3336 DWORD result;
3337
3338 result = GetInterfaceNameInternal(pInterfaceGUID, pInterfaceName, pOutBufLen);
3339
3340 if (result == ERROR_NOT_FOUND)
3342
3343 return result;
3344}
#define ERROR_PATH_NOT_FOUND
Definition: winerror.h:228

Referenced by IpDumpFn(), and IpShowAdapters().

◆ NhpAllocateAndGetInterfaceInfoFromStack()

DWORD WINAPI NhpAllocateAndGetInterfaceInfoFromStack ( _Inout_ IP_INTERFACE_NAME_INFO **  ppTable,
_Inout_ PDWORD  pdwCount,
_In_ BOOL  bOrder,
_In_ HANDLE  hHeap,
_In_ DWORD  dwFlags 
)

Referenced by IpDumpFn(), and IpShowAdapters().