49 (
"PacketEntry: %x, NdisPacket %x\n",
50 PacketEntry,
Packet->Packet));
79 (
"PacketEntry: %x, NdisPacket %x\n",
80 PacketEntry,
Packet->Packet));
108 (NCE = *PrevNCE) !=
NULL;) {
141 *PrevNCE = NCE->
Next;
162 PrevNCE = &NCE->
Next;
203 NextNCE = CurNCE->
Next;
250 (NCE = *PrevNCE) !=
NULL;)
255 *PrevNCE = NCE->
Next;
264 PrevNCE = &NCE->
Next;
277 UINT LinkAddressLength,
302 (
"Called. Interface (0x%X) Address (0x%X) " 303 "LinkAddress (0x%X) LinkAddressLength (%d) State (0x%X)\n",
456 FirstInterface =
NULL;
476 while ((FirstInterface !=
NULL) &&
479 if ((NCE ==
NULL) && (FirstInterface !=
NULL))
533 if (!NCE)
return NULL;
561 (
"Called. NCE (0x%X) NdisPacket (0x%X).\n", NCE, NdisPacket));
577 Packet->Complete = PacketComplete;
578 Packet->Context = PacketContext;
579 Packet->Packet = NdisPacket;
617 (CurNCE = *PrevNCE) !=
NULL;
618 PrevNCE = &CurNCE->
Next)
623 *PrevNCE = CurNCE->
Next;
647 CurNCE = CurNCE->
Next ) {
654 (ArpTable[
Size].PhysAddr,
BOOLEAN AddrIsUnspecified(PIP_ADDRESS Address)
#define ARP_TIMEOUT_RETRANSMISSION
#define TI_DbgPrint(_t_, _x_)
#define ARP_INCOMPLETE_TIMEOUT
IPv4_RAW_ADDRESS IPv4Address
#define NDIS_STATUS_HOST_UNREACHABLE
#define KeRaiseIrql(irql, oldIrql)
_In_ NDIS_ERROR_CODE ErrorCode
#define KeLowerIrql(oldIrql)
VOID NBSendPackets(PNEIGHBOR_CACHE_ENTRY NCE)
PNEIGHBOR_CACHE_ENTRY NBLocateNeighbor(PIP_ADDRESS Address, PIP_INTERFACE Interface)
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
VOID NBSendSolicit(PNEIGHBOR_CACHE_ENTRY NCE)
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
_In_ ULONG _In_ ULONG State
IN PVOID IN PVOID IN USHORT IN USHORT Size
struct _NEIGHBOR_PACKET * PNEIGHBOR_PACKET
#define InsertTailList(ListHead, Entry)
VOID TcpipReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL Irql)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
VOID TcpipAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL Irql)
PNEIGHBOR_CACHE_ENTRY NBFindOrCreateNeighbor(PIP_INTERFACE Interface, PIP_ADDRESS Address, BOOLEAN NoTimeout)
VOID NBCompleteSend(PVOID Context, PNDIS_PACKET NdisPacket, NDIS_STATUS Status)
VOID NBFlushPacketQueue(PNEIGHBOR_CACHE_ENTRY NCE, NTSTATUS ErrorCode)
#define ARP_ENTRY_DYNAMIC
VOID NBRemoveNeighbor(PNEIGHBOR_CACHE_ENTRY NCE)
BOOLEAN ARPTransmit(PIP_ADDRESS Address, PVOID LinkAddress, PIP_INTERFACE Interface)
PLIST_ENTRY NTAPI ExInterlockedRemoveHeadList(IN OUT PLIST_ENTRY ListHead, IN OUT PKSPIN_LOCK Lock)
FORCEINLINE PLIST_ENTRY RemoveHeadList(_Inout_ PLIST_ENTRY ListHead)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define NDIS_STATUS_REQUEST_ABORTED
VOID(* PNEIGHBOR_PACKET_COMPLETE)(PVOID Context, PNDIS_PACKET Packet, NDIS_STATUS Status)
ULONG NBCopyNeighbors(PIP_INTERFACE Interface, PIPARP_ENTRY ArpTable)
LL_TRANSMIT_ROUTINE Transmit
#define NDIS_STATUS_NOT_ACCEPTED
#define ARP_COMPLETE_TIMEOUT
BOOLEAN NBQueuePacket(PNEIGHBOR_CACHE_ENTRY NCE, PNDIS_PACKET NdisPacket, PNEIGHBOR_PACKET_COMPLETE PacketComplete, PVOID PacketContext)
struct NEIGHBOR_CACHE_ENTRY * Next
#define ARP_ENTRY_INVALID
#define ASSERT_KM_POINTER(_x)
#define ExAllocatePoolWithTag(hernya, size, tag)
VOID TcpipReleaseSpinLockFromDpcLevel(PKSPIN_LOCK SpinLock)
BOOLEAN AddrIsEqual(PIP_ADDRESS Address1, PIP_ADDRESS Address2)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
VOID NBDestroyNeighborsForInterface(PIP_INTERFACE Interface)
NEIGHBOR_CACHE_TABLE NeighborCache[NB_HASHMASK+1]
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
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
#define InitializeListHead(ListHead)
VOID NBResetNeighborTimeout(PIP_ADDRESS Address)
PNEIGHBOR_CACHE_ENTRY NBAddNeighbor(PIP_INTERFACE Interface, PIP_ADDRESS Address, PVOID LinkAddress, UINT LinkAddressLength, UCHAR State, UINT EventTimer)
VOID TcpipInitializeSpinLock(PKSPIN_LOCK SpinLock)
union IP_ADDRESS::@995 Address
VOID TcpipAcquireSpinLockAtDpcLevel(PKSPIN_LOCK SpinLock)
PIP_INTERFACE GetDefaultInterface(VOID)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
#define NDIS_STATUS_NETWORK_UNREACHABLE
#define RtlCopyMemory(Destination, Source, Length)
#define ExFreePoolWithTag(_P, _T)
struct NEIGHBOR_CACHE_ENTRY * Cache
VOID NBUpdateNeighbor(PNEIGHBOR_CACHE_ENTRY NCE, PVOID LinkAddress, UCHAR State)
PCHAR A2S(PIP_ADDRESS Address)