|
|
/*++
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;
|