windows-nt/Source/XPSP1/NT/net/inc/laneinfo.h
2020-09-26 16:20:57 +08:00

167 lines
3.5 KiB
C

/*++
Copyright (c) 1997 FORE Systems, Inc.
Copyright (c) 1997 Microsoft Corporation
Module Name:
laneinfo.h
Abstract:
Data structures of state data for the ATM LAN Emulation Driver
that can be queried by a user pgm.
Author:
Larry Cleeton, FORE Systems (v-lcleet@microsoft.com, lrc@fore.com)
Environment:
Kernel mode
Revision History:
--*/
#ifndef __ATMLANE_LANEINFO_H
#define __ATMLANE_LANEINFO_H
#define ATMLANE_INFO_VERSION 1
#define ATMLANE_IOCTL_GET_INFO_VERSION \
CTL_CODE(FILE_DEVICE_NETWORK, 0x100, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define ATMLANE_IOCTL_ENUM_ADAPTERS \
CTL_CODE(FILE_DEVICE_NETWORK, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define ATMLANE_IOCTL_ENUM_ELANS \
CTL_CODE(FILE_DEVICE_NETWORK, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define ATMLANE_IOCTL_GET_ELAN_INFO \
CTL_CODE(FILE_DEVICE_NETWORK, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define ATMLANE_IOCTL_GET_ELAN_ARP_TABLE \
CTL_CODE(FILE_DEVICE_NETWORK, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define ATMLANE_IOCTL_GET_ELAN_CONNECT_TABLE \
CTL_CODE(FILE_DEVICE_NETWORK, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _adapterlist
{
ULONG AdapterCountAvailable;
ULONG AdapterCountReturned;
UNICODE_STRING AdapterList;
}
ATMLANE_ADAPTER_LIST,
*PATMLANE_ADAPTER_LIST;
typedef struct _elanlist
{
ULONG ElanCountAvailable;
ULONG ElanCountReturned;
UNICODE_STRING ElanList;
}
ATMLANE_ELAN_LIST,
*PATMLANE_ELAN_LIST;
typedef struct _elaninfo
{
ULONG ElanNumber;
ULONG ElanState;
PUCHAR AtmAddress[20];
PUCHAR LecsAddress[20];
PUCHAR LesAddress[20];
PUCHAR BusAddress[20];
UCHAR LanType;
UCHAR MaxFrameSizeCode;
USHORT LecId;
UCHAR ElanName[32];
PUCHAR MacAddress[6];
ULONG ControlTimeout;
ULONG MaxUnkFrameCount;
ULONG MaxUnkFrameTime;
ULONG VccTimeout;
ULONG MaxRetryCount;
ULONG AgingTime;
ULONG ForwardDelayTime;
ULONG TopologyChange;
ULONG ArpResponseTime;
ULONG FlushTimeout;
ULONG PathSwitchingDelay;
ULONG LocalSegmentId;
ULONG McastSendVcType;
ULONG McastSendVcAvgRate;
ULONG McastSendVcPeakRate;
ULONG ConnComplTimer;
}
ATMLANE_ELANINFO,
*PATMLANE_ELANINFO;
typedef struct _ArpEntry
{
PUCHAR MacAddress[6];
PUCHAR AtmAddress[20];
}
ATMLANE_ARPENTRY,
*PATMLANE_ARPENTRY;
typedef struct _ArpTable
{
ULONG ArpEntriesAvailable;
ULONG ArpEntriesReturned;
}
ATMLANE_ARPTABLE,
*PATMLANE_ARPTABLE;
typedef struct _ConnectEntry
{
PUCHAR AtmAddress[20];
ULONG Type;
ULONG Vc;
ULONG VcIncoming;
}
ATMLANE_CONNECTENTRY,
*PATMLANE_CONNECTENTRY;
typedef struct _ConnectTable
{
ULONG ConnectEntriesAvailable;
ULONG ConnectEntriesReturned;
}
ATMLANE_CONNECTTABLE,
*PATMLANE_CONNECTTABLE;
//
// PnP reconfig struct. This is used to pass indications of
// configuration changes from a user program to the ATMLANE
// protocol. This indication is passed on an Adapter binding,
// and carries the name of the ELAN affected by the configuration
// change.
//
typedef struct atmlane_pnp_reconfig_request
{
ULONG Version; // ATMLANE_RECONFIG_VERSION
ULONG OpType; // Defined below.
ULONG ElanKeyLength; // Number of WCHARs following.
WCHAR ElanKey[1]; // ELAN Key name under the adapter
} ATMLANE_PNP_RECONFIG_REQUEST, *PATMLANE_PNP_RECONFIG_REQUEST;
//
// Reconfig version number.
//
#define ATMLANE_RECONFIG_VERSION 1
//
// Reconfig op types.
//
#define ATMLANE_RECONFIG_OP_ADD_ELAN 1
#define ATMLANE_RECONFIG_OP_DEL_ELAN 2
#define ATMLANE_RECONFIG_OP_MOD_ELAN 3
#endif // __ATMLANE_LANEINFO_H