Windows-Server-2003/net/nwlink/ipxroute/driver.h

151 lines
4.3 KiB
C

/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
driver.h
Abstract:
Environment:
kernel & User mode
Notes:
Revision History:
--*/
//
// Define the various device type values. Note that values used by Microsoft
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use
// by customers.
//
#define FILE_DEVICE_IPXROUTER 0x00008000
//
// Macro definition for defining IOCTL and FSCTL function control codes. Note
// that function codes 0-2047 are reserved for Microsoft Corporation, and
// 2048-4095 are reserved for customers.
//
#define IPXROUTER_IOCTL_INDEX (ULONG)0x00000800
//
// Define our own private IOCTLs
//
#define IOCTL_IPXROUTER_SNAPROUTES CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+1,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_GETNEXTROUTE CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+2,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_CHECKNETNUMBER CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+3,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_SHOWNICINFO CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+4,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_ZERONICSTATISTICS CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+5,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_SHOWMEMSTATISTICS CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+6,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_GETWANINNACTIVITY CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+7,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_SETWANGLOBALADDRESS CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+8,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_IPXROUTER_DELETEWANGLOBALADDRESS CTL_CODE(FILE_DEVICE_IPXROUTER, \
IPXROUTER_IOCTL_INDEX+9,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//*** Nic Info Ioctl Data ***
#define SHOW_NIC_LAN 0
#define SHOW_NIC_WAN 1
#define SHOW_NIC_CLOSED 0
#define SHOW_NIC_CLOSING 1
#define SHOW_NIC_ACTIVE 2
#define SHOW_NIC_PENDING_OPEN 3
typedef struct _SHOW_NIC_INFO {
USHORT NicId;
USHORT DeviceType;
USHORT NicState;
UCHAR Network[4];
UCHAR Node[6];
USHORT TickCount;
ULONG StatBadReceived;
ULONG StatRipReceived;
ULONG StatRipSent;
ULONG StatRoutedReceived;
ULONG StatRoutedSent;
ULONG StatType20Received;
ULONG StatType20Sent;
} SHOW_NIC_INFO, *PSHOW_NIC_INFO;
//*** Memory Statistics Data ***
typedef struct _SHOW_MEM_STAT {
ULONG PeakPktAllocCount;
ULONG CurrentPktAllocCount;
ULONG CurrentPktPoolCount;
ULONG PacketSize;
} SHOW_MEM_STAT, *PSHOW_MEM_STAT;
//*** Wan Innactivity Data ***
// For the first call the NicId is set to 0xffff. The router will associate
// the remote node with a valid nic id, which will be used in subsequent calls.
typedef struct _GET_WAN_INNACTIVITY {
USHORT NicId;
UCHAR RemoteNode[6];
ULONG WanInnactivityCount;
} GET_WAN_INNACTIVITY, *PGET_WAN_INNACTIVITY;
//*** Wan Global Address Data ***
#define ERROR_IPXCP_NETWORK_NUMBER_IN_USE 1
#define ERROR_IPXCP_MEMORY_ALLOCATION_FAILURE 2
typedef struct _SET_WAN_GLOBAL_ADDRESS {
UCHAR WanGlobalNetwork[4];
ULONG ErrorCode;
} SET_WAN_GLOBAL_ADDRESS, *PSET_WAN_GLOBAL_ADDRESS;