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