14 #define ReferenceObject(Object) \ 16 ASSERT((Object)->RefCount); \ 17 InterlockedIncrement(&((Object)->RefCount)); \ 24 #define DereferenceObject(Object) \ 26 ASSERT((Object)->RefCount); \ 27 if (InterlockedDecrement(&((Object)->RefCount)) == 0) \ 28 (((Object)->Free)(Object)); \ 34 #define LockObject(Object, Irql) \ 36 ReferenceObject(Object); \ 37 KeAcquireSpinLock(&((Object)->Lock), Irql); \ 38 memcpy(&(Object)->OldIrql, Irql, sizeof(KIRQL)); \ 44 #define LockObjectAtDpcLevel(Object) \ 46 ReferenceObject(Object); \ 47 KeAcquireSpinLockAtDpcLevel(&((Object)->Lock)); \ 48 (Object)->OldIrql = DISPATCH_LEVEL; \ 54 #define UnlockObject(Object, OldIrql) \ 56 KeReleaseSpinLock(&((Object)->Lock), OldIrql); \ 57 DereferenceObject(Object); \ 63 #define UnlockObjectFromDpcLevel(Object) \ 65 KeReleaseSpinLockFromDpcLevel(&((Object)->Lock)); \ 66 DereferenceObject(Object); \
PTDI_IND_DISCONNECT DisconnectHandler
PVOID ChainedReceiveExpeditedHandlerContext
struct _DATAGRAM_SEND_REQUEST * PDATAGRAM_SEND_REQUEST
BOOLEAN RegisteredReceiveDatagramHandler
union _TRANSPORT_CONTEXT::@1013 Handle
NTSTATUS(NTAPI * PTDI_IND_CHAINED_RECEIVE_EXPEDITED)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG ReceiveLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
PVOID ChainedReceiveDatagramHandlerContext
NTSTATUS(NTAPI * PTDI_IND_DISCONNECT)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ LONG DisconnectDataLength, _In_reads_bytes_opt_(DisconnectDataLength) PVOID DisconnectData, _In_ LONG DisconnectInformationLength, _In_reads_bytes_opt_(DisconnectInformationLength) PVOID DisconnectInformation, _In_ ULONG DisconnectFlags)
enum CONNECTION_STATE * PCONNECTION_STATE
struct _TRANSPORT_CONTEXT TRANSPORT_CONTEXT
IN BOOLEAN OUT PSTR Buffer
PNDIS_PACKET PacketToSend
struct _CONTROL_CHANNEL CONTROL_CHANNEL
DATAGRAM_SEND_ROUTINE Send
BOOLEAN RegisteredExpeditedReceiveHandler
struct _CONNECTION_ENDPOINT * PCONNECTION_ENDPOINT
PVOID ReceiveHandlerContext
PTDI_IND_RECEIVE ReceiveHandler
struct _DATAGRAM_RECEIVE_REQUEST DATAGRAM_RECEIVE_REQUEST
NTSTATUS ReceiveShutdownStatus
struct _TDI_BUCKET TDI_BUCKET
DATAGRAM_COMPLETION_ROUTINE Complete
DATAGRAM_COMPLETION_ROUTINE Complete
NTSTATUS(NTAPI * PTDI_IND_CHAINED_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 ReceiveDatagramLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
struct _TCP_RECEIVE_REQUEST TCP_RECEIVE_REQUEST
struct _CONNECTION_ENDPOINT CONNECTION_ENDPOINT
NTSTATUS(NTAPI * PTDI_IND_ERROR)(_In_opt_ PVOID TdiEventContext, _In_ NTSTATUS Status)
struct _CONNECTION_ENDPOINT * Next
PADDRESS_FILE AddressFile
struct _ADDRESS_FILE ADDRESS_FILE
BOOLEAN RegisteredErrorHandler
struct _DATAGRAM_SEND_REQUEST DATAGRAM_SEND_REQUEST
BOOLEAN RegisteredChainedReceiveDatagramHandler
struct _TCP_SEGMENT TCP_SEGMENT
struct _ADDRESS_FILE * PADDRESS_FILE
DATAGRAM_COMPLETION_ROUTINE PDATAGRAM_COMPLETION_ROUTINE
struct _TCP_RECEIVE_REQUEST * PTCP_RECEIVE_REQUEST
DATAGRAM_COMPLETION_ROUTINE Complete
PTDI_IND_RECEIVE_DATAGRAM ReceiveDatagramHandler
BOOLEAN RegisteredChainedReceiveHandler
BOOLEAN RegisteredConnectHandler
PVOID ReceiveDatagramHandlerContext
struct _TCP_SEGMENT * PTCP_SEGMENT
struct _ADDRESS_FILE * AddressFile
struct _AF_SEARCH AF_SEARCH
PTDI_IND_ERROR ErrorHandler
BOOLEAN RegisteredChainedReceiveExpeditedHandler
LIST_ENTRY ShutdownRequest
NTSTATUS(NTAPI * PTDI_IND_CHAINED_RECEIVE)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG ReceiveLength, _In_ ULONG StartingOffset, _In_ PMDL Tsdu, _In_ PVOID TsduDescriptor)
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)
NTSTATUS(NTAPI * PTDI_IND_CONNECT)(_In_opt_ PVOID TdiEventContext, _In_ LONG RemoteAddressLength, _In_reads_bytes_(RemoteAddressLength) PVOID RemoteAddress, _In_ LONG UserDataLength, _In_reads_bytes_opt_(UserDataLength) PVOID UserData, _In_ LONG OptionsLength, _In_reads_bytes_opt_(OptionsLength) PVOID Options, _Out_ CONNECTION_CONTEXT *ConnectionContext, _Out_ PIRP *AcceptIrp)
PTDI_IND_CHAINED_RECEIVE_DATAGRAM ChainedReceiveDatagramHandler
struct _CONTROL_CHANNEL * PCONTROL_CHANNEL
PTDI_IND_CHAINED_RECEIVE_EXPEDITED ChainedReceiveExpeditedHandler
TCP_REQUEST_QUERY_INFORMATION_EX QueryInfo
LIST_ENTRY ReceiveRequest
VOID(* OBJECT_FREE_ROUTINE)(PVOID Object)
struct _CONNECTION_ENDPOINT * Listener
PVOID ExpeditedReceiveHandlerContext
struct _TI_QUERY_CONTEXT * PTI_QUERY_CONTEXT
PVOID ConnectHandlerContext
PTDI_IND_CHAINED_RECEIVE ChainedReceiveHandler
BOOLEAN RegisteredDisconnectHandler
PTDI_IND_CONNECT ConnectHandler
PVOID ErrorHandlerContext
PVOID ChainedReceiveHandlerContext
struct _TI_QUERY_CONTEXT TI_QUERY_CONTEXT
NTSTATUS(NTAPI * PTDI_IND_RECEIVE_EXPEDITED)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG BytesIndicated, _In_ ULONG BytesAvailable, _Out_ ULONG *BytesTaken, _In_ PVOID Tsdu, _Out_opt_ PIRP *IoRequestPacket)
CONNECTION_CONTEXT ConnectionContext
struct _CONNECTION_ENDPOINT * AssociatedEndpoint
LIST_ENTRY ConnectRequest
NTSTATUS(* DATAGRAM_SEND_ROUTINE)(struct _ADDRESS_FILE *AddrFile, PTDI_CONNECTION_INFORMATION ConnInfo, PCHAR Buffer, ULONG DataSize, PULONG DataUsed)
VOID(* DATAGRAM_COMPLETION_ROUTINE)(PVOID Context, NDIS_STATUS Status, ULONG Count)
PVOID DisconnectHandlerContext
struct tagContext Context
struct _TRANSPORT_CONTEXT * PTRANSPORT_CONTEXT
struct _TDI_BUCKET * PTDI_BUCKET
DATAGRAM_COMPLETION_ROUTINE UserComplete
struct _CONNECTION_ENDPOINT * Connection
DATAGRAM_COMPLETION_ROUTINE Complete
PTDI_IND_RECEIVE_EXPEDITED ExpeditedReceiveHandler
PTDI_CONNECTION_INFORMATION ReturnInfo
BOOLEAN RegisteredReceiveHandler
NTSTATUS(NTAPI * PTDI_IND_RECEIVE)(_In_opt_ PVOID TdiEventContext, _In_opt_ CONNECTION_CONTEXT ConnectionContext, _In_ ULONG ReceiveFlags, _In_ ULONG BytesIndicated, _In_ ULONG BytesAvailable, _Out_ ULONG *BytesTaken, _In_ PVOID Tsdu, _Out_opt_ PIRP *IoRequestPacket)
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
NTSTATUS(* DATAGRAM_BUILD_ROUTINE)(PVOID Context, PIP_ADDRESS LocalAddress, USHORT LocalPort, PIP_PACKET *IPPacket)
_Must_inspect_result_ _In_ ULONG _In_ PSOCKADDR LocalAddress
struct _AF_SEARCH * PAF_SEARCH
LARGE_INTEGER CreationTime