ReactOS 0.4.15-dev-7934-g1dc8d80
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
56typedef 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))
105typedef struct _AFD_MAPBUF {
107 PMDL Mdl;
110typedef struct _AFD_DEVICE_EXTENSION {
116typedef struct _AFD_ACTIVE_POLL {
126typedef struct _IRP_LIST {
128 PIRP Irp;
131typedef struct _AFD_TDI_OBJECT {
136typedef struct _AFD_TDI_OBJECT_QELT {
149typedef struct _AFD_DATA_WINDOW {
154typedef struct _AFD_STORED_DATAGRAM {
158 CHAR Buffer[1];
161typedef 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,
292PAFD_HANDLE LockHandles( PAFD_HANDLE HandleArray, UINT HandleCount );
293VOID UnlockHandles( PAFD_HANDLE HandleArray, UINT HandleCount );
299
300/* main.c */
304DRIVER_CANCEL AfdCancelHandler;
307
308/* read.c */
309
310IO_COMPLETION_ROUTINE ReceiveComplete;
311
312IO_COMPLETION_ROUTINE PacketSocketRecvComplete;
313
319
320/* select.c */
321
333 PFILE_OBJECT FileObject, BOOLEAN ExclusiveOnly );
334VOID ZeroEvents( PAFD_HANDLE HandleArray,
335 UINT HandleCount );
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,
372
374( PIRP *Irp,
375 PFILE_OBJECT ConnectionObject,
381
383 PIRP *Irp,
384 PFILE_OBJECT TransportObject,
391
393 PIRP *Irp,
394 PFILE_OBJECT TransportObject,
400
403 PUINT MaxDatagramLength);
404
405/* write.c */
406
413
414#endif /* _AFD_H */
unsigned char BOOLEAN
PVOID LockRequest(PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Output, KPROCESSOR_MODE *LockMode)
Definition: lock.c:24
VOID RetryDisconnectCompletion(PAFD_FCB FCB)
Definition: main.c:703
struct IPADDR_ENTRY * PIPADDR_ENTRY
NTSTATUS MakeSocketIntoConnection(PAFD_FCB FCB)
Definition: connect.c:259
struct _IRP_LIST IRP_LIST
NTSTATUS NTAPI AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Short)
Definition: read.c:415
struct _AFD_TDI_OBJECT AFD_TDI_OBJECT
VOID OskitDumpBuffer(PCHAR Buffer, UINT Len)
Definition: main.c:29
NTSTATUS NTAPI AfdEnumEvents(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: select.c:328
struct _AFD_MAPBUF * PAFD_MAPBUF
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
NTSTATUS NTAPI AfdSetConnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:157
IO_COMPLETION_ROUTINE ReceiveComplete
Definition: afd.h:308
VOID UnlockBuffers(PAFD_WSABUF Buf, UINT Count, BOOL Address)
Definition: lock.c:289
NTSTATUS TdiAssociateAddressFile(HANDLE AddressHandle, PFILE_OBJECT ConnectionObject)
Definition: tdi.c:391
VOID UnlockHandles(PAFD_HANDLE HandleArray, UINT HandleCount)
Definition: lock.c:348
struct _AFD_IN_FLIGHT_REQUEST * PAFD_IN_FLIGHT_REQUEST
NTSTATUS NTAPI AfdSetContext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: context.c:64
NTSTATUS NTAPI AfdSelect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: select.c:165
struct _AFD_ACTIVE_POLL * PAFD_ACTIVE_POLL
NTSTATUS NTAPI AfdConnectedSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Short)
Definition: write.c:329
NTSTATUS NTAPI AfdSetInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:102
BOOLEAN CheckUnlockExtraBuffers(PAFD_FCB FCB, PIO_STACK_LOCATION IrpSp)
Definition: main.c:1089
struct _AFD_FCB * PAFD_FCB
NTSTATUS AfdAccept(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: listen.c:337
VOID UnlockRequest(PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: lock.c:180
NTSTATUS TdiQueryMaxDatagramLength(PFILE_OBJECT FileObject, PUINT MaxDatagramLength)
Definition: tdi.c:226
NTSTATUS QueueUserModeIrp(PAFD_FCB FCB, PIRP Irp, UINT Function)
Definition: lock.c:397
VOID DestroySocket(PAFD_FCB FCB)
NTSTATUS TdiDisassociateAddressFile(PFILE_OBJECT ConnectionObject)
Definition: tdi.c:442
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
NTSTATUS WarmSocketForBind(PAFD_FCB FCB, ULONG ShareType)
Definition: bind.c:13
NTSTATUS NTAPI AfdSetConnectDataSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:197
struct _IRP_LIST * PIRP_LIST
NTSTATUS NTAPI AfdStreamSocketConnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:431
NTSTATUS NTAPI AfdPacketSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: read.c:696
NTSTATUS AfdListenSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: listen.c:225
struct _AFD_TDI_OBJECT * PAFD_TDI_OBJECT
NTSTATUS NTAPI AfdGetSockName(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:232
NTSTATUS TdiReceive(PIRP *Irp, PFILE_OBJECT ConnectionObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Definition: tdi.c:976
DRIVER_CANCEL AfdCancelHandler
Definition: afd.h:302
NTSTATUS LostSocket(PIRP Irp)
Definition: lock.c:387
NTSTATUS NTAPI AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: bind.c:76
NTSTATUS NTAPI AfdEventSelect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: select.c:265
VOID ZeroEvents(PAFD_HANDLE HandleArray, UINT HandleCount)
Definition: select.c:44
NTSTATUS NTAPI UnlockAndMaybeComplete(PAFD_FCB FCB, NTSTATUS Status, PIRP Irp, UINT Information)
Definition: lock.c:375
NTSTATUS NTAPI AfdGetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:15
NTSTATUS NTAPI AfdGetConnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:127
struct IPADDR_ENTRY IPADDR_ENTRY
IO_COMPLETION_ROUTINE PacketSocketRecvComplete
Definition: afd.h:310
struct _AFD_TDI_OBJECT_QELT AFD_TDI_OBJECT_QELT
struct _AFD_DATA_WINDOW * PAFD_DATA_WINDOW
struct _AFD_IN_FLIGHT_REQUEST AFD_IN_FLIGHT_REQUEST
VOID KillSelectsForFCB(PAFD_DEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject, BOOLEAN ExclusiveOnly)
Definition: select.c:125
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_DEVICE_EXTENSION AFD_DEVICE_EXTENSION
VOID SocketStateUnlock(PAFD_FCB FCB)
Definition: lock.c:370
NTSTATUS NTAPI AfdPacketSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: write.c:564
VOID SignalSocket(PAFD_ACTIVE_POLL Poll OPTIONAL, PIRP _Irp OPTIONAL, PAFD_POLL_INFO PollReq, NTSTATUS Status)
Definition: select.c:56
NTSTATUS LeaveIrpUntilLater(PAFD_FCB FCB, PIRP Irp, UINT Function)
Definition: lock.c:433
BOOLEAN SocketAcquireStateLock(PAFD_FCB FCB)
Definition: lock.c:360
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
PVOID GetLockedData(PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: lock.c:13
VOID PollReeval(PAFD_DEVICE_EXTENSION DeviceObject, PFILE_OBJECT FileObject)
Definition: select.c:407
NTSTATUS NTAPI AfdSetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:45
NTSTATUS NTAPI AfdGetInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:14
#define MAX_FUNCTIONS
Definition: afd.h:91
struct _AFD_STORED_DATAGRAM * PAFD_STORED_DATAGRAM
struct _AFD_DEVICE_EXTENSION * PAFD_DEVICE_EXTENSION
NTSTATUS TdiOpenAddressFile(PUNICODE_STRING DeviceName, PTRANSPORT_ADDRESS Name, ULONG ShareType, PHANDLE AddressHandle, PFILE_OBJECT *AddressObject)
Definition: tdi.c:170
NTSTATUS NTAPI AfdGetContextSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: context.c:40
NTSTATUS NTAPI AfdGetContext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: context.c:14
struct _AFD_STORED_DATAGRAM AFD_STORED_DATAGRAM
struct _AFD_ACTIVE_POLL AFD_ACTIVE_POLL
struct _AFD_TDI_OBJECT_QELT * PAFD_TDI_OBJECT_QELT
NTSTATUS TdiSend(PIRP *Irp, PFILE_OBJECT ConnectionObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Definition: tdi.c:898
struct _AFD_DATA_WINDOW AFD_DATA_WINDOW
struct _AFD_MAPBUF AFD_MAPBUF
struct _AFD_FCB AFD_FCB
NTSTATUS WarmSocketForConnection(PAFD_FCB FCB)
Definition: connect.c:238
PAFD_HANDLE LockHandles(PAFD_HANDLE HandleArray, UINT HandleCount)
Definition: lock.c:310
NTSTATUS AfdWaitForListen(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: listen.c:293
NTSTATUS NTAPI AfdGetPeerName(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: info.c:281
NTSTATUS NTAPI AfdSetConnectOptionsSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
Definition: connect.c:86
LONG NTSTATUS
Definition: precomp.h:26
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1156
Definition: bufpool.h:45
_In_ PIRP Irp
Definition: csq.h:116
#define Len
Definition: deflate.h:82
_In_ PIO_STACK_LOCATION IrpSp
Definition: create.c:4137
ULONG LockMode
Definition: env_spec_w32.cpp:8
UCHAR KIRQL
Definition: env_spec_w32.h:591
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
short Short
Definition: ftraster.c:311
Status
Definition: gdiplustypes.h:25
unsigned int * PUINT
Definition: ndis.h:50
unsigned int UINT
Definition: ndis.h:50
int Count
Definition: noreturn.cpp:7
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
unsigned short USHORT
Definition: pedump.c:61
static WCHAR Address[46]
Definition: ping.c:68
@ Output
Definition: arc.h:85
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: afd.h:56
ULONG BcastAddr
Definition: afd.h:60
ULONG Mask
Definition: afd.h:59
USHORT Context
Definition: afd.h:62
ULONG ReasmSize
Definition: afd.h:61
USHORT Pad
Definition: afd.h:63
ULONG Addr
Definition: afd.h:57
ULONG Index
Definition: afd.h:58
PIRP Irp
Definition: afd.h:116
KDPC TimeoutDpc
Definition: afd.h:118
PKEVENT EventObject
Definition: afd.h:120
LIST_ENTRY ListEntry
Definition: afd.h:115
KTIMER Timer
Definition: afd.h:119
PAFD_DEVICE_EXTENSION DeviceExt
Definition: afd.h:117
BOOLEAN Exclusive
Definition: afd.h:121
UINT Size
Definition: afd.h:149
PCHAR Window
Definition: afd.h:148
UINT Content
Definition: afd.h:149
UINT BytesUsed
Definition: afd.h:149
PDEVICE_OBJECT DeviceObject
Definition: afd.h:109
LIST_ENTRY Polls
Definition: afd.h:110
KSPIN_LOCK Lock
Definition: afd.h:111
Definition: afd.h:159
DWORD EventSelectDisabled
Definition: afd.h:180
UINT LockCount
Definition: afd.h:163
AFD_IN_FLIGHT_REQUEST ReceiveIrp
Definition: afd.h:175
AFD_IN_FLIGHT_REQUEST ConnectIrp
Definition: afd.h:175
UINT ConnSeq
Definition: afd.h:168
UINT FilledDisconnectData
Definition: afd.h:191
UINT ContextSize
Definition: afd.h:186
UINT GroupType
Definition: afd.h:161
LARGE_INTEGER DisconnectTimeout
Definition: afd.h:171
PVOID Context
Definition: afd.h:182
UINT FilledConnectData
Definition: afd.h:188
LIST_ENTRY DatagramList
Definition: afd.h:200
AFD_IN_FLIGHT_REQUEST ListenIrp
Definition: afd.h:175
AFD_IN_FLIGHT_REQUEST DisconnectIrp
Definition: afd.h:175
AFD_IN_FLIGHT_REQUEST SendIrp
Definition: afd.h:175
UINT DisconnectOptionsSize
Definition: afd.h:198
UINT FilledConnectOptions
Definition: afd.h:194
PTRANSPORT_ADDRESS RemoteAddress
Definition: afd.h:172
BOOLEAN DelayedAccept
Definition: afd.h:167
BOOLEAN DisconnectPending
Definition: afd.h:170
PVOID CurrentThread
Definition: afd.h:164
PVOID ConnectOptions
Definition: afd.h:193
LIST_ENTRY PendingIrpList[MAX_FUNCTIONS]
Definition: afd.h:199
KIRQL OldIrql
Definition: afd.h:162
BOOLEAN TdiReceiveClosed
Definition: afd.h:160
NTSTATUS PollStatus[FD_MAX_EVENTS]
Definition: afd.h:184
PAFD_DEVICE_EXTENSION DeviceExt
Definition: afd.h:166
UNICODE_STRING TdiDeviceName
Definition: afd.h:181
UINT GroupID
Definition: afd.h:161
PVOID DisconnectData
Definition: afd.h:190
AFD_TDI_OBJECT AddressFile
Definition: afd.h:174
UINT DisconnectDataSize
Definition: afd.h:192
NTSTATUS LastReceiveStatus
Definition: afd.h:185
DWORD PollState
Definition: afd.h:183
AFD_TDI_OBJECT Connection
Definition: afd.h:174
PVOID DisconnectOptions
Definition: afd.h:196
UINT State
Definition: afd.h:161
AFD_DATA_WINDOW Send
Definition: afd.h:176
USHORT DisconnectFlags
Definition: afd.h:169
BOOLEAN Critical
Definition: afd.h:160
UINT ConnectOptionsSize
Definition: afd.h:195
DWORD EventSelectTriggers
Definition: afd.h:179
PTDI_CONNECTION_INFORMATION ConnectCallInfo
Definition: afd.h:173
BOOLEAN OobInline
Definition: afd.h:160
UINT FilledDisconnectOptions
Definition: afd.h:197
PVOID ConnectData
Definition: afd.h:187
PFILE_OBJECT FileObject
Definition: afd.h:165
AFD_DATA_WINDOW Recv
Definition: afd.h:176
PTDI_CONNECTION_INFORMATION AddressFrom
Definition: afd.h:173
PTRANSPORT_ADDRESS LocalAddress
Definition: afd.h:172
PKEVENT EventSelect
Definition: afd.h:178
LIST_ENTRY PendingConnections
Definition: afd.h:201
BOOLEAN Locked
Definition: afd.h:160
UINT ConnectDataSize
Definition: afd.h:189
KMUTEX Mutex
Definition: afd.h:177
BOOLEAN SendClosed
Definition: afd.h:160
BOOLEAN NonBlocking
Definition: afd.h:160
UINT Flags
Definition: afd.h:161
PTDI_CONNECTION_INFORMATION ConnectReturnInfo
Definition: afd.h:173
PTDI_CONNECTION_INFORMATION ConnectionReturnInfo
Definition: afd.h:144
PTDI_CONNECTION_INFORMATION ConnectionCallInfo
Definition: afd.h:143
PIRP InFlightRequest
Definition: afd.h:142
PMDL Mdl
Definition: afd.h:105
PVOID BufferAddress
Definition: afd.h:104
PTRANSPORT_ADDRESS Address
Definition: afd.h:155
LIST_ENTRY ListEntry
Definition: afd.h:153
AFD_TDI_OBJECT Object
Definition: afd.h:138
PTDI_CONNECTION_INFORMATION ConnInfo
Definition: afd.h:137
LIST_ENTRY ListEntry
Definition: afd.h:135
HANDLE Handle
Definition: afd.h:131
PFILE_OBJECT Object
Definition: afd.h:130
Definition: cdstruc.h:902
Definition: afd.h:124
PIRP Irp
Definition: afd.h:126
LIST_ENTRY ListEntry
Definition: afd.h:125
Definition: ketypes.h:699
Definition: typedefs.h:120
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
Definition: vmhorizon.c:15
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
Definition: wdfdevice.h:3275
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
Definition: wdfrequest.h:898
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:895
int * PINT
Definition: windef.h:177
#define FD_MAX_EVENTS
Definition: winsock2.h:313
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE
Definition: iotypes.h:2835
* PFILE_OBJECT
Definition: iotypes.h:1998
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
char CHAR
Definition: xmlstorage.h:175