Go to the source code of this file.
◆ MAX_TIMEOUT_COUNT
◆ IP_FRAGMENT
◆ IPDATAGRAM_HOLE
◆ IPDATAGRAM_REASSEMBLY
◆ PIP_FRAGMENT
◆ PIPDATAGRAM_HOLE
◆ PIPDATAGRAM_REASSEMBLY
◆ IPDatagramReassemblyTimeout()
VOID IPDatagramReassemblyTimeout |
( |
VOID |
| ) |
|
Definition at line 515 of file receive.c.
523{
526
528
531 {
532 NextEntry = CurrentEntry->
Flink;
534
536
538 {
542 }
543 else
544 {
547 }
548
549 CurrentEntry = NextEntry;
550 }
551
553}
VOID TcpipAcquireSpinLockAtDpcLevel(PKSPIN_LOCK SpinLock)
VOID TcpipReleaseSpinLockFromDpcLevel(PKSPIN_LOCK SpinLock)
#define RemoveEntryList(Entry)
LIST_ENTRY ReassemblyListHead
VOID FreeIPDR(PIPDATAGRAM_REASSEMBLY IPDR)
KSPIN_LOCK ReassemblyListLock
#define MAX_TIMEOUT_COUNT
struct _LIST_ENTRY * Flink
#define CONTAINING_RECORD(address, type, field)
Referenced by IPTimeoutDpcFn().
◆ IPFreeReassemblyList()
Definition at line 485 of file receive.c.
490{
494
496
499 NextEntry = CurrentEntry->
Flink;
501
502
504
505
507
508 CurrentEntry = NextEntry;
509 }
510
512}
VOID TcpipReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL Irql)
VOID TcpipAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL Irql)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Referenced by IPShutdown().
◆ IPReceive()
Definition at line 638 of file receive.c.
645{
648
649
655 {
657 IPPacket->
Free(IPPacket);
658 return;
659 }
660
661
663
665 case 4:
668 break;
669 case 6:
672 break;
673 default:
675 break;
676 }
677
678 IPPacket->
Free(IPPacket);
679}
UINT CopyPacketToBuffer(PUCHAR DstData, PNDIS_PACKET SrcPacket, UINT SrcOffset, UINT Length)
#define TI_DbgPrint(_t_, _x_)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET _In_ UINT _Out_ PUINT BytesCopied
VOID IPv4Receive(PIP_INTERFACE IF, PIP_PACKET IPPacket)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Referenced by LanReceiveWorker(), LoopPassiveWorker(), and main().
◆ IPDRList
◆ IPFragmentList
◆ IPHoleList
◆ ReassemblyListHead
◆ ReassemblyListLock