67 (
"Completing Receive request: %x %x\n",
109 (
"Completing Send request: %x %x\n",
278 while (LastConnection->Next != Connection && LastConnection->
Next !=
NULL)
279 LastConnection = LastConnection->
Next;
280 if (LastConnection->Next == Connection)
282 LastConnection->Next = Connection->
Next;
374 PVOID SendBuffer = 0;
382 (
"Getting the user buffer from %x\n",
Mdl));
387 (
"Writing %d bytes to %x\n", SendLen, SendBuffer));
392 (
"Connection->SocketContext: %x\n",
397 SendLen, &BytesSent,
TRUE));
411 (
"Completing Send request: %x %x\n",
#define TI_DbgPrint(_t_, _x_)
VOID FlushListenQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status)
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
static VOID BucketCompletionWorker(PVOID Context)
VOID TCPFinEventHandler(void *arg, const err_t err)
err_t LibTCPSend(PCONNECTION_ENDPOINT Connection, void *const dataptr, const u16_t len, u32_t *sent, const int safe)
struct _CONNECTION_ENDPOINT * PCONNECTION_ENDPOINT
VOID TCPRecvEventHandler(void *arg)
#define LockObjectAtDpcLevel(Object)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
NTSTATUS TCPCheckPeerForAccept(PVOID Context, PTDI_REQUEST_KERNEL Request)
#define DereferenceObject(Object)
struct _CONNECTION_ENDPOINT * Next
#define LockObject(Object, Irql)
PADDRESS_FILE AddressFile
VOID TCPConnectEventHandler(void *arg, const err_t err)
PLIST_ENTRY NTAPI ExInterlockedInsertHeadList(IN OUT PLIST_ENTRY ListHead, IN OUT PLIST_ENTRY ListEntry, IN OUT PKSPIN_LOCK Lock)
pRequest Complete(RequestStatus)
PVOID RequestNotifyObject
#define UnlockObject(Object, OldIrql)
PLIST_ENTRY NTAPI ExInterlockedRemoveHeadList(IN OUT PLIST_ENTRY ListHead, IN OUT PKSPIN_LOCK Lock)
FORCEINLINE PLIST_ENTRY RemoveHeadList(_Inout_ PLIST_ENTRY ListHead)
VOID TCPAcceptEventHandler(void *arg, PTCP_PCB newpcb)
err_t LibTCPClose(PCONNECTION_ENDPOINT Connection, const int safe, const int callback)
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)
VOID(* PTCP_COMPLETION_ROUTINE)(PVOID Context, NTSTATUS Status, ULONG Count)
BOOLEAN ChewCreate(VOID(*Worker)(PVOID), PVOID WorkerContext)
NPAGED_LOOKASIDE_LIST TdiBucketLookasideList
BOOLEAN NTAPI KeCancelTimer(IN OUT PKTIMER Timer)
struct tcp_pcb * PTCP_PCB
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATPROPSETSTG *rgelt, [out] ULONG *pceltFetched)
VOID FlushShutdownQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status, const BOOLEAN interlocked)
LIST_ENTRY ShutdownRequest
#define UnlockObjectFromDpcLevel(Object)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
LIST_ENTRY ReceiveRequest
#define ReferenceObject(Object)
struct _CONNECTION_ENDPOINT * Listener
VOID FlushAllQueues(PCONNECTION_ENDPOINT Connection, NTSTATUS Status)
VOID FlushConnectQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status)
NTSTATUS TCPTranslateError(const INT8 err)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
NTSTATUS LibTCPGetDataFromConnectionQueue(PCONNECTION_ENDPOINT Connection, PUCHAR RecvBuffer, UINT RecvLen, UINT *Received)
struct _CONNECTION_ENDPOINT * AssociatedEndpoint
_In_ PIO_STACK_LOCATION IrpSp
LIST_ENTRY ConnectRequest
VOID FlushReceiveQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status, const BOOLEAN interlocked)
VOID FlushSendQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status, const BOOLEAN interlocked)
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
VOID EXPORT NdisQueryBuffer(IN PNDIS_BUFFER Buffer, OUT PVOID *VirtualAddress OPTIONAL, OUT PUINT Length)
void LibTCPAccept(PTCP_PCB pcb, struct tcp_pcb *listen_pcb, void *arg)
struct _TDI_BUCKET * PTDI_BUCKET
struct _CONNECTION_ENDPOINT * Connection
VOID TCPSendEventHandler(void *arg, const u16_t space)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
base of all file and directory entries
VOID CompleteBucket(PCONNECTION_ENDPOINT Connection, PTDI_BUCKET Bucket, const BOOLEAN Synchronous)
#define STATUS_FILE_CLOSED