ReactOS 0.4.15-dev-7788-g1ad9096
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
55struct _ADDRESS_FILE;
56
57/***************************************************
58* Connection-less communication support structures *
59***************************************************/
60
62 struct _ADDRESS_FILE *AddrFile,
66 PULONG DataUsed);
67
68/* Datagram completion handler prototype */
72 ULONG Count);
73
75
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 */
95 USHORT LocalPort,
96 PIP_PACKET *IPPacket);
97
98typedef 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 */
112typedef 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 */
183typedef 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
194typedef 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 */
203typedef 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 */
220typedef 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
229typedef 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 */
240typedef 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 */
280typedef 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 */
289typedef struct _TRANSPORT_CONTEXT {
290 union {
298
299typedef struct _TI_QUERY_CONTEXT {
305
306/* EOF */
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
#define NTSTATUS
Definition: precomp.h:21
VOID(* OBJECT_FREE_ROUTINE)(PVOID Object)
Definition: ip.h:10
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
ULONG ERESOURCE
Definition: env_spec_w32.h:594
Status
Definition: gdiplustypes.h:25
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4755
unsigned int UINT
Definition: ndis.h:50
MDL * PNDIS_BUFFER
Definition: ndis.h:343
int Count
Definition: noreturn.cpp:7
int NDIS_STATUS
Definition: ntddndis.h:475
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
Definition: ip.h:23
UINT HeaderIncl
Definition: titypes.h:125
BOOLEAN RegisteredReceiveDatagramHandler
Definition: titypes.h:163
struct _CONNECTION_ENDPOINT * Connection
Definition: titypes.h:131
BOOLEAN RegisteredConnectHandler
Definition: titypes.h:146
PTDI_IND_CHAINED_RECEIVE ChainedReceiveHandler
Definition: titypes.h:169
PVOID ChainedReceiveHandlerContext
Definition: titypes.h:170
LIST_ENTRY ReceiveQueue
Definition: titypes.h:129
BOOLEAN RegisteredChainedReceiveExpeditedHandler
Definition: titypes.h:179
PTDI_IND_DISCONNECT DisconnectHandler
Definition: titypes.h:148
PVOID ConnectHandlerContext
Definition: titypes.h:145
HANDLE ProcessId
Definition: titypes.h:137
PTDI_IND_CHAINED_RECEIVE_DATAGRAM ChainedReceiveDatagramHandler
Definition: titypes.h:173
USHORT Family
Definition: titypes.h:118
USHORT Port
Definition: titypes.h:120
PVOID DisconnectHandlerContext
Definition: titypes.h:149
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:126
IP_ADDRESS Address
Definition: titypes.h:117
PTDI_IND_ERROR ErrorHandler
Definition: titypes.h:152
PVOID ReceiveHandlerContext
Definition: titypes.h:158
ERESOURCE Resource
Definition: titypes.h:116
PVOID ExpeditedReceiveHandlerContext
Definition: titypes.h:166
BOOLEAN RegisteredErrorHandler
Definition: titypes.h:155
PTDI_IND_CONNECT ConnectHandler
Definition: titypes.h:144
OBJECT_FREE_ROUTINE Free
Definition: titypes.h:115
PVOID Context
Definition: titypes.h:127
BOOLEAN RegisteredChainedReceiveHandler
Definition: titypes.h:171
PVOID ErrorHandlerOwner
Definition: titypes.h:154
IP_ADDRESS AddrCache
Definition: titypes.h:135
LONG RefCount
Definition: titypes.h:114
LIST_ENTRY TransmitQueue
Definition: titypes.h:130
BOOLEAN RegisteredReceiveHandler
Definition: titypes.h:159
PVOID ChainedReceiveDatagramHandlerContext
Definition: titypes.h:174
LONG Sharers
Definition: titypes.h:121
DATAGRAM_SEND_ROUTINE Send
Definition: titypes.h:128
PVOID ReceiveDatagramHandlerContext
Definition: titypes.h:162
BOOLEAN RegisteredDisconnectHandler
Definition: titypes.h:150
PTDI_IND_RECEIVE_DATAGRAM ReceiveDatagramHandler
Definition: titypes.h:161
PTDI_IND_RECEIVE ReceiveHandler
Definition: titypes.h:157
UCHAR TTL
Definition: titypes.h:122
PVOID ErrorHandlerContext
Definition: titypes.h:153
USHORT Protocol
Definition: titypes.h:119
BOOLEAN RegisteredExpeditedReceiveHandler
Definition: titypes.h:167
LARGE_INTEGER CreationTime
Definition: titypes.h:139
PTDI_IND_CHAINED_RECEIVE_EXPEDITED ChainedReceiveExpeditedHandler
Definition: titypes.h:177
struct _CONNECTION_ENDPOINT * Listener
Definition: titypes.h:133
LIST_ENTRY ListEntry
Definition: titypes.h:113
BOOLEAN RegisteredChainedReceiveDatagramHandler
Definition: titypes.h:175
PTDI_IND_RECEIVE_EXPEDITED ExpeditedReceiveHandler
Definition: titypes.h:165
PVOID SubProcessTag
Definition: titypes.h:138
PVOID ChainedReceiveExpeditedHandlerContext
Definition: titypes.h:178
UINT BCast
Definition: titypes.h:124
PLIST_ENTRY Next
Definition: titypes.h:184
USHORT Port
Definition: titypes.h:186
PIP_ADDRESS Address
Definition: titypes.h:185
USHORT Protocol
Definition: titypes.h:187
LIST_ENTRY PacketQueue
Definition: titypes.h:256
PIO_WORKITEM DisconnectWorkItem
Definition: titypes.h:261
LIST_ENTRY ConnectRequest
Definition: titypes.h:250
ERESOURCE Resource
Definition: titypes.h:245
LIST_ENTRY ListEntry
Definition: titypes.h:242
NTSTATUS ReceiveShutdownStatus
Definition: titypes.h:266
BOOLEAN SendShutdown
Definition: titypes.h:264
LIST_ENTRY SendRequest
Definition: titypes.h:253
LIST_ENTRY ListenRequest
Definition: titypes.h:251
LIST_ENTRY ShutdownRequest
Definition: titypes.h:254
PADDRESS_FILE AddressFile
Definition: titypes.h:247
OBJECT_FREE_ROUTINE Free
Definition: titypes.h:244
struct _CONNECTION_ENDPOINT * Next
Definition: titypes.h:269
BOOLEAN ReceiveShutdown
Definition: titypes.h:265
LIST_ENTRY ReceiveRequest
Definition: titypes.h:252
KTIMER DisconnectTimer
Definition: titypes.h:259
OBJECT_FREE_ROUTINE Free
Definition: titypes.h:283
LIST_ENTRY ListEntry
Definition: titypes.h:281
KSPIN_LOCK Lock
Definition: titypes.h:284
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:84
LIST_ENTRY ListEntry
Definition: titypes.h:78
struct _ADDRESS_FILE * AddressFile
Definition: titypes.h:77
PTDI_CONNECTION_INFORMATION ReturnInfo
Definition: titypes.h:81
DATAGRAM_COMPLETION_ROUTINE UserComplete
Definition: titypes.h:86
IP_ADDRESS RemoteAddress
Definition: titypes.h:79
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:101
LIST_ENTRY ListEntry
Definition: titypes.h:99
IP_ADDRESS RemoteAddress
Definition: titypes.h:105
PNDIS_PACKET PacketToSend
Definition: titypes.h:100
Definition: ip.h:77
Definition: ketypes.h:699
Definition: typedefs.h:120
LIST_ENTRY ListEntry
Definition: titypes.h:195
DATAGRAM_COMPLETION_ROUTINE Complete
Definition: titypes.h:198
PNDIS_BUFFER Buffer
Definition: titypes.h:196
LIST_ENTRY ListEntry
Definition: titypes.h:221
PVOID SegmentData
Definition: titypes.h:223
ULONG BytesDelivered
Definition: titypes.h:226
ULONG SequenceNumber
Definition: titypes.h:224
PIP_PACKET IPPacket
Definition: titypes.h:222
ULONG Length
Definition: titypes.h:225
LIST_ENTRY Entry
Definition: titypes.h:230
NTSTATUS Status
Definition: titypes.h:233
ULONG Information
Definition: titypes.h:234
TDI_REQUEST Request
Definition: titypes.h:232
struct _CONNECTION_ENDPOINT * AssociatedEndpoint
Definition: titypes.h:231
TCP_REQUEST_QUERY_INFORMATION_EX QueryInfo
Definition: titypes.h:303
HANDLE AddressHandle
Definition: titypes.h:291
KEVENT CleanupEvent
Definition: titypes.h:296
BOOLEAN CancelIrps
Definition: titypes.h:295
union _TRANSPORT_CONTEXT::@1022 Handle
HANDLE ControlChannel
Definition: titypes.h:293
CONNECTION_CONTEXT ConnectionContext
Definition: titypes.h:292
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
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
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
NTSTATUS(NTAPI * PTDI_IND_ERROR)(_In_opt_ PVOID TdiEventContext, _In_ NTSTATUS Status)
Definition: tdikrnl.h:207
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
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_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
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
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
struct _DATAGRAM_SEND_REQUEST * PDATAGRAM_SEND_REQUEST
struct _TCP_RECEIVE_REQUEST * PTCP_RECEIVE_REQUEST
struct _DATAGRAM_SEND_REQUEST DATAGRAM_SEND_REQUEST
struct _TCP_RECEIVE_REQUEST TCP_RECEIVE_REQUEST
struct _TRANSPORT_CONTEXT * PTRANSPORT_CONTEXT
struct _CONTROL_CHANNEL CONTROL_CHANNEL
struct _AF_SEARCH AF_SEARCH
DATAGRAM_COMPLETION_ROUTINE PDATAGRAM_COMPLETION_ROUTINE
Definition: titypes.h:74
NTSTATUS(* DATAGRAM_BUILD_ROUTINE)(PVOID Context, PIP_ADDRESS LocalAddress, USHORT LocalPort, PIP_PACKET *IPPacket)
Definition: titypes.h:92
struct _TI_QUERY_CONTEXT TI_QUERY_CONTEXT
struct _TRANSPORT_CONTEXT TRANSPORT_CONTEXT
struct _TCP_SEGMENT * PTCP_SEGMENT
struct _CONNECTION_ENDPOINT CONNECTION_ENDPOINT
struct _TCP_SEGMENT TCP_SEGMENT
CONNECTION_STATE
Definition: titypes.h:203
@ ctEstablished
Definition: titypes.h:207
@ ctListen
Definition: titypes.h:204
@ ctTimeWait
Definition: titypes.h:213
@ ctClosed
Definition: titypes.h:215
@ ctSynSent
Definition: titypes.h:205
@ ctLastAck
Definition: titypes.h:212
@ ctSynReceived
Definition: titypes.h:206
@ ctCloseWait
Definition: titypes.h:210
@ ctFinWait2
Definition: titypes.h:209
@ ctFinWait1
Definition: titypes.h:208
@ ctClosing
Definition: titypes.h:211
NTSTATUS(* DATAGRAM_SEND_ROUTINE)(struct _ADDRESS_FILE *AddrFile, PTDI_CONNECTION_INFORMATION ConnInfo, PCHAR Buffer, ULONG DataSize, PULONG DataUsed)
Definition: titypes.h:61
struct _DATAGRAM_RECEIVE_REQUEST DATAGRAM_RECEIVE_REQUEST
struct _CONTROL_CHANNEL * PCONTROL_CHANNEL
struct _CONNECTION_ENDPOINT * PCONNECTION_ENDPOINT
struct _ADDRESS_FILE * PADDRESS_FILE
struct _DATAGRAM_RECEIVE_REQUEST * PDATAGRAM_RECEIVE_REQUEST
struct _TDI_BUCKET TDI_BUCKET
struct _TDI_BUCKET * PTDI_BUCKET
struct _TI_QUERY_CONTEXT * PTI_QUERY_CONTEXT
struct _ADDRESS_FILE ADDRESS_FILE
enum CONNECTION_STATE * PCONNECTION_STATE
VOID(* DATAGRAM_COMPLETION_ROUTINE)(PVOID Context, NDIS_STATUS Status, ULONG Count)
Definition: titypes.h:69
struct _AF_SEARCH * PAF_SEARCH
uint32_t * PULONG
Definition: typedefs.h:59
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ ULONG _In_ PSOCKADDR LocalAddress
Definition: wsk.h:171
unsigned char UCHAR
Definition: xmlstorage.h:181