[AFD] Introduce and use pool tags. Thanks go to Arty for assisting me with this....
[reactos.git] / drivers / network / afd / include / afd.h
index d77fbf2..21aaac5 100644 (file)
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
  * COPYRIGHT:        See COPYING in the top level directory
  * PROJECT:          ReactOS kernel
  * FILE:             drivers/net/afd/include/afd.h
 #ifndef _AFD_H
 #define _AFD_H
 
-#include <ntddk.h>
 #include <ntifs.h>
 #include <ndk/obtypes.h>
-#include <ndk/obfuncs.h>
-#include <ndk/mmtypes.h>
-#include <ndk/mmfuncs.h>
 #include <tdi.h>
-#include <tdikrnl.h>
-#include <tdiinfo.h>
-#include <string.h>
+#include <tcpioctl.h>
 #define _WINBASE_
 #define _WINDOWS_H
 #define _INC_WINDOWS
 #define MIN(x,y) (((x)<(y))?(x):(y))
 #endif
 
-#define IOCTL_TCP_QUERY_INFORMATION_EX \
-       CTL_CODE(FILE_DEVICE_NETWORK, 0, METHOD_NEITHER, FILE_ANY_ACCESS)
-
 #define TL_INSTANCE 0
 #define        IP_MIB_STATS_ID 1
 #define        IP_MIB_ADDRTABLE_ENTRY_ID 0x102
 
-typedef struct IPSNMP_INFO {
-       ULONG Forwarding;
-       ULONG DefaultTTL;
-       ULONG InReceives;
-       ULONG InHdrErrors;
-       ULONG InAddrErrors;
-       ULONG ForwDatagrams;
-       ULONG InUnknownProtos;
-       ULONG InDiscards;
-       ULONG InDelivers;
-       ULONG OutRequests;
-       ULONG RoutingDiscards;
-       ULONG OutDiscards;
-       ULONG OutNoRoutes;
-       ULONG ReasmTimeout;
-       ULONG ReasmReqds;
-       ULONG ReasmOks;
-       ULONG ReasmFails;
-       ULONG FragOks;
-       ULONG FragFails;
-       ULONG FragCreates;
-       ULONG NumIf;
-       ULONG NumAddr;
-       ULONG NumRoutes;
-} IPSNMP_INFO, *PIPSNMP_INFO;
+#define TAG_AFD_DATA_BUFFER                'BdfA'
+#define TAG_AFD_TRANSPORT_ADDRESS          'tdfA'
+#define TAG_AFD_SOCKET_CONTEXT             'XdfA'
+#define TAG_AFD_CONNECT_DATA               'cdfA'
+#define TAG_AFD_DISCONNECT_DATA            'ddfA'
+
+#define TAG_AFD_CONNECT_OPTIONS            'ocfA'
+#define TAG_AFD_DISCONNECT_OPTIONS         'odfA'
+#define TAG_AFD_ACCEPT_QUEUE               'qafA'
+#define TAG_AFD_POLL_HANDLE                'hpfA'
+#define TAG_AFD_FCB                        'cffA'
+#define TAG_AFD_ACTIVE_POLL                'pafA'
+#define TAG_AFD_EA_INFO                    'aefA'
+#define TAG_AFD_STORED_DATAGRAM            'gsfA'
+#define TAG_AFD_SNMP_ADDRESS_INFO          'asfA'
+#define TAG_AFD_TDI_CONNECTION_INFORMATION 'cTfA'
+#define TAG_AFD_WSA_BUFFER                 'bWfA'
 
 typedef struct IPADDR_ENTRY {
        ULONG  Addr;
@@ -160,7 +142,6 @@ typedef struct _AFD_TDI_OBJECT_QELT {
 
 typedef struct _AFD_IN_FLIGHT_REQUEST {
     PIRP InFlightRequest;
-    IO_STATUS_BLOCK Iosb;
     PTDI_CONNECTION_INFORMATION ConnectionCallInfo;
     PTDI_CONNECTION_INFORMATION ConnectionReturnInfo;
 } AFD_IN_FLIGHT_REQUEST, *PAFD_IN_FLIGHT_REQUEST;
@@ -203,6 +184,7 @@ typedef struct _AFD_FCB {
     PVOID Context;
     DWORD PollState;
     NTSTATUS PollStatus[FD_MAX_EVENTS];
+    NTSTATUS LastReceiveStatus;
     UINT ContextSize;
     PVOID ConnectData;
     UINT FilledConnectData;
@@ -319,26 +301,18 @@ NTSTATUS QueueUserModeIrp(PAFD_FCB FCB, PIRP Irp, UINT Function);
 
 VOID OskitDumpBuffer( PCHAR Buffer, UINT Len );
 VOID DestroySocket( PAFD_FCB FCB );
-VOID NTAPI AfdCancelHandler(PDEVICE_OBJECT DeviceObject,
-                 PIRP Irp);
+DRIVER_CANCEL AfdCancelHandler;
 VOID RetryDisconnectCompletion(PAFD_FCB FCB);
 BOOLEAN CheckUnlockExtraBuffers(PAFD_FCB FCB, PIO_STACK_LOCATION IrpSp);
 
 /* read.c */
 
-NTSTATUS NTAPI ReceiveComplete
-( PDEVICE_OBJECT DeviceObject,
-  PIRP Irp,
-  PVOID Context );
+IO_COMPLETION_ROUTINE ReceiveComplete;
 
-NTSTATUS NTAPI PacketSocketRecvComplete
-( PDEVICE_OBJECT DeviceObject,
-  PIRP Irp,
-  PVOID Context );
+IO_COMPLETION_ROUTINE PacketSocketRecvComplete;
 
 NTSTATUS NTAPI
-AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp,
-                          PIO_STACK_LOCATION IrpSp, BOOLEAN Short);
+AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Short);
 NTSTATUS NTAPI
 AfdPacketSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp,
                        PIO_STACK_LOCATION IrpSp );
@@ -384,7 +358,6 @@ NTSTATUS TdiListen
   PFILE_OBJECT ConnectionObject,
   PTDI_CONNECTION_INFORMATION *RequestConnectionInfo,
   PTDI_CONNECTION_INFORMATION *ReturnConnectionInfo,
-  PIO_STATUS_BLOCK Iosb,
   PIO_COMPLETION_ROUTINE  CompletionRoutine,
   PVOID CompletionContext);
 
@@ -394,7 +367,6 @@ NTSTATUS TdiReceive
   USHORT Flags,
   PCHAR Buffer,
   UINT BufferLength,
-  PIO_STATUS_BLOCK Iosb,
   PIO_COMPLETION_ROUTINE  CompletionRoutine,
   PVOID CompletionContext);
 
@@ -404,7 +376,6 @@ NTSTATUS TdiSend
   USHORT Flags,
   PCHAR Buffer,
   UINT BufferLength,
-  PIO_STATUS_BLOCK Iosb,
   PIO_COMPLETION_ROUTINE  CompletionRoutine,
   PVOID CompletionContext);
 
@@ -415,7 +386,6 @@ NTSTATUS TdiReceiveDatagram(
     PCHAR Buffer,
     UINT BufferLength,
     PTDI_CONNECTION_INFORMATION From,
-    PIO_STATUS_BLOCK Iosb,
     PIO_COMPLETION_ROUTINE CompletionRoutine,
     PVOID CompletionContext);
 
@@ -425,7 +395,6 @@ NTSTATUS TdiSendDatagram(
     PCHAR Buffer,
     UINT BufferLength,
     PTDI_CONNECTION_INFORMATION To,
-    PIO_STATUS_BLOCK Iosb,
     PIO_COMPLETION_ROUTINE CompletionRoutine,
     PVOID CompletionContext);
 
@@ -442,4 +411,4 @@ NTSTATUS NTAPI
 AfdPacketSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp,
                         PIO_STACK_LOCATION IrpSp);
 
-#endif/*_AFD_H*/
+#endif /* _AFD_H */