29 ListEntry = ListEntry->
Flink )
36 if (ReceiveRequest->
Irp ==
Irp)
90 DataBuffer = IPPacket->
Data;
95 DataBuffer = IPPacket->
Header;
98 DataBuffer = IPPacket->
Data;
115 CurrentEntry = CurrentEntry->
Flink;
116 if( DstPort == AddrFile->
Port &&
127 (
"Target Buffer: %x, Source Buffer: %x, Size %d\n",
139 RTAIPAddress->
Address->Address->sin_port = SrcPort;
184 Status = (*ReceiveHandler)(HandlerContext,
284 ReceiveRequest->
Buffer = BufferData;
290 ReceiveRequest->
Context = ReceiveRequest;
292 ReceiveRequest->
Irp =
Irp;
BOOLEAN AddrIsUnspecified(PIP_ADDRESS Address)
#define TI_DbgPrint(_t_, _x_)
IPv4_RAW_ADDRESS IPv4Address
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
BOOLEAN RegisteredReceiveDatagramHandler
#define STATUS_INSUFFICIENT_RESOURCES
IPv6_RAW_ADDRESS IPv6Address
struct _TA_ADDRESS_IP * PTA_IP_ADDRESS
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
NTSTATUS DGReceiveDatagram(PADDRESS_FILE AddrFile, PTDI_CONNECTION_INFORMATION ConnInfo, PCHAR BufferData, ULONG ReceiveLength, ULONG ReceiveFlags, PTDI_CONNECTION_INFORMATION ReturnInfo, PULONG BytesReceived, PDATAGRAM_COMPLETION_ROUTINE Complete, PVOID Context, PIRP Irp)
#define TDI_RECEIVE_ENTIRE_MESSAGE
#define InsertTailList(ListHead, Entry)
DATAGRAM_COMPLETION_ROUTINE Complete
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
#define DereferenceObject(Object)
#define LockObject(Object, Irql)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
BOOLEAN DGRemoveIRP(PADDRESS_FILE AddrFile, PIRP Irp)
#define UnlockObject(Object, OldIrql)
DATAGRAM_COMPLETION_ROUTINE PDATAGRAM_COMPLETION_ROUTINE
struct _TA_ADDRESS_IP::_AddrIp Address[1]
PTDI_IND_RECEIVE_DATAGRAM ReceiveDatagramHandler
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)
PVOID ReceiveDatagramHandlerContext
struct _LIST_ENTRY * Flink
struct _ADDRESS_FILE * AddressFile
#define NT_SUCCESS(StatCode)
#define AddrInitIPv4(IPAddress, RawAddress)
VOID DGReceiveComplete(PVOID Context, NTSTATUS Status, ULONG Count)
#define ExAllocatePoolWithTag(hernya, size, tag)
struct _DATAGRAM_RECEIVE_REQUEST * PDATAGRAM_RECEIVE_REQUEST
NTSTATUS(NTAPI * PTDI_IND_RECEIVE_DATAGRAM)(_In_opt_ PVOID TdiEventContext, _In_ LONG SourceAddressLength, _In_reads_bytes_(SourceAddressLength) PVOID SourceAddress, _In_ LONG OptionsLength, _In_reads_bytes_opt_(OptionsLength) PVOID Options, _In_ ULONG ReceiveDatagramFlags, _In_ ULONG BytesIndicated, _In_ ULONG BytesAvailable, _Out_ ULONG *BytesTaken, _In_ PVOID Tsdu, _Out_opt_ PIRP *IoRequestPacket)
BOOLEAN AddrIsEqual(PIP_ADDRESS Address1, PIP_ADDRESS Address2)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
#define TDI_ADDRESS_TYPE_IP
#define ReferenceObject(Object)
#define STATUS_BUFFER_OVERFLOW
USHORT IPv6_RAW_ADDRESS[8]
VOID DGDeliverData(PADDRESS_FILE AddrFile, PIP_ADDRESS SrcAddress, PIP_ADDRESS DstAddress, USHORT SrcPort, USHORT DstPort, PIP_PACKET IPPacket, UINT DataSize)
NTSTATUS AddrGetAddress(PTRANSPORT_ADDRESS AddrList, PIP_ADDRESS Address, PUSHORT Port)
struct tagContext Context
#define RtlZeroMemory(Destination, Length)
DATAGRAM_COMPLETION_ROUTINE UserComplete
#define ExFreePoolWithTag(_P, _T)
#define TDI_ADDRESS_LENGTH_IP
PTDI_CONNECTION_INFORMATION ReturnInfo
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS SourceAddress
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
union IP_ADDRESS::@990 Address