ReactOS  0.4.15-dev-3331-g8ebe441
titypes.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS TCP/IP protocol driver
4  * FILE: include/titypes.h
5  * PURPOSE: TCP/IP protocol driver types
6  */
7 
8 #pragma once
9 
10 /*
11  * VOID ReferenceObject(
12  * PVOID Object)
13  */
14 #define ReferenceObject(Object) \
15 { \
16  ASSERT((Object)->RefCount); \
17  InterlockedIncrement(&((Object)->RefCount)); \
18 }
19 
20 /*
21  * VOID DereferenceObject(
22  * PVOID Object)
23  */
24 #define DereferenceObject(Object) \
25 { \
26  ASSERT((Object)->RefCount); \
27  if (InterlockedDecrement(&((Object)->RefCount)) == 0) \
28  (((Object)->Free)(Object)); \
29 }
30 
31 /*
32  * VOID LockObject(PVOID Object)
33  */
34 #define LockObject(Object) do \
35 { \
36  ReferenceObject(Object); \
37  KeEnterCriticalRegion(); \
38  ExAcquireResourceExclusiveLite(&(Object)->Resource, TRUE); \
39 } while(0)
40 
41 /*
42  * VOID UnlockObject(PVOID Object)
43  */
44 #define UnlockObject(Object) do \
45 { \
46  ExReleaseResourceLite(&(Object)->Resource); \
47  KeLeaveCriticalRegion(); \
48  DereferenceObject(Object); \
49 } while(0)
50 
51 #define ASSERT_TCPIP_OBJECT_LOCKED(Object) ASSERT(ExIsResourceAcquiredExclusiveLite(&(Object)->Resource))
52 
53 #include <ip.h>
54 
55 struct _ADDRESS_FILE;
56 
57 /***************************************************
58 * Connection-less communication support structures *
59 ***************************************************/
60 
62  struct _ADDRESS_FILE *AddrFile,
64  PCHAR Buffer,
66  PULONG DataUsed);
67 
68 /* Datagram completion handler prototype */
70  PVOID Context,
72  ULONG Count);
73 
75 
76 typedef struct _DATAGRAM_RECEIVE_REQUEST {
77  struct _ADDRESS_FILE *AddressFile; /* AddressFile on behalf of */
78  LIST_ENTRY ListEntry; /* Entry on list */
79  IP_ADDRESS RemoteAddress; /* Remote address we receive from (NULL means any) */
80  USHORT RemotePort; /* Remote port we receive from (0 means any) */
81  PTDI_CONNECTION_INFORMATION ReturnInfo;/* Return information */
82  PCHAR Buffer; /* Pointer to receive buffer */
83  ULONG BufferSize; /* Size of Buffer */
84  DATAGRAM_COMPLETION_ROUTINE Complete; /* Completion routine */
85  PVOID Context; /* Pointer to context information */
86  DATAGRAM_COMPLETION_ROUTINE UserComplete; /* Completion routine */
87  PVOID UserContext; /* Pointer to context information */
88  PIRP Irp; /* IRP on behalf of */
90 
91 /* Datagram build routine prototype */
93  PVOID Context,
95  USHORT LocalPort,
96  PIP_PACKET *IPPacket);
97 
98 typedef struct _DATAGRAM_SEND_REQUEST {
101  DATAGRAM_COMPLETION_ROUTINE Complete; /* Completion routine */
102  PVOID Context; /* Pointer to context information */
107  ULONG Flags; /* Protocol specific flags */
109 
110 /* Transport address file context structure. The FileObject->FsContext2
111  field holds a pointer to this structure */
112 typedef struct _ADDRESS_FILE {
113  LIST_ENTRY ListEntry; /* Entry on list */
114  LONG RefCount; /* Reference count */
115  OBJECT_FREE_ROUTINE Free; /* Routine to use to free resources for the object */
116  ERESOURCE Resource; /* Resource to manipulate this structure */
117  IP_ADDRESS Address; /* Address of this address file */
118  USHORT Family; /* Address family */
119  USHORT Protocol; /* Protocol number */
120  USHORT Port; /* Network port (network byte order) */
121  LONG Sharers; /* Number of file objects with this addr file */
122  UCHAR TTL; /* Time to live stored in packets sent from this address file */
123  UINT DF; /* Don't fragment */
124  UINT BCast; /* Receive broadcast packets */
125  UINT HeaderIncl; /* Include header in RawIP packets */
126  DATAGRAM_COMPLETION_ROUTINE Complete; /* Completion routine for delete request */
127  PVOID Context; /* Delete request context */
128  DATAGRAM_SEND_ROUTINE Send; /* Routine to send a datagram */
129  LIST_ENTRY ReceiveQueue; /* List of outstanding receive requests */
130  LIST_ENTRY TransmitQueue; /* List of outstanding transmit requests */
132  /* Associated connection or NULL if no associated connection exist */
134  /* Associated listener (see transport/tcp/accept.c) */
135  IP_ADDRESS AddrCache; /* One entry address cache (destination
136  address of last packet transmitted) */
137  HANDLE ProcessId; /* Creator process ID */
138  PVOID SubProcessTag; /* Creator process tag */
139  LARGE_INTEGER CreationTime; /* Time of creation */
140 
141  /* The following members are used to control event notification */
142 
143  /* Connection indication handler */
147  /* Disconnect indication handler */
151  /* Error indication handler */
156  /* Receive indication handler */
160  /* Receive datagram indication handler */
164  /* Expedited receive indication handler */
168  /* Chained receive indication handler */
172  /* Chained receive datagram indication handler */
176  /* Chained expedited receive indication handler */
181 
182 /* Structure used to search through Address Files */
183 typedef struct _AF_SEARCH {
184  PLIST_ENTRY Next; /* Next address file to check */
185  PIP_ADDRESS Address; /* Pointer to address to be found */
186  USHORT Port; /* Network port */
187  USHORT Protocol; /* Protocol number */
189 
190 /*******************************************************
191 * Connection-oriented communication support structures *
192 *******************************************************/
193 
194 typedef struct _TCP_RECEIVE_REQUEST {
195  LIST_ENTRY ListEntry; /* Entry on list */
196  PNDIS_BUFFER Buffer; /* Pointer to receive buffer */
197  ULONG BufferSize; /* Size of Buffer */
198  DATAGRAM_COMPLETION_ROUTINE Complete; /* Completion routine */
199  PVOID Context; /* Pointer to context information */
201 
202 /* Connection states */
203 typedef enum {
204  ctListen = 0, /* Waiting for incoming connection requests */
205  ctSynSent, /* Waiting for matching connection request */
206  ctSynReceived, /* Waiting for connection request acknowledgment */
207  ctEstablished, /* Connection is open for data transfer */
208  ctFinWait1, /* Waiting for termination request or ack. for same */
209  ctFinWait2, /* Waiting for termination request from remote TCP */
210  ctCloseWait, /* Waiting for termination request from local user */
211  ctClosing, /* Waiting for termination ack. from remote TCP */
212  ctLastAck, /* Waiting for termination request ack. from remote TCP */
213  ctTimeWait, /* Waiting for enough time to pass to be sure the remote TCP
214  received the ack. of its connection termination request */
215  ctClosed /* Represents a closed connection */
217 
218 
219 /* Structure for an TCP segment */
220 typedef struct _TCP_SEGMENT {
222  PIP_PACKET IPPacket; /* Pointer to IP packet */
223  PVOID SegmentData; /* Pointer to segment data */
224  ULONG SequenceNumber; /* Sequence number of first byte in segment */
225  ULONG Length; /* Number of bytes in segment */
226  ULONG BytesDelivered; /* Number of bytes already delivered to the client */
228 
229 typedef struct _TDI_BUCKET {
236 
237 /* Transport connection context structure A.K.A. Transmission Control Block
238  (TCB) in TCP terminology. The FileObject->FsContext2 field holds a pointer
239  to this structure */
240 typedef struct _CONNECTION_ENDPOINT {
241  PVOID SocketContext; /* Context for lower layer (MUST be first member in struct) */
242  LIST_ENTRY ListEntry; /* Entry on list */
243  LONG RefCount; /* Reference count */
244  OBJECT_FREE_ROUTINE Free; /* Routine to use to free resources for the object */
245  ERESOURCE Resource; /* The lock protecting this structure */
246  PVOID ClientContext; /* Pointer to client context information */
247  PADDRESS_FILE AddressFile; /* Associated address file object (NULL if none) */
248 
249  /* Requests */
250  LIST_ENTRY ConnectRequest; /* Queued connect requests */
251  LIST_ENTRY ListenRequest; /* Queued listen requests */
252  LIST_ENTRY ReceiveRequest; /* Queued receive requests */
253  LIST_ENTRY SendRequest; /* Queued send requests */
254  LIST_ENTRY ShutdownRequest;/* Queued shutdown requests */
255 
256  LIST_ENTRY PacketQueue; /* Queued received packets waiting to be processed */
257 
258  /* Disconnect Timer */
262 
263  /* Socket state */
268 
269  struct _CONNECTION_ENDPOINT *Next; /* Next connection in address file list */
271 
272 
273 
274 /*************************
275 * TDI support structures *
276 *************************/
277 
278 /* Transport control channel context structure. The FileObject->FsContext2
279  field holds a pointer to this structure */
280 typedef struct _CONTROL_CHANNEL {
281  LIST_ENTRY ListEntry; /* Entry on list */
282  LONG RefCount; /* Reference count */
283  OBJECT_FREE_ROUTINE Free; /* Routine to use to free resources for the object */
284  KSPIN_LOCK Lock; /* Spin lock to protect this structure */
286 
287 /* Transport (TCP/UDP) endpoint context structure. The FileObject->FsContext
288  field holds a pointer to this structure */
289 typedef struct _TRANSPORT_CONTEXT {
290  union {
294  } Handle;
298 
299 typedef struct _TI_QUERY_CONTEXT {
305 
306 /* EOF */
signed char * PCHAR
Definition: retypes.h:7
LIST_ENTRY ListEntry
Definition: titypes.h:99
PTDI_IND_DISCONNECT DisconnectHandler
Definition: titypes.h:148
PVOID ChainedReceiveExpeditedHandlerContext
Definition: titypes.h:178
struct _DATAGRAM_SEND_REQUEST * PDATAGRAM_SEND_REQUEST
BOOLEAN RegisteredReceiveDatagramHandler
Definition: titypes.h:163
PLIST_ENTRY Next
Definition: titypes.h:184
union _TRANSPORT_CONTEXT::@993 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)
Definition: tdikrnl.h:352
PVOID ChainedReceiveDatagramHandlerContext
Definition: titypes.h:174
PNDIS_BUFFER Buffer
Definition: titypes.h:196
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)
Definition: tdikrnl.h:185
enum CONNECTION_STATE * PCONNECTION_STATE
HANDLE ControlChannel
Definition: titypes.h:293
struct _TRANSPORT_CONTEXT TRANSPORT_CONTEXT
UCHAR TTL
Definition: titypes.h:122
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
PNDIS_PACKET PacketToSend
Definition: titypes.h:100
MDL * PNDIS_BUFFER
Definition: ndis.h:343
OBJECT_FREE_ROUTINE Free
Definition: titypes.h:283
struct _CONTROL_CHANNEL CONTROL_CHANNEL
DATAGRAM_SEND_ROUTINE Send
Definition: titypes.h:128
LONG Sharers
Definition: titypes.h:121
BOOLEAN RegisteredExpeditedReceiveHandler
Definition: titypes.h:167
LONG RefCount
Definition: titypes.h:114
LONG NTSTATUS
Definition: precomp.h:26
USHORT Protocol
Definition: titypes.h:119
struct _CONNECTION_ENDPOINT * PCONNECTION_ENDPOINT
PVOID ReceiveHandlerContext
Definition: titypes.h:158
PTDI_IND_RECEIVE ReceiveHandler
Definition: titypes.h:157
struct _DATAGRAM_RECEIVE_REQUEST DATAGRAM_RECEIVE_REQUEST
NTSTATUS ReceiveShutdownStatus
Definition: titypes.h:266
PIP_ADDRESS Address
Definition: titypes.h:185
struct _TDI_BUCKET TDI_BUCKET
HANDLE ProcessId
Definition: titypes.h:137
ERESOURCE Resource
Definition: titypes.h:245
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:198
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:84
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)
Definition: tdikrnl.h:324
struct _TCP_RECEIVE_REQUEST TCP_RECEIVE_REQUEST
LIST_ENTRY PacketQueue
Definition: titypes.h:256
struct _CONNECTION_ENDPOINT CONNECTION_ENDPOINT
IP_ADDRESS AddrCache
Definition: titypes.h:135
NTSTATUS(NTAPI * PTDI_IND_ERROR)(_In_opt_ PVOID TdiEventContext, _In_ NTSTATUS Status)
Definition: tdikrnl.h:207
int NDIS_STATUS
Definition: ntddndis.h:471
PVOID SegmentData
Definition: titypes.h:223
HANDLE AddressHandle
Definition: titypes.h:291
struct _CONNECTION_ENDPOINT * Next
Definition: titypes.h:269
Definition: ip.h:23
PADDRESS_FILE AddressFile
Definition: titypes.h:247
PVOID ErrorHandlerOwner
Definition: titypes.h:154
struct _ADDRESS_FILE ADDRESS_FILE
ULONG BytesDelivered
Definition: titypes.h:226
BOOLEAN RegisteredErrorHandler
Definition: titypes.h:155
struct _DATAGRAM_SEND_REQUEST DATAGRAM_SEND_REQUEST
KEVENT CleanupEvent
Definition: titypes.h:296
long LONG
Definition: pedump.c:60
BOOLEAN RegisteredChainedReceiveDatagramHandler
Definition: titypes.h:175
ERESOURCE Resource
Definition: titypes.h:116
struct _TCP_SEGMENT TCP_SEGMENT
struct _ADDRESS_FILE * PADDRESS_FILE
unsigned char BOOLEAN
CONNECTION_STATE
Definition: titypes.h:203
DATAGRAM_COMPLETION_ROUTINE PDATAGRAM_COMPLETION_ROUTINE
Definition: titypes.h:74
struct _TCP_RECEIVE_REQUEST * PTCP_RECEIVE_REQUEST
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:101
BOOLEAN SendShutdown
Definition: titypes.h:264
OBJECT_FREE_ROUTINE Free
Definition: titypes.h:244
PTDI_IND_RECEIVE_DATAGRAM ReceiveDatagramHandler
Definition: titypes.h:161
BOOLEAN RegisteredChainedReceiveHandler
Definition: titypes.h:171
BOOLEAN RegisteredConnectHandler
Definition: titypes.h:146
ULONG SequenceNumber
Definition: titypes.h:224
PVOID ReceiveDatagramHandlerContext
Definition: titypes.h:162
LIST_ENTRY ListEntry
Definition: titypes.h:221
Status
Definition: gdiplustypes.h:24
BOOLEAN CancelIrps
Definition: titypes.h:295
int Count
Definition: noreturn.cpp:7
struct _TCP_SEGMENT * PTCP_SEGMENT
struct _ADDRESS_FILE * AddressFile
Definition: titypes.h:77
LIST_ENTRY ListEntry
Definition: titypes.h:78
struct _AF_SEARCH AF_SEARCH
PTDI_IND_ERROR ErrorHandler
Definition: titypes.h:152
BOOLEAN RegisteredChainedReceiveExpeditedHandler
Definition: titypes.h:179
LIST_ENTRY ListEntry
Definition: titypes.h:195
IP_ADDRESS RemoteAddress
Definition: titypes.h:79
LIST_ENTRY ShutdownRequest
Definition: titypes.h:254
PIP_PACKET IPPacket
Definition: titypes.h:222
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)
Definition: tdikrnl.h:302
USHORT Protocol
Definition: titypes.h:187
ULONG Length
Definition: titypes.h:225
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)
Definition: tdikrnl.h:249
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)
Definition: tdikrnl.h:159
unsigned char UCHAR
Definition: xmlstorage.h:181
PTDI_IND_CHAINED_RECEIVE_DATAGRAM ChainedReceiveDatagramHandler
Definition: titypes.h:173
Definition: ketypes.h:687
#define NTSTATUS
Definition: precomp.h:20
struct _CONTROL_CHANNEL * PCONTROL_CHANNEL
PTDI_IND_CHAINED_RECEIVE_EXPEDITED ChainedReceiveExpeditedHandler
Definition: titypes.h:177
KTIMER DisconnectTimer
Definition: titypes.h:259
#define VOID
Definition: acefi.h:82
TCP_REQUEST_QUERY_INFORMATION_EX QueryInfo
Definition: titypes.h:303
LIST_ENTRY ReceiveRequest
Definition: titypes.h:252
UINT HeaderIncl
Definition: titypes.h:125
Definition: typedefs.h:119
LIST_ENTRY ListEntry
Definition: titypes.h:281
LIST_ENTRY Entry
Definition: titypes.h:230
VOID(* OBJECT_FREE_ROUTINE)(PVOID Object)
Definition: ip.h:10
struct _CONNECTION_ENDPOINT * Listener
Definition: titypes.h:133
PVOID ExpeditedReceiveHandlerContext
Definition: titypes.h:166
struct _TI_QUERY_CONTEXT * PTI_QUERY_CONTEXT
PVOID ConnectHandlerContext
Definition: titypes.h:145
PTDI_IND_CHAINED_RECEIVE ChainedReceiveHandler
Definition: titypes.h:169
BOOLEAN RegisteredDisconnectHandler
Definition: titypes.h:150
LIST_ENTRY ListEntry
Definition: titypes.h:113
PTDI_IND_CONNECT ConnectHandler
Definition: titypes.h:144
PVOID ErrorHandlerContext
Definition: titypes.h:153
PVOID SubProcessTag
Definition: titypes.h:138
PVOID ChainedReceiveHandlerContext
Definition: titypes.h:170
struct _TI_QUERY_CONTEXT TI_QUERY_CONTEXT
USHORT Port
Definition: titypes.h:186
IP_ADDRESS RemoteAddress
Definition: titypes.h:105
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)
Definition: tdikrnl.h:278
BOOLEAN ReceiveShutdown
Definition: titypes.h:265
unsigned short USHORT
Definition: pedump.c:61
CONNECTION_CONTEXT ConnectionContext
Definition: titypes.h:292
IP_ADDRESS Address
Definition: titypes.h:117
struct _CONNECTION_ENDPOINT * AssociatedEndpoint
Definition: titypes.h:231
UINT BCast
Definition: titypes.h:124
LIST_ENTRY ConnectRequest
Definition: titypes.h:250
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
NTSTATUS(* DATAGRAM_SEND_ROUTINE)(struct _ADDRESS_FILE *AddrFile, PTDI_CONNECTION_INFORMATION ConnInfo, PCHAR Buffer, ULONG DataSize, PULONG DataUsed)
Definition: titypes.h:61
LIST_ENTRY ListenRequest
Definition: titypes.h:251
unsigned int * PULONG
Definition: retypes.h:1
unsigned int UINT
Definition: ndis.h:50
OBJECT_FREE_ROUTINE Free
Definition: titypes.h:115
LIST_ENTRY SendRequest
Definition: titypes.h:253
PIO_WORKITEM DisconnectWorkItem
Definition: titypes.h:261
VOID(* DATAGRAM_COMPLETION_ROUTINE)(PVOID Context, NDIS_STATUS Status, ULONG Count)
Definition: titypes.h:69
PVOID DisconnectHandlerContext
Definition: titypes.h:149
NTSTATUS Status
Definition: titypes.h:233
struct tagContext Context
Definition: acpixf.h:1034
struct _TRANSPORT_CONTEXT * PTRANSPORT_CONTEXT
ULONG ERESOURCE
Definition: env_spec_w32.h:594
unsigned int ULONG
Definition: retypes.h:1
struct _TDI_BUCKET * PTDI_BUCKET
LIST_ENTRY TransmitQueue
Definition: titypes.h:130
USHORT Family
Definition: titypes.h:118
DATAGRAM_COMPLETION_ROUTINE UserComplete
Definition: titypes.h:86
TDI_REQUEST Request
Definition: titypes.h:232
struct _CONNECTION_ENDPOINT * Connection
Definition: titypes.h:131
LIST_ENTRY ReceiveQueue
Definition: titypes.h:129
Definition: ip.h:77
USHORT Port
Definition: titypes.h:120
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:126
PTDI_IND_RECEIVE_EXPEDITED ExpeditedReceiveHandler
Definition: titypes.h:165
PTDI_CONNECTION_INFORMATION ReturnInfo
Definition: titypes.h:81
BOOLEAN RegisteredReceiveHandler
Definition: titypes.h:159
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)
Definition: tdikrnl.h:225
PVOID Context
Definition: titypes.h:127
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4751
LIST_ENTRY ListEntry
Definition: titypes.h:242
NTSTATUS(* DATAGRAM_BUILD_ROUTINE)(PVOID Context, PIP_ADDRESS LocalAddress, USHORT LocalPort, PIP_PACKET *IPPacket)
Definition: titypes.h:92
KSPIN_LOCK Lock
Definition: titypes.h:284
ULONG Information
Definition: titypes.h:234
_Must_inspect_result_ _In_ ULONG _In_ PSOCKADDR LocalAddress
Definition: wsk.h:170
struct _AF_SEARCH * PAF_SEARCH
LARGE_INTEGER CreationTime
Definition: titypes.h:139