ReactOS  0.4.14-dev-614-gbfd8a84
afd.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS kernel
4  * FILE: drivers/net/afd/include/afd.h
5  * PURPOSE: Ancillary functions driver -- constants and structures
6  * PROGRAMMER: Art Yerkes (ayerkes@speakeasy.net)
7  * UPDATE HISTORY:
8  * 20040630 Created
9  */
10 
11 #ifndef _AFD_H
12 #define _AFD_H
13 
14 #include <ntifs.h>
15 #include <ndk/obtypes.h>
16 #include <tdi.h>
17 #include <tcpioctl.h>
18 #define _WINBASE_
19 #define _WINDOWS_H
20 #define _INC_WINDOWS
21 #include <windef.h>
22 #include <winsock2.h>
23 #include <afd/shared.h>
24 #include <pseh/pseh2.h>
25 
26 #include "tdi_proto.h"
27 #include "tdiconn.h"
28 #include "debug.h"
29 
30 #ifndef MIN
31 #define MIN(x,y) (((x)<(y))?(x):(y))
32 #endif
33 
34 #define TL_INSTANCE 0
35 #define IP_MIB_STATS_ID 1
36 #define IP_MIB_ADDRTABLE_ENTRY_ID 0x102
37 
38 #define TAG_AFD_DATA_BUFFER 'BdfA'
39 #define TAG_AFD_TRANSPORT_ADDRESS 'tdfA'
40 #define TAG_AFD_SOCKET_CONTEXT 'XdfA'
41 #define TAG_AFD_CONNECT_DATA 'cdfA'
42 #define TAG_AFD_DISCONNECT_DATA 'ddfA'
43 
44 #define TAG_AFD_CONNECT_OPTIONS 'ocfA'
45 #define TAG_AFD_DISCONNECT_OPTIONS 'odfA'
46 #define TAG_AFD_ACCEPT_QUEUE 'qafA'
47 #define TAG_AFD_POLL_HANDLE 'hpfA'
48 #define TAG_AFD_FCB 'cffA'
49 #define TAG_AFD_ACTIVE_POLL 'pafA'
50 #define TAG_AFD_EA_INFO 'aefA'
51 #define TAG_AFD_STORED_DATAGRAM 'gsfA'
52 #define TAG_AFD_SNMP_ADDRESS_INFO 'asfA'
53 #define TAG_AFD_TDI_CONNECTION_INFORMATION 'cTfA'
54 #define TAG_AFD_WSA_BUFFER 'bWfA'
55 
56 typedef struct IPADDR_ENTRY {
65 
66 #define DN2H(dw) \
67  ((((dw) & 0xFF000000L) >> 24) | \
68  (((dw) & 0x00FF0000L) >> 8) | \
69  (((dw) & 0x0000FF00L) << 8) | \
70  (((dw) & 0x000000FFL) << 24))
71 
72 #define SOCKET_STATE_INVALID_TRANSITION ((DWORD)-1)
73 #define SOCKET_STATE_CREATED 0
74 #define SOCKET_STATE_BOUND 1
75 #define SOCKET_STATE_CONNECTING 2
76 #define SOCKET_STATE_CONNECTED 3
77 #define SOCKET_STATE_LISTENING 4
78 #define SOCKET_STATE_MASK 0x0000ffff
79 #define SOCKET_STATE_EOF_READ 0x20000000
80 #define SOCKET_STATE_LOCKED 0x40000000
81 #define SOCKET_STATE_NEW 0x80000000
82 #define SOCKET_STATE_CLOSED 0x00000100
83 
84 #define FUNCTION_CONNECT 0
85 #define FUNCTION_RECV 1
86 #define FUNCTION_SEND 2
87 #define FUNCTION_PREACCEPT 3
88 #define FUNCTION_ACCEPT 4
89 #define FUNCTION_DISCONNECT 5
90 #define FUNCTION_CLOSE 6
91 #define MAX_FUNCTIONS 7
92 
93 #define IN_FLIGHT_REQUESTS 5
94 
95 #define EXTRA_LOCK_BUFFERS 2 /* Number of extra buffers needed
96  * for ancillary data on packet
97  * requests. */
98 
99 /* XXX This is a hack we should clean up later
100  * We do this in order to get some storage for the locked handle table
101  * Maybe I'll use some tail item in the irp instead */
102 #define AFD_HANDLES(x) ((PAFD_HANDLE)(x)->Exclusive)
103 #define SET_AFD_HANDLES(x,y) (((x)->Exclusive) = (ULONG_PTR)(y))
104 
105 typedef struct _AFD_MAPBUF {
109 
110 typedef struct _AFD_DEVICE_EXTENSION {
115 
116 typedef struct _AFD_ACTIVE_POLL {
125 
126 typedef struct _IRP_LIST {
129 } IRP_LIST, *PIRP_LIST;
130 
131 typedef struct _AFD_TDI_OBJECT {
135 
136 typedef struct _AFD_TDI_OBJECT_QELT {
142 
143 typedef struct _AFD_IN_FLIGHT_REQUEST {
148 
149 typedef struct _AFD_DATA_WINDOW {
153 
154 typedef struct _AFD_STORED_DATAGRAM {
160 
161 typedef struct _AFD_FCB {
204 } AFD_FCB, *PAFD_FCB;
205 
206 /* bind.c */
207 
212 
213 /* connect.c */
214 
238 
239 /* context.c */
240 
250 
251 /* info.c */
252 
256 
260 
264 
268 
269 /* listen.c */
272 
275 
278 
279 /* lock.c */
280 
282  PVOID AddressBuf, PINT AddressLen,
283  BOOLEAN Write, BOOLEAN LockAddress,
289  UINT Information );
292 PAFD_HANDLE LockHandles( PAFD_HANDLE HandleArray, UINT HandleCount );
293 VOID UnlockHandles( PAFD_HANDLE HandleArray, UINT HandleCount );
299 
300 /* main.c */
301 
304 DRIVER_CANCEL AfdCancelHandler;
307 
308 /* read.c */
309 
310 IO_COMPLETION_ROUTINE ReceiveComplete;
311 
312 IO_COMPLETION_ROUTINE PacketSocketRecvComplete;
313 
319 
320 /* select.c */
321 
333  PFILE_OBJECT FileObject, BOOLEAN ExclusiveOnly );
334 VOID ZeroEvents( PAFD_HANDLE HandleArray,
335  UINT HandleCount );
338  PAFD_POLL_INFO PollReq, NTSTATUS Status);
339 
340 /* tdi.c */
341 
345  ULONG ShareType,
346  PHANDLE AddressHandle,
347  PFILE_OBJECT *AddressObject);
348 
350  HANDLE AddressHandle,
351  PFILE_OBJECT ConnectionObject);
352 
354  PFILE_OBJECT ConnectionObject);
355 
357 ( PIRP *Irp,
358  PFILE_OBJECT ConnectionObject,
359  PTDI_CONNECTION_INFORMATION *RequestConnectionInfo,
360  PTDI_CONNECTION_INFORMATION *ReturnConnectionInfo,
363 
365 ( PIRP *Irp,
366  PFILE_OBJECT ConnectionObject,
367  USHORT Flags,
368  PCHAR Buffer,
372 
374 ( PIRP *Irp,
375  PFILE_OBJECT ConnectionObject,
376  USHORT Flags,
377  PCHAR Buffer,
381 
383  PIRP *Irp,
384  PFILE_OBJECT TransportObject,
385  USHORT Flags,
386  PCHAR Buffer,
391 
393  PIRP *Irp,
394  PFILE_OBJECT TransportObject,
395  PCHAR Buffer,
400 
403  PUINT MaxDatagramLength);
404 
405 /* write.c */
406 
413 
414 #endif /* _AFD_H */
NTSTATUS LastReceiveStatus
Definition: afd.h:187
NTSTATUS NTAPI AfdSetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:45
signed char * PCHAR
Definition: retypes.h:7
VOID PollReeval(PAFD_DEVICE_EXTENSION DeviceObject, PFILE_OBJECT FileObject)
Definition: select.c:407
UINT Size
Definition: afd.h:151
NTSTATUS NTAPI AfdGetSockName(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:232
NTSTATUS NTAPI AfdGetConnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:127
HANDLE Handle
Definition: afd.h:133
NTSTATUS NTAPI AfdSetContext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: context.c:64
NTSTATUS WarmSocketForConnection(PAFD_FCB FCB)
Definition: connect.c:238
NTSTATUS TdiReceive(PIRP *Irp, PFILE_OBJECT ConnectionObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Definition: tdi.c:976
PVOID GetLockedData(PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: lock.c:13
KIRQL OldIrql
Definition: afd.h:164
#define FD_MAX_EVENTS
Definition: winsock2.h:313
PTDI_CONNECTION_INFORMATION ConnInfo
Definition: afd.h:139
USHORT DisconnectFlags
Definition: afd.h:171
ULONG ReasmSize
Definition: afd.h:61
PTDI_CONNECTION_INFORMATION ConnectReturnInfo
Definition: afd.h:175
NTSTATUS AfdWaitForListen(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: listen.c:293
NTSTATUS NTAPI AfdSetInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:102
UINT FilledConnectData
Definition: afd.h:190
struct _AFD_DATA_WINDOW * PAFD_DATA_WINDOW
NTSTATUS NTAPI AfdPacketSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: write.c:564
PVOID ConnectOptions
Definition: afd.h:195
NTSTATUS NTAPI AfdSetConnectDataSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:197
_In_ PIRP Irp
Definition: csq.h:116
Definition: cdstruc.h:908
NTSTATUS TdiListen(PIRP *Irp, PFILE_OBJECT ConnectionObject, PTDI_CONNECTION_INFORMATION *RequestConnectionInfo, PTDI_CONNECTION_INFORMATION *ReturnConnectionInfo, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Definition: tdi.c:489
LIST_ENTRY ListEntry
Definition: afd.h:137
AFD_IN_FLIGHT_REQUEST SendIrp
Definition: afd.h:177
Definition: afd.h:56
BOOLEAN DelayedAccept
Definition: afd.h:169
char CHAR
Definition: xmlstorage.h:175
BOOLEAN Critical
Definition: afd.h:162
DWORD EventSelectTriggers
Definition: afd.h:181
VOID UnlockBuffers(PAFD_WSABUF Buf, UINT Count, BOOL Address)
Definition: lock.c:289
UINT GroupType
Definition: afd.h:163
AFD_TDI_OBJECT Object
Definition: afd.h:140
USHORT Context
Definition: afd.h:62
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS NTAPI UnlockAndMaybeComplete(PAFD_FCB FCB, NTSTATUS Status, PIRP Irp, UINT Information)
Definition: lock.c:375
VOID ZeroEvents(PAFD_HANDLE HandleArray, UINT HandleCount)
Definition: select.c:44
struct _AFD_ACTIVE_POLL * PAFD_ACTIVE_POLL
NTSTATUS NTAPI AfdGetContext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: context.c:14
LIST_ENTRY ListEntry
Definition: afd.h:127
BOOLEAN NonBlocking
Definition: afd.h:162
#define MAX_FUNCTIONS
Definition: afd.h:91
AFD_IN_FLIGHT_REQUEST ListenIrp
Definition: afd.h:177
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
NTSTATUS NTAPI AfdSetConnectOptionsSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:86
AFD_TDI_OBJECT Connection
Definition: afd.h:176
WCHAR DeviceName[]
Definition: adapter.cpp:21
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
Definition: vmhorizon.c:15
UINT ConnectDataSize
Definition: afd.h:191
NTSTATUS NTAPI AfdStreamSocketConnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:431
NTSTATUS MakeSocketIntoConnection(PAFD_FCB FCB)
Definition: connect.c:259
PTRANSPORT_ADDRESS LocalAddress
Definition: afd.h:174
VOID KillSelectsForFCB(PAFD_DEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject, BOOLEAN ExclusiveOnly)
Definition: select.c:125
NTSTATUS TdiDisassociateAddressFile(PFILE_OBJECT ConnectionObject)
Definition: tdi.c:442
ULONG LockMode
Definition: env_spec_w32.cpp:8
VOID RetryDisconnectCompletion(PAFD_FCB FCB)
Definition: main.c:703
IO_COMPLETION_ROUTINE ReceiveComplete
Definition: afd.h:310
KSPIN_LOCK Lock
Definition: afd.h:113
UCHAR KIRQL
Definition: env_spec_w32.h:591
AFD_IN_FLIGHT_REQUEST DisconnectIrp
Definition: afd.h:177
PVOID LockRequest(PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Output, KPROCESSOR_MODE *LockMode)
Definition: lock.c:24
PTDI_CONNECTION_INFORMATION ConnectCallInfo
Definition: afd.h:175
UINT DisconnectDataSize
Definition: afd.h:194
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
BOOLEAN TdiReceiveClosed
Definition: afd.h:162
DWORD EventSelectDisabled
Definition: afd.h:182
ULONG Mask
Definition: afd.h:59
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
struct _AFD_IN_FLIGHT_REQUEST AFD_IN_FLIGHT_REQUEST
static LPOVERLAPPED_COMPLETION_ROUTINE Function
Definition: sync.c:684
struct _IRP_LIST IRP_LIST
unsigned int BOOL
Definition: ntddk_ex.h:94
_In_ ULONG BufferLength
Definition: usbdlib.h:225
LIST_ENTRY PendingIrpList[MAX_FUNCTIONS]
Definition: afd.h:201
LIST_ENTRY PendingConnections
Definition: afd.h:203
struct _AFD_TDI_OBJECT_QELT AFD_TDI_OBJECT_QELT
UINT State
Definition: afd.h:163
_Unreferenced_parameter_ PVOID * CompletionContext
Definition: cdprocs.h:1130
struct _AFD_IN_FLIGHT_REQUEST * PAFD_IN_FLIGHT_REQUEST
UINT DisconnectOptionsSize
Definition: afd.h:200
struct _AFD_TDI_OBJECT_QELT * PAFD_TDI_OBJECT_QELT
struct _AFD_MAPBUF AFD_MAPBUF
unsigned char BOOLEAN
static WCHAR Address[46]
Definition: ping.c:68
UINT BytesUsed
Definition: afd.h:151
struct _AFD_TDI_OBJECT AFD_TDI_OBJECT
Definition: bufpool.h:45
Definition: afd.h:126
NTSTATUS LostSocket(PIRP Irp)
Definition: lock.c:387
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
KMUTEX Mutex
Definition: afd.h:179
VOID OskitDumpBuffer(PCHAR Buffer, UINT Len)
Definition: main.c:29
BOOLEAN CheckUnlockExtraBuffers(PAFD_FCB FCB, PIO_STACK_LOCATION IrpSp)
Definition: main.c:1092
ULONG BcastAddr
Definition: afd.h:60
Definition: afd.h:161
VOID DestroySocket(PAFD_FCB FCB)
LIST_ENTRY Polls
Definition: afd.h:112
short Short
Definition: ftraster.c:311
struct _AFD_FCB * PAFD_FCB
NTSTATUS TdiOpenAddressFile(PUNICODE_STRING DeviceName, PTRANSPORT_ADDRESS Name, ULONG ShareType, PHANDLE AddressHandle, PFILE_OBJECT *AddressObject)
Definition: tdi.c:170
struct IPADDR_ENTRY * PIPADDR_ENTRY
NTSTATUS TdiSend(PIRP *Irp, PFILE_OBJECT ConnectionObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Definition: tdi.c:898
int * PINT
Definition: windef.h:177
VOID UnlockHandles(PAFD_HANDLE HandleArray, UINT HandleCount)
Definition: lock.c:348
ULONG Index
Definition: afd.h:58
UINT Flags
Definition: afd.h:163
UINT LockCount
Definition: afd.h:165
KDPC TimeoutDpc
Definition: afd.h:120
BOOLEAN SocketAcquireStateLock(PAFD_FCB FCB)
Definition: lock.c:360
struct _IRP_LIST * PIRP_LIST
PIRP InFlightRequest
Definition: afd.h:144
BOOLEAN OobInline
Definition: afd.h:162
unsigned long DWORD
Definition: ntddk_ex.h:95
struct _AFD_MAPBUF * PAFD_MAPBUF
NTSTATUS TdiSendDatagram(PIRP *Irp, PFILE_OBJECT TransportObject, PCHAR Buffer, UINT BufferLength, PTDI_CONNECTION_INFORMATION To, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Definition: tdi.c:1151
#define Len
Definition: deflate.h:82
PMDL Mdl
Definition: afd.h:107
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
* PFILE_OBJECT
Definition: iotypes.h:1955
BOOLEAN SendClosed
Definition: afd.h:162
NTSTATUS QueueUserModeIrp(PAFD_FCB FCB, PIRP Irp, UINT Function)
Definition: lock.c:397
NTSTATUS NTAPI AfdEventSelect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: select.c:265
VOID SocketStateUnlock(PAFD_FCB FCB)
Definition: lock.c:370
AFD_IN_FLIGHT_REQUEST ReceiveIrp
Definition: afd.h:177
NTSTATUS NTAPI AfdSetConnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:157
NTSTATUS AfdListenSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: listen.c:225
PVOID Context
Definition: afd.h:184
NTSTATUS WarmSocketForBind(PAFD_FCB FCB, ULONG ShareType)
Definition: bind.c:13
Definition: ketypes.h:687
UINT FilledConnectOptions
Definition: afd.h:196
Definition: arc.h:85
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
BOOLEAN Overread
Definition: afd.h:162
BOOLEAN DisconnectPending
Definition: afd.h:172
NTSTATUS NTAPI AfdEnumEvents(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: select.c:328
struct _AFD_DEVICE_EXTENSION * PAFD_DEVICE_EXTENSION
Definition: typedefs.h:117
IO_COMPLETION_ROUTINE PacketSocketRecvComplete
Definition: afd.h:312
PTDI_CONNECTION_INFORMATION ConnectionReturnInfo
Definition: afd.h:146
NTSTATUS NTAPI AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Short)
Definition: read.c:422
KTIMER Timer
Definition: afd.h:121
NTSTATUS TdiReceiveDatagram(PIRP *Irp, PFILE_OBJECT TransportObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PTDI_CONNECTION_INFORMATION From, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Definition: tdi.c:1058
Status
Definition: gdiplustypes.h:24
AFD_IN_FLIGHT_REQUEST ConnectIrp
Definition: afd.h:177
LIST_ENTRY ListEntry
Definition: afd.h:155
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
struct _AFD_DEVICE_EXTENSION AFD_DEVICE_EXTENSION
UINT FilledDisconnectData
Definition: afd.h:193
PTRANSPORT_ADDRESS Address
Definition: afd.h:157
UINT Content
Definition: afd.h:151
LARGE_INTEGER DisconnectTimeout
Definition: afd.h:173
PIRP Irp
Definition: afd.h:128
UINT ContextSize
Definition: afd.h:188
PKEVENT EventObject
Definition: afd.h:122
PVOID DisconnectData
Definition: afd.h:192
unsigned short USHORT
Definition: pedump.c:61
NTSTATUS NTAPI AfdConnectedSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Short)
Definition: write.c:329
LIST_ENTRY DatagramList
Definition: afd.h:202
NTSTATUS TdiQueryMaxDatagramLength(PFILE_OBJECT FileObject, PUINT MaxDatagramLength)
Definition: tdi.c:226
VOID UnlockRequest(PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: lock.c:180
_In_ PIO_STACK_LOCATION IrpSp
Definition: create.c:4157
BOOLEAN Locked
Definition: afd.h:162
AFD_DATA_WINDOW Recv
Definition: afd.h:178
PDEVICE_OBJECT DeviceObject
Definition: afd.h:111
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
AFD_TDI_OBJECT AddressFile
Definition: afd.h:176
NTSTATUS NTAPI AfdPacketSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: read.c:703
PKEVENT EventSelect
Definition: afd.h:180
NTSTATUS NTAPI AfdSelect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: select.c:165
NTSTATUS NTAPI AfdGetPeerName(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:281
unsigned int UINT
Definition: ndis.h:50
UINT ConnSeq
Definition: afd.h:170
PVOID ConnectData
Definition: afd.h:189
PVOID BufferAddress
Definition: afd.h:106
PAFD_DEVICE_EXTENSION DeviceExt
Definition: afd.h:119
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE
Definition: iotypes.h:2480
struct _AFD_ACTIVE_POLL AFD_ACTIVE_POLL
PTDI_CONNECTION_INFORMATION AddressFrom
Definition: afd.h:175
NTSTATUS TdiAssociateAddressFile(HANDLE AddressHandle, PFILE_OBJECT ConnectionObject)
Definition: tdi.c:391
PFILE_OBJECT FileObject
Definition: afd.h:167
USHORT Pad
Definition: afd.h:63
PFILE_OBJECT Object
Definition: afd.h:132
PVOID CurrentThread
Definition: afd.h:166
PAFD_HANDLE LockHandles(PAFD_HANDLE HandleArray, UINT HandleCount)
Definition: lock.c:310
ULONG Addr
Definition: afd.h:57
struct _AFD_FCB AFD_FCB
UINT ConnectOptionsSize
Definition: afd.h:197
UNICODE_STRING TdiDeviceName
Definition: afd.h:183
NTSTATUS AfdAccept(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: listen.c:337
struct _AFD_TDI_OBJECT * PAFD_TDI_OBJECT
NTSTATUS NTAPI AfdGetInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:14
_In_ PIRP _In_opt_ PVOID _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine
Definition: fsrtlfuncs.h:673
PTRANSPORT_ADDRESS RemoteAddress
Definition: afd.h:174
unsigned int ULONG
Definition: retypes.h:1
NTSTATUS NTAPI AfdGetContextSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: context.c:40
VOID SignalSocket(PAFD_ACTIVE_POLL Poll OPTIONAL, PIRP _Irp OPTIONAL, PAFD_POLL_INFO PollReq, NTSTATUS Status)
Definition: select.c:56
BOOLEAN Exclusive
Definition: afd.h:123
PAFD_DEVICE_EXTENSION DeviceExt
Definition: afd.h:168
DWORD PollState
Definition: afd.h:185
PCHAR Window
Definition: afd.h:150
PTDI_CONNECTION_INFORMATION ConnectionCallInfo
Definition: afd.h:145
UINT FilledDisconnectOptions
Definition: afd.h:199
NTSTATUS NTAPI AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: bind.c:76
AFD_DATA_WINDOW Send
Definition: afd.h:178
struct _AFD_STORED_DATAGRAM * PAFD_STORED_DATAGRAM
NTSTATUS PollStatus[FD_MAX_EVENTS]
Definition: afd.h:186
struct _AFD_STORED_DATAGRAM AFD_STORED_DATAGRAM
PAFD_WSABUF LockBuffers(PAFD_WSABUF Buf, UINT Count, PVOID AddressBuf, PINT AddressLen, BOOLEAN Write, BOOLEAN LockAddress, KPROCESSOR_MODE LockMode)
Definition: lock.c:205
struct _AFD_DATA_WINDOW AFD_DATA_WINDOW
unsigned int * PUINT
Definition: ndis.h:50
UINT GroupID
Definition: afd.h:163
Iosb Information
Definition: create.c:4377
PIRP Irp
Definition: afd.h:118
struct IPADDR_ENTRY IPADDR_ENTRY
DRIVER_CANCEL AfdCancelHandler
Definition: afd.h:304
PVOID DisconnectOptions
Definition: afd.h:198
NTSTATUS NTAPI AfdGetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:15
LIST_ENTRY ListEntry
Definition: afd.h:117
NTSTATUS LeaveIrpUntilLater(PAFD_FCB FCB, PIRP Irp, UINT Function)
Definition: lock.c:433
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68