windows-nt/Source/XPSP1/NT/net/tcpip/apis/iphlpapi/dll/lanmap.h
2020-09-26 16:20:57 +08:00

108 lines
1.7 KiB
C

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
iphlpapi\lanmap.h
Abstract:
Header for lanmap.c
Revision History:
AmritanR Created
--*/
#pragma once
#define REG_VALUE_CONN_NAME_W L"Name"
#define CONN_KEY_FORMAT_W L"System\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\%s\\Connection"
#define LAN_HASH_TABLE_SIZE 29
#define LAN_GUID_HASH(pg) \
(((ULONG)((pg)->Data1 + *((ULONG *)(&((pg)->Data2))))) % LAN_HASH_TABLE_SIZE)
typedef struct _LAN_NODE
{
LIST_ENTRY leGuidLink;
LIST_ENTRY leNameLink;
GUID Guid;
WCHAR rgwcName[MAX_INTERFACE_NAME_LEN + 2];
}LAN_NODE, *PLAN_NODE;
DWORD
NhiGetLanConnectionNameFromGuid(
IN GUID *pGuid,
OUT PWCHAR pwszName,
IN OUT PULONG pulBufferLength,
IN BOOL bRefresh,
IN BOOL bCache
);
DWORD
NhiGetGuidFromLanConnectionName(
IN PWCHAR pwszBuffer,
OUT GUID *pGuid,
IN BOOL bRefresh,
IN BOOL bCache
);
DWORD
NhiGetLanConnectionDescriptionFromGuid(
IN GUID *pGuid,
OUT PWCHAR pwszBuffer,
IN OUT PULONG pulBufferSize,
IN BOOL bCache,
IN BOOL bRefresh
);
DWORD
InitLanNameMapper(
VOID
);
VOID
DeinitLanNameMapper(
VOID
);
DWORD
OpenConnectionKey(
IN GUID *pGuid,
OUT PHKEY phkey
);
PLAN_NODE
LookupLanNodeByGuid(
IN GUID *pGuid
);
PLAN_NODE
LookupLanNodeByName(
IN PWCHAR pwszName
);
DWORD
AddLanNode(
IN GUID *pGuid,
IN PWCHAR pwszName
);
VOID
RemoveLanNode(
IN PLAN_NODE pNode
);
DWORD
UpdateLanLookupTable(
VOID
);