Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
2.0 KiB

#ifndef H__netpkt
#define H__netpkt
#include "netbasic.h"
/*
N E T P K T
NETPKT is the data structure sent across the variety of network
interfaces.
*/
typedef struct {
/* checksum of pkthdr. Set and checked in netintf only. */
DWORD np_cksHeader;
/* magic number of this connection ... unused at this time */
DWORD np_magicNum;
/* offset of this packet in a message. PKTZ level only. */
DWORD np_pktOffsInMsg;
/* size of overall message. PKTZ level only */
DWORD np_msgSize;
/* id of last packet received OK. PKTZ level only. Set when ready
to xmt */
PKTID np_lastPktOK;
/* last packet received. PKTZ level only. Set when ready to xmt */
PKTID np_lastPktRcvd;
/* size of packet excluding header. If 0, this indicates control pkt and
np_type should be NPKT_CONTROL. Only set/checked at pktz level */
WORD np_pktSize;
/* status of np_lastPktRcvd, one of:
PS_NO_INFO
PS_OK
PS_DATA_ERR
PS_MEMORY_ERR
PKTZ level only ... set when ready to xmt
*/
BYTE np_lastPktStatus;
/* either VERMETH_CRC16 or VERMETH_CKS32. This represents how the fields
np_cksData and np_cksHeader are calculated. Only played with at
netintf level */
BYTE np_verifyMethod;
/* either NPKT_ROUTER, NPKT_PKTZ or NPKT_CONTROL. Pktz level only */
BYTE np_type;
/* filler for byte-alignment problems */
BYTE np_filler[3];
/* packet ID of this packet. PKTZ level only */
PKTID np_pktID;
/* checksum of data portion of pkt. Only set and/or checked at
netintf level */
DWORD np_cksData;
} NETPKT;
typedef NETPKT FAR *LPNETPKT;
/* packet status */
#define PS_NO_INFO (1)
#define PS_OK (2)
#define PS_DATA_ERR (3)
#define PS_MEMORY_ERR (4)
#define PS_NO_RESPONSE (5)
/* packet type */
#define NPKT_ROUTER (1)
#define NPKT_PKTZ (2)
#define NPKT_CONTROL (3)
#define NPKT_NETIF (4)
#endif