|
|
/*++
Copyright (c) 1998 Microsoft Corporation
Module Name: tcpipx.h
Abstract: Contains definitions for TCP/IP dumping library. Author: Scott Holden (sholden) 4/24/1999 Revision History:
--*/
#include "tdint.h"
#include "tcp.h"
#include "tcpconn.h"
#include "addr.h"
#include "udp.h"
#include "raw.h"
#include "winsock.h"
#include "tcb.h"
#include "tcpsend.h"
#include "tcprcv.h"
#include "tcpdump.h"
#ifndef _TCPIPX_H_
#define _TCPIPX_H_
//
// Verbosity level of dumping. Three levels. Typically MIN and MAX will be
// supported and MED will default to MIN when not supported.
//
typedef enum _VERBOSITY_LEVEL { VERB_MIN = 0, // One-liner.
VERB_MED, VERB_MAX // Full structure dump.
} VERB;
BOOL InitTcpipx();
// Helper dump functions.
BOOL DumpCTEEvent( CTEEvent *pCe );
BOOL DumpCTETimer( CTETimer *pCt );
BOOL DumpCTEBlockStruc( CTEBlockStruc *pCbs );
BOOL DumpWORK_QUEUE_ITEM( WORK_QUEUE_ITEM *pWqi );
BOOL DumpSHARE_ACCESS( SHARE_ACCESS *pSa );
BOOL DumpKEVENT( KEVENT *pKe );
BOOL DumpNDIS_STRING( NDIS_STRING *pNs );
// Real dump functions.
BOOL DumpTCB( TCB *pTcb, ULONG_PTR TcbAddr, VERB verb );
BOOL DumpTWTCB( TWTCB *pTwtcb, ULONG_PTR TwtcbAddr, VERB verb );
BOOL DumpAddrObj( AddrObj *pAo, ULONG_PTR AddrObjAddr, VERB verb );
BOOL DumpNetTableEntry( NetTableEntry *pNte, ULONG_PTR NteAddr, VERB verb );
BOOL DumpTCPRcvReq( TCPRcvReq *pRr, ULONG_PTR RrAddr, VERB verb );
BOOL DumpTCPSendReq( TCPSendReq *pSr, ULONG_PTR SrAddr, VERB verb );
BOOL DumpTCPReq( TCPReq *pReq, ULONG_PTR ReqAddr, VERB verb );
BOOL DumpSendCmpltContext( SendCmpltContext *pScc, ULONG_PTR SccAddr, VERB verb );
BOOL DumpTCPRAHdr( TCPRAHdr *pTrh, ULONG_PTR TrhAddr, VERB verb );
BOOL DumpDGRcvReq( DGRcvReq *pDrr, ULONG_PTR DrrAddr, VERB verb );
BOOL DumpDGSendReq( DGSendReq *pDsr, ULONG_PTR DsrAddr, VERB verb );
BOOL DumpTCPConn( TCPConn *pTc, ULONG_PTR TcAddr, VERB verb );
BOOL DumpTCPConnBlock( TCPConnBlock *pCb, ULONG_PTR CbAddr, VERB verb );
BOOL DumpFILE_OBJECT( FILE_OBJECT *pFo, ULONG_PTR FoAddr, VERB verb ); BOOL DumpIPInfo( IPInfo *pIpi, ULONG_PTR IpiAddr, VERB verb );
BOOL DumpPacketContext( PacketContext *pPc, ULONG_PTR PcAddr, VERB verb );
BOOL DumpARPInterface( ARPInterface *pAi, ULONG_PTR AiAddr, VERB verb );
BOOL DumpRouteCacheEntry( RouteCacheEntry *pRce, ULONG_PTR RceAddr, VERB verb );
BOOL DumpIPHeader( IPHeader *pIph, ULONG_PTR IphAddr, VERB verb );
BOOL DumpARPIPAddr( ARPIPAddr *pAia, ULONG_PTR AiaAddr, VERB verb );
BOOL DumpARPTableEntry( ARPTableEntry *pAte, ULONG_PTR AteAddr, VERB verb );
BOOL DumpRouteTableEntry( RouteTableEntry *pRte, ULONG_PTR RteAddr, VERB verb );
BOOL DumpLinkEntry( LinkEntry *pLink, ULONG_PTR LinkAddr, VERB verb );
BOOL DumpInterface( Interface *pIf, ULONG_PTR IfAddr, VERB verb );
BOOL DumpIPOptInfo( IPOptInfo *pIoi, ULONG_PTR IoiAddr, VERB verb );
BOOL DumpUDPHeader( UDPHeader *pUdp, ULONG_PTR UdpAddr, VERB verb );
BOOL DumpTCPHeader( TCPHeader *pTcp, ULONG_PTR TcpAddr, VERB verb );
BOOL DumpTCP_CONTEXT( TCP_CONTEXT *pTc, ULONG_PTR TcAddr, VERB verb );
BOOL DumpTCP_CONTEXT_typed( TCP_CONTEXT *pTc, ULONG_PTR TcAddr, VERB verb, ULONG FsContext2 );
BOOL DumpMDL( MDL *pMdl, ULONG_PTR MdlAddr, VERB verb );
BOOL DumpICMPHeader( ICMPHeader *pIch, ULONG_PTR IchAddr, VERB verb );
BOOL DumpLLIPBindInfo( LLIPBindInfo *pLip, ULONG_PTR LipAddr, VERB verb );
BOOL DumpARPHeader( ARPHeader *pAh, ULONG_PTR AhAddr, VERB verb );
BOOL DumpNPAGED_LOOKASIDE_LIST( PNPAGED_LOOKASIDE_LIST pPpl, ULONG_PTR PplAddr, VERB verb );
BOOL DumpNDIS_PACKET( PNDIS_PACKET pPacket, ULONG_PTR PacketAddr, VERB Verb );
#endif // _TCPIPX_H_
|