10#define NB_HASHMASK 0xF
41#define NUD_INCOMPLETE 0x01
42#define NUD_PERMANENT 0x02
46#define ARP_INCOMPLETE_TIMEOUT 3
52#define ARP_COMPLETE_TIMEOUT (ARP_RATE + 9)
55#define ARP_TIMEOUT_RETRANSMISSION 3
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
NEIGHBOR_CACHE_TABLE NeighborCache[NB_HASHMASK+1]
ULONG NBCopyNeighbors(PIP_INTERFACE Interface, PIPARP_ENTRY ArpTable)
VOID NBDestroyNeighborsForInterface(PIP_INTERFACE Interface)
VOID(* PNEIGHBOR_PACKET_COMPLETE)(PVOID Context, PNDIS_PACKET Packet, NDIS_STATUS Status)
PNEIGHBOR_CACHE_ENTRY NBFindOrCreateNeighbor(PIP_INTERFACE Interface, PIP_ADDRESS Address, BOOLEAN NoTimeout)
BOOLEAN NBQueuePacket(PNEIGHBOR_CACHE_ENTRY NCE, PNDIS_PACKET NdisPacket, PNEIGHBOR_PACKET_COMPLETE PacketComplete, PVOID PacketContext)
PNEIGHBOR_CACHE_ENTRY NBLocateNeighbor(PIP_ADDRESS Address, PIP_INTERFACE Interface)
PNEIGHBOR_CACHE_ENTRY NBAddNeighbor(PIP_INTERFACE Interface, PIP_ADDRESS Address, PVOID LinkAddress, UINT LinkAddressLength, UCHAR Type, UINT EventTimer)
VOID NBResetNeighborTimeout(PIP_ADDRESS Address)
VOID NBRemoveNeighbor(PNEIGHBOR_CACHE_ENTRY NCE)
struct _NEIGHBOR_PACKET NEIGHBOR_PACKET
VOID NBSendSolicit(PNEIGHBOR_CACHE_ENTRY NCE)
struct _NEIGHBOR_PACKET * PNEIGHBOR_PACKET
struct NEIGHBOR_CACHE_TABLE * PNEIGHBOR_CACHE_TABLE
struct NEIGHBOR_CACHE_ENTRY * PNEIGHBOR_CACHE_ENTRY
VOID NBUpdateNeighbor(PNEIGHBOR_CACHE_ENTRY NCE, PVOID LinkAddress, UCHAR State)
struct NEIGHBOR_CACHE_ENTRY * Next
struct NEIGHBOR_CACHE_ENTRY * Cache
PNEIGHBOR_PACKET_COMPLETE Complete
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface