* include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h, d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, mcd.h, miniport.h, mountdev.h, mountmgr.h, ndis.h, ndistapi.h, ndiswan.h, netpnp.h, newdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h, ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddkbd.h, ntddmou.h, ntddpar.h, ntddpcm.h, ntddscsi.h, ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h, ntddvol.h, ntpoapi.h, parallel.h, pfhook.h, poclass.h, scsi.h, scsiscan.h, smbus.h, srb.h, storport.h, tdiinfo.h, tdikrnl.h, tvout.h, upssvc.h, usb.h, usb100.h, usbdi.h, usbioctl.h, usbiodef.h, usbscan.h, usbuser.h, videoagp.h, winddi.h, winddk.h, winnt4.h, ws2san.h): Fixed packing. * include/ddk/atm.h (ATM_TRAFFIC_DESCRIPTOR_IE): Fixed declaration. * include/ddk/hidclass.h (HID_INTERFACE_HIDPARSE, HID_INTERFACE_NOTIFY_PNP): Likewise. * include/ddk/ndis.h (NDIS_DMA_BLOCK, CO_FLOW_PARAMETERS): Likewise. (NdisQueryPacketLength): Added macro. Thanks to Art Yerkes <ayerkes@speakeasy.net>. * include/ddk/usb100.h (USB_CONFIGURATION_DESCRIPTOR): Fixed declaration. * include/ddk/winddi.h (PATHDATA, GLYPHPOS): Likewise. * include/ddk/winddk.h (PDRIVER_CONTROL, PDRIVER_LIST_CONTROL, PDRIVER_ADD_DEVICE, PIO_COMPLETION_ROUTINE, PDRIVER_CANCEL, PKDEFERRED_ROUTINE, PDRIVER_DISPATCH, PIO_DPC_ROUTINE, PMM_DLL_INITIALIZE, PMM_DLL_UNLOAD, PDRIVER_ENTRY, PDRIVER_INITIALIZE, PKSERVICE_ROUTINE, PIO_TIMER_ROUTINE, PDRIVER_REINITIALIZE, PDRIVER_STARTIO, PKSYNCHRONIZE_ROUTINE, PDRIVER_UNLOAD, DRIVER_OBJECT): Fixed callback declarations. (struct FILE_BASIC_INFORMATION): Renamed to _FILE_BASIC_INFORMATION. (SYNCH_LEVEL): Added definition. (KPCR, KPCR_TIB): Fixed declaration. (Interlocked[Push/Pop]EntrySList): Declare only if winbase.h isn't included and _WIN32_WINNT >= 0x0501. (RtlEqualLuid): Fixed macro definition. (KfLowerIrql, KfRaiseIrql): Declare and use instead of KeLowerIrql and KeRaiseIrql on i386 architectures.
		
			
				
	
	
		
			508 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			508 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * atm.h
 | 
						|
 *
 | 
						|
 * ATM support
 | 
						|
 *
 | 
						|
 * This file is part of the w32api package.
 | 
						|
 *
 | 
						|
 * Contributors:
 | 
						|
 *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
 | 
						|
 *
 | 
						|
 * THIS SOFTWARE IS NOT COPYRIGHTED
 | 
						|
 *
 | 
						|
 * This source code is offered for use in the public domain. You may
 | 
						|
 * use, modify or distribute it freely.
 | 
						|
 *
 | 
						|
 * This code is distributed in the hope that it will be useful but
 | 
						|
 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 | 
						|
 * DISCLAIMED. This includes but is not limited to warranties of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __ATM_H
 | 
						|
#define __ATM_H
 | 
						|
 | 
						|
#if __GNUC__ >=3
 | 
						|
#pragma GCC system_header
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
typedef ULONG	ATM_ADDRESSTYPE;
 | 
						|
 | 
						|
#define SAP_TYPE_NSAP			                1
 | 
						|
#define SAP_TYPE_E164			                2
 | 
						|
 | 
						|
#define ATM_MEDIA_SPECIFIC                1
 | 
						|
 | 
						|
#define CALLMGR_SPECIFIC_Q2931            1
 | 
						|
 | 
						|
#define	ATM_NSAP				                  0
 | 
						|
#define	ATM_E164				                  1
 | 
						|
 | 
						|
#define	ATM_MAC_ADDRESS_LENGTH	          6
 | 
						|
#define	ATM_ADDRESS_LENGTH		            20
 | 
						|
 | 
						|
typedef ULONG	ATM_AAL_TYPE, *PATM_AAL_TYPE;
 | 
						|
 | 
						|
#define	AAL_TYPE_AAL0			                1
 | 
						|
#define	AAL_TYPE_AAL1			                2
 | 
						|
#define	AAL_TYPE_AAL34			              4
 | 
						|
#define	AAL_TYPE_AAL5			                8
 | 
						|
 | 
						|
#define ATM_ADDR_BLANK_CHAR				        L' '
 | 
						|
#define ATM_ADDR_E164_START_CHAR		      L'+'
 | 
						|
#define ATM_ADDR_PUNCTUATION_CHAR		      L'.'
 | 
						|
 | 
						|
typedef enum {
 | 
						|
	IE_AALParameters,
 | 
						|
	IE_TrafficDescriptor,
 | 
						|
	IE_BroadbandBearerCapability,
 | 
						|
	IE_BHLI,
 | 
						|
	IE_BLLI,
 | 
						|
	IE_CalledPartyNumber,
 | 
						|
	IE_CalledPartySubaddress,
 | 
						|
	IE_CallingPartyNumber,
 | 
						|
	IE_CallingPartySubaddress,
 | 
						|
	IE_Cause,
 | 
						|
	IE_QOSClass,
 | 
						|
	IE_TransitNetworkSelection,
 | 
						|
	IE_BroadbandSendingComplete,
 | 
						|
	IE_LIJCallId,
 | 
						|
	IE_Raw
 | 
						|
} Q2931_IE_TYPE;
 | 
						|
 | 
						|
typedef struct _Q2931_IE {
 | 
						|
  Q2931_IE_TYPE  IEType;
 | 
						|
  ULONG  IELength;
 | 
						|
  UCHAR  IE[1];
 | 
						|
} Q2931_IE, *PQ2931_IE;
 | 
						|
 | 
						|
typedef struct _AAL1_PARAMETERS {
 | 
						|
  UCHAR  Subtype;
 | 
						|
  UCHAR  CBRRate;
 | 
						|
  USHORT  Multiplier;
 | 
						|
  UCHAR  SourceClockRecoveryMethod;
 | 
						|
  UCHAR  ErrorCorrectionMethod;
 | 
						|
  USHORT  StructuredDataTransferBlocksize;
 | 
						|
  UCHAR  PartiallyFilledCellsMethod;
 | 
						|
} AAL1_PARAMETERS, *PAAL1_PARAMETERS;
 | 
						|
 | 
						|
typedef struct _AAL34_PARAMETERS {
 | 
						|
  USHORT  ForwardMaxCPCSSDUSize;
 | 
						|
  USHORT  BackwardMaxCPCSSDUSize;
 | 
						|
  USHORT  LowestMID;
 | 
						|
  USHORT  HighestMID;
 | 
						|
  UCHAR  SSCSType;
 | 
						|
} AAL34_PARAMETERS, *PAAL34_PARAMETERS;
 | 
						|
 | 
						|
/* AAL5_PARAMETERS.Mode constants */
 | 
						|
#define AAL5_MODE_MESSAGE			            0x01
 | 
						|
#define AAL5_MODE_STREAMING			          0x02
 | 
						|
 | 
						|
/* AAL5_PARAMETERS.SSCSType constants */
 | 
						|
#define AAL5_SSCS_NULL				            0x00
 | 
						|
#define AAL5_SSCS_SSCOP_ASSURED		        0x01
 | 
						|
#define AAL5_SSCS_SSCOP_NON_ASSURED	      0x02
 | 
						|
#define AAL5_SSCS_FRAME_RELAY		          0x04
 | 
						|
 | 
						|
typedef struct _AAL5_PARAMETERS {
 | 
						|
  ULONG  ForwardMaxCPCSSDUSize;
 | 
						|
  ULONG  BackwardMaxCPCSSDUSize;
 | 
						|
  UCHAR  Mode;
 | 
						|
  UCHAR  SSCSType;
 | 
						|
} AAL5_PARAMETERS, *PAAL5_PARAMETERS;
 | 
						|
 | 
						|
typedef struct _AALUSER_PARAMETERS {
 | 
						|
  ULONG  UserDefined;
 | 
						|
} AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
 | 
						|
 | 
						|
typedef struct _AAL_PARAMETERS_IE {
 | 
						|
  ATM_AAL_TYPE  AALType;
 | 
						|
  union {
 | 
						|
    AAL1_PARAMETERS  AAL1Parameters;
 | 
						|
    AAL34_PARAMETERS  AAL34Parameters;
 | 
						|
    AAL5_PARAMETERS  AAL5Parameters;
 | 
						|
    AALUSER_PARAMETERS  AALUserParameters;
 | 
						|
  } AALSpecificParameters;
 | 
						|
} AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
 | 
						|
 | 
						|
 | 
						|
/* FIXME: Should the union be anonymous in C++ too?  If so,
 | 
						|
   can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
 | 
						|
   within anonymous union for C++. */
 | 
						|
typedef struct _ATM_AAL_OOB_INFO
 | 
						|
{
 | 
						|
	ATM_AAL_TYPE  AalType;
 | 
						|
#ifndef __cplusplus
 | 
						|
	_ANONYMOUS_UNION
 | 
						|
#endif
 | 
						|
	union {
 | 
						|
		struct _ATM_AAL5_INFO {
 | 
						|
			BOOLEAN  CellLossPriority;
 | 
						|
			UCHAR  UserToUserIndication;
 | 
						|
			UCHAR  CommonPartIndicator;
 | 
						|
		} ATM_AAL5_INFO;
 | 
						|
		
 | 
						|
		struct _ATM_AAL0_INFO {
 | 
						|
			BOOLEAN  CellLossPriority;
 | 
						|
			UCHAR  PayLoadTypeIdentifier;
 | 
						|
		} ATM_AAL0_INFO;
 | 
						|
#ifndef __cplusplus
 | 
						|
	} DUMMYUNIONNAME;
 | 
						|
#else
 | 
						|
	} u;
 | 
						|
#endif
 | 
						|
} ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
 | 
						|
 | 
						|
typedef struct _ATM_ADDRESS  { 
 | 
						|
  ATM_ADDRESSTYPE  AddressType; 
 | 
						|
  ULONG  NumberOfDigits; 
 | 
						|
  UCHAR  Address[ATM_ADDRESS_LENGTH]; 
 | 
						|
} ATM_ADDRESS, *PATM_ADDRESS;
 | 
						|
 | 
						|
/* ATM_BHLI_IE.HighLayerInfoType constants */
 | 
						|
#define BHLI_ISO				                  0x00
 | 
						|
#define BHLI_UserSpecific		              0x01
 | 
						|
#define BHLI_HighLayerProfile	            0x02
 | 
						|
#define BHLI_VendorSpecificAppId          0x03
 | 
						|
 | 
						|
typedef struct _ATM_BHLI_IE {
 | 
						|
  ULONG  HighLayerInfoType;
 | 
						|
  ULONG  HighLayerInfoLength;
 | 
						|
  UCHAR  HighLayerInfo[8];
 | 
						|
} ATM_BHLI_IE, *PATM_BHLI_IE;
 | 
						|
 | 
						|
/* ATM_BLLI_IE.Layer2Protocol constants */
 | 
						|
#define BLLI_L2_ISO_1745		              0x01
 | 
						|
#define BLLI_L2_Q921			                0x02
 | 
						|
#define BLLI_L2_X25L			                0x06
 | 
						|
#define BLLI_L2_X25M			                0x07
 | 
						|
#define BLLI_L2_ELAPB			                0x08
 | 
						|
#define BLLI_L2_HDLC_ARM		              0x09
 | 
						|
#define BLLI_L2_HDLC_NRM		              0x0A
 | 
						|
#define BLLI_L2_HDLC_ABM		              0x0B
 | 
						|
#define BLLI_L2_LLC				                0x0C
 | 
						|
#define BLLI_L2_X75				                0x0D
 | 
						|
#define BLLI_L2_Q922			                0x0E
 | 
						|
#define BLLI_L2_USER_SPECIFIED            0x10
 | 
						|
#define BLLI_L2_ISO_7776		              0x11
 | 
						|
 | 
						|
/* ATM_BLLI_IE.Layer3Protocol constants */
 | 
						|
#define BLLI_L3_X25				                0x06
 | 
						|
#define BLLI_L3_ISO_8208		              0x07
 | 
						|
#define BLLI_L3_X223			                0x08
 | 
						|
#define BLLI_L3_SIO_8473		              0x09
 | 
						|
#define BLLI_L3_T70				                0x0A
 | 
						|
#define BLLI_L3_ISO_TR9577		            0x0B
 | 
						|
#define BLLI_L3_USER_SPECIFIED	          0x10
 | 
						|
 | 
						|
/* ATM_BLLI_IE.Layer3IPI constants */
 | 
						|
#define BLLI_L3_IPI_SNAP		              0x80
 | 
						|
#define BLLI_L3_IPI_IP			              0xCC
 | 
						|
 | 
						|
typedef struct _ATM_BLLI_IE {
 | 
						|
  ULONG  Layer2Protocol;
 | 
						|
  UCHAR  Layer2Mode;
 | 
						|
  UCHAR  Layer2WindowSize;
 | 
						|
  ULONG  Layer2UserSpecifiedProtocol;
 | 
						|
  ULONG  Layer3Protocol;
 | 
						|
  UCHAR  Layer3Mode;
 | 
						|
  UCHAR  Layer3DefaultPacketSize;
 | 
						|
  UCHAR  Layer3PacketWindowSize;
 | 
						|
  ULONG  Layer3UserSpecifiedProtocol;
 | 
						|
  ULONG  Layer3IPI;
 | 
						|
  UCHAR  SnapId[5];
 | 
						|
} ATM_BLLI_IE, *PATM_BLLI_IE;
 | 
						|
 | 
						|
/* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
 | 
						|
#define BCOB_A					                  0x00
 | 
						|
#define BCOB_C					                  0x01
 | 
						|
#define BCOB_X					                  0x02
 | 
						|
 | 
						|
/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
 | 
						|
#define TT_NOIND				                  0x00
 | 
						|
#define TT_CBR					                  0x04
 | 
						|
#define TT_VBR					                  0x08
 | 
						|
 | 
						|
/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
 | 
						|
#define TR_NOIND				                  0x00
 | 
						|
#define TR_END_TO_END			                0x01
 | 
						|
#define TR_NO_END_TO_END		              0x02
 | 
						|
 | 
						|
/* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
 | 
						|
#define CLIP_NOT				                  0x00
 | 
						|
#define CLIP_SUS				                  0x20
 | 
						|
 | 
						|
/* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
 | 
						|
#define UP_P2P					                  0x00
 | 
						|
#define UP_P2MP					                  0x01
 | 
						|
 | 
						|
typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
 | 
						|
  UCHAR  BearerClass;
 | 
						|
  UCHAR  TrafficType;
 | 
						|
  UCHAR  TimingRequirements;
 | 
						|
  UCHAR  ClippingSusceptability;
 | 
						|
  UCHAR  UserPlaneConnectionConfig;
 | 
						|
} ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
 | 
						|
 | 
						|
typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
 | 
						|
  UCHAR  SendingComplete;
 | 
						|
} ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
 | 
						|
 | 
						|
typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
 | 
						|
  ATM_ADDRESS  Number;
 | 
						|
  UCHAR  PresentationIndication;
 | 
						|
  UCHAR  ScreeningIndicator;
 | 
						|
} ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
 | 
						|
 | 
						|
/* ATM_CAUSE_IE.Location constants */
 | 
						|
#define ATM_CAUSE_LOC_USER                    0x00
 | 
						|
#define ATM_CAUSE_LOC_PRIVATE_LOCAL           0x01
 | 
						|
#define ATM_CAUSE_LOC_PUBLIC_LOCAL            0x02
 | 
						|
#define ATM_CAUSE_LOC_TRANSIT_NETWORK         0x03
 | 
						|
#define ATM_CAUSE_LOC_PUBLIC_REMOTE           0x04
 | 
						|
#define ATM_CAUSE_LOC_PRIVATE_REMOTE          0x05
 | 
						|
#define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK   0x07
 | 
						|
#define ATM_CAUSE_LOC_BEYOND_INTERWORKING     0x0A
 | 
						|
 | 
						|
/* ATM_CAUSE_IE.Cause constants */
 | 
						|
#define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
 | 
						|
#define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
 | 
						|
#define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
 | 
						|
#define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
 | 
						|
#define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
 | 
						|
#define ATM_CAUSE_USER_BUSY                         0x11
 | 
						|
#define ATM_CAUSE_NO_USER_RESPONDING                0x12
 | 
						|
#define ATM_CAUSE_CALL_REJECTED                     0x15
 | 
						|
#define ATM_CAUSE_NUMBER_CHANGED                    0x16
 | 
						|
#define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
 | 
						|
#define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
 | 
						|
#define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
 | 
						|
#define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
 | 
						|
#define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
 | 
						|
#define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
 | 
						|
#define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
 | 
						|
#define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
 | 
						|
#define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
 | 
						|
#define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
 | 
						|
#define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
 | 
						|
#define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
 | 
						|
#define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
 | 
						|
#define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
 | 
						|
#define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
 | 
						|
#define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
 | 
						|
#define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
 | 
						|
#define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
 | 
						|
#define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
 | 
						|
#define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
 | 
						|
#define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
 | 
						|
#define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
 | 
						|
#define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
 | 
						|
#define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
 | 
						|
#define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
 | 
						|
#define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
 | 
						|
#define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
 | 
						|
#define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
 | 
						|
#define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
 | 
						|
#define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
 | 
						|
#define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
 | 
						|
#define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
 | 
						|
#define ATM_CAUSE_PROTOCOL_ERROR                    0x6F
 | 
						|
 | 
						|
/* ATM_CAUSE_IE.Diagnostics constants */
 | 
						|
#define ATM_CAUSE_COND_UNKNOWN            0x00
 | 
						|
#define ATM_CAUSE_COND_PERMANENT          0x01
 | 
						|
#define ATM_CAUSE_COND_TRANSIENT          0x02
 | 
						|
#define ATM_CAUSE_REASON_USER             0x00
 | 
						|
#define ATM_CAUSE_REASON_IE_MISSING       0x04
 | 
						|
#define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
 | 
						|
#define ATM_CAUSE_PU_PROVIDER             0x00
 | 
						|
#define ATM_CAUSE_PU_USER                 0x08
 | 
						|
#define ATM_CAUSE_NA_NORMAL               0x00
 | 
						|
#define ATM_CAUSE_NA_ABNORMAL             0x04
 | 
						|
 | 
						|
typedef struct _ATM_CAUSE_IE {
 | 
						|
  UCHAR  Location;
 | 
						|
  UCHAR  Cause;
 | 
						|
  UCHAR  DiagnosticsLength;
 | 
						|
  UCHAR  Diagnostics[4];
 | 
						|
} ATM_CAUSE_IE, *PATM_CAUSE_IE;
 | 
						|
 | 
						|
 | 
						|
typedef ULONG	ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
 | 
						|
 | 
						|
/* ATM_FLOW_PARAMETERS.ServiceCategory constants */
 | 
						|
#define	ATM_SERVICE_CATEGORY_CBR	        1
 | 
						|
#define	ATM_SERVICE_CATEGORY_VBR	        2
 | 
						|
#define	ATM_SERVICE_CATEGORY_UBR	        4
 | 
						|
#define	ATM_SERVICE_CATEGORY_ABR	        8
 | 
						|
 | 
						|
/* ATM_FLOW_PARAMETERS.Reserved1 constants */
 | 
						|
#define ATM_FLOW_PARAMS_RSVD1_MPP	        0x01
 | 
						|
 | 
						|
typedef struct _ATM_FLOW_PARAMETERS {
 | 
						|
  ATM_SERVICE_CATEGORY  ServiceCategory;
 | 
						|
  ULONG  AverageCellRate;
 | 
						|
  ULONG  PeakCellRate;
 | 
						|
  ULONG  MinimumCellRate;
 | 
						|
  ULONG  InitialCellRate;
 | 
						|
  ULONG  BurstLengthCells;
 | 
						|
  ULONG  MaxSduSize;
 | 
						|
  ULONG  TransientBufferExposure;
 | 
						|
  ULONG  CumulativeRMFixedRTT;
 | 
						|
  UCHAR  RateIncreaseFactor;
 | 
						|
  UCHAR  RateDecreaseFactor;
 | 
						|
  USHORT  ACRDecreaseTimeFactor;
 | 
						|
  UCHAR  MaximumCellsPerForwardRMCell;
 | 
						|
  UCHAR  MaximumForwardRMCellInterval;
 | 
						|
  UCHAR  CutoffDecreaseFactor;
 | 
						|
  UCHAR  Reserved1;
 | 
						|
  ULONG  MissingRMCellCount;
 | 
						|
  ULONG  Reserved2;
 | 
						|
  ULONG  Reserved3;
 | 
						|
} ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
 | 
						|
 | 
						|
typedef struct _ATM_VPIVCI {
 | 
						|
  ULONG  Vpi;
 | 
						|
  ULONG  Vci;
 | 
						|
} ATM_VPIVCI, *PATM_VPIVCI;
 | 
						|
 | 
						|
typedef struct _ATM_MEDIA_PARAMETERS {
 | 
						|
  ATM_VPIVCI  ConnectionId;
 | 
						|
  ATM_AAL_TYPE  AALType;
 | 
						|
  ULONG  CellDelayVariationCLP0;
 | 
						|
  ULONG  CellDelayVariationCLP1;
 | 
						|
  ULONG  CellLossRatioCLP0;
 | 
						|
  ULONG  CellLossRatioCLP1;
 | 
						|
  ULONG  CellTransferDelayCLP0;
 | 
						|
  ULONG  CellTransferDelayCLP1;
 | 
						|
  ULONG  DefaultCLP;
 | 
						|
  ATM_FLOW_PARAMETERS  Transmit;
 | 
						|
  ATM_FLOW_PARAMETERS  Receive;
 | 
						|
} ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
 | 
						|
 | 
						|
typedef struct _ATM_PVC_SAP {
 | 
						|
  ATM_BLLI_IE  Blli;
 | 
						|
  ATM_BHLI_IE  Bhli;
 | 
						|
} ATM_PVC_SAP, *PATM_PVC_SAP;
 | 
						|
 | 
						|
/* ATM_QOS_CLASS_IE constants */
 | 
						|
#define QOS_CLASS0				                0x00
 | 
						|
#define QOS_CLASS1				                0x01
 | 
						|
#define QOS_CLASS2				                0x02
 | 
						|
#define QOS_CLASS3				                0x03
 | 
						|
#define QOS_CLASS4				                0x04
 | 
						|
 | 
						|
typedef struct _ATM_QOS_CLASS_IE {
 | 
						|
  UCHAR  QOSClassForward;
 | 
						|
  UCHAR  QOSClassBackward;
 | 
						|
} ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
 | 
						|
 | 
						|
typedef struct _ATM_RAW_IE {
 | 
						|
  ULONG  RawIELength;
 | 
						|
  ULONG  RawIEType;
 | 
						|
  UCHAR  RawIEValue[1];
 | 
						|
} ATM_RAW_IE, *PATM_RAW_IE;
 | 
						|
 | 
						|
typedef struct _ATM_SAP {
 | 
						|
  ATM_BLLI_IE  Blli;
 | 
						|
  ATM_BHLI_IE  Bhli;
 | 
						|
  ULONG  NumberOfAddresses;
 | 
						|
  UCHAR  Addresses[1];
 | 
						|
} ATM_SAP, *PATM_SAP;
 | 
						|
 | 
						|
typedef struct _ATM_TRAFFIC_DESCRIPTOR {
 | 
						|
  ULONG  PeakCellRateCLP0;
 | 
						|
  ULONG  PeakCellRateCLP01;
 | 
						|
  ULONG  SustainableCellRateCLP0;
 | 
						|
  ULONG  SustainableCellRateCLP01;
 | 
						|
  ULONG  MaximumBurstSizeCLP0;
 | 
						|
  ULONG  MaximumBurstSizeCLP01;
 | 
						|
  BOOLEAN  BestEffort;
 | 
						|
  BOOLEAN  Tagging;
 | 
						|
} ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
 | 
						|
 | 
						|
typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
 | 
						|
  ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
 | 
						|
  ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
 | 
						|
  BOOLEAN  BestEffort;
 | 
						|
} ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
 | 
						|
 | 
						|
/* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
 | 
						|
#define TNS_TYPE_NATIONAL			            0x40
 | 
						|
 | 
						|
/* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
 | 
						|
#define TNS_PLAN_CARRIER_ID_CODE	        0x01
 | 
						|
 | 
						|
typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
 | 
						|
  UCHAR  TypeOfNetworkId;
 | 
						|
  UCHAR  NetworkIdPlan;
 | 
						|
  UCHAR  NetworkIdLength;
 | 
						|
  UCHAR  NetworkId[1];
 | 
						|
} ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
 | 
						|
 | 
						|
typedef struct _ATM_LIJ_CALLID_IE {
 | 
						|
	ULONG  Identifier;
 | 
						|
} ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
 | 
						|
 | 
						|
/* Q2931_ADD_PVC.Flags constants */
 | 
						|
#define CO_FLAG_SIGNALING_VC              0x00000001
 | 
						|
#define CO_FLAG_NO_DEST_SAP               0x00000002
 | 
						|
 | 
						|
typedef struct _Q2931_ADD_PVC {
 | 
						|
  ATM_ADDRESS  CalledParty;
 | 
						|
  ATM_ADDRESS  CallingParty;
 | 
						|
  ATM_VPIVCI  ConnectionId;
 | 
						|
  ATM_AAL_TYPE  AALType;
 | 
						|
  ATM_FLOW_PARAMETERS  ForwardFP;
 | 
						|
  ATM_FLOW_PARAMETERS  BackwardFP;
 | 
						|
  ULONG  Flags;
 | 
						|
  ATM_PVC_SAP  LocalSap;
 | 
						|
  ATM_PVC_SAP  DestinationSap;
 | 
						|
  BOOLEAN  LIJIdPresent;
 | 
						|
  ATM_LIJ_CALLID_IE  LIJId;
 | 
						|
} Q2931_ADD_PVC, *PQ2931_ADD_PVC;
 | 
						|
 | 
						|
typedef struct _Q2931_DELETE_PVC {
 | 
						|
  ATM_VPIVCI  ConnectionId;
 | 
						|
} Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
 | 
						|
 | 
						|
typedef ATM_ADDRESS	ATM_CALLED_PARTY_NUMBER_IE;
 | 
						|
typedef ATM_ADDRESS	ATM_CALLED_PARTY_SUBADDRESS_IE;
 | 
						|
typedef ATM_ADDRESS	ATM_CALLING_PARTY_SUBADDRESS_IE;
 | 
						|
 | 
						|
typedef struct _Q2931_CALLMGR_PARAMETERS {
 | 
						|
  ATM_ADDRESS  CalledParty;
 | 
						|
  ATM_ADDRESS  CallingParty;
 | 
						|
  ULONG  InfoElementCount;
 | 
						|
  UCHAR  InfoElements[1];
 | 
						|
} Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
 | 
						|
 | 
						|
typedef struct _ATM_VC_RATES_SUPPORTED {
 | 
						|
  ULONG  MinCellRate;
 | 
						|
  ULONG  MaxCellRate;
 | 
						|
} ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
 | 
						|
 | 
						|
typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
 | 
						|
 | 
						|
/* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
 | 
						|
#define ATM_SERVICE_REGISTRY_LECS		      1
 | 
						|
#define ATM_SERVICE_REGISTRY_ANS		      2
 | 
						|
 | 
						|
typedef struct _ATM_SERVICE_ADDRESS_LIST {
 | 
						|
  ATM_SERVICE_REGISTRY_TYPE  ServiceRegistryType;
 | 
						|
  ULONG  NumberOfAddressesAvailable;
 | 
						|
  ULONG  NumberOfAddressesReturned;
 | 
						|
  ATM_ADDRESS  Address[1];
 | 
						|
} ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* __ATM_H */
 |