' ########################################################################################
' Microsoft Windows
' File: WS2atm.inc
' Contents: Winsock 2 ATM Annex definitions.
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_WS2atm_PBI)
#DEFINE PBX_WS2atm_PBI
%EQUATE `WS2ATM_INC = 1
#INCLUDE ONCE "Legacy/Platform/WinSock2.inc"
'#ifndef _WS2ATM_H_
'%_WS2ATM_H_
'#if _MSC_VER > 1000
'#pragma once
'#endif
'#include <pshpack4.h>
%EQUATE `ATMPROTO_AALUSER = &H00 ' /* User-defined AAL */
%EQUATE `ATMPROTO_AAL1 = &H01 ' /* AAL 1 */
%EQUATE `ATMPROTO_AAL2 = &H02 ' /* AAL 2 */
%EQUATE `ATMPROTO_AAL34 = &H03 ' /* AAL 3/4 */
%EQUATE `ATMPROTO_AAL5 = &H05 ' /* AAL 5 */
%EQUATE `SAP_FIELD_ABSENT = &HFFFFFFFE
%EQUATE `SAP_FIELD_ANY = &HFFFFFFFF
%EQUATE `SAP_FIELD_ANY_AESA_SEL = &HFFFFFFFA
%EQUATE `SAP_FIELD_ANY_AESA_REST = &HFFFFFFFB
'/*
' * values used for AddressType in struct ATM_ADDRESS
' */
%EQUATE `ATM_E164 = &H01 ' /* E.164 addressing scheme */
%EQUATE `ATM_NSAP = &H02 ' /* NSAP-style ATM Endsystem Address scheme */
%EQUATE `ATM_AESA = &H02 ' /* NSAP-style ATM Endsystem Address scheme */
%EQUATE `ATM_ADDR_SIZE = 20
' // Size = 28 bytes
TYPE ATM_ADDRESS DWORD
 AddressType AS DWORD ' DWORD /* E.164 or NSAP-style ATM Endsystem Address */
 NumofDigits AS DWORD ' DWORD /* number of digits; */
 Addr AS STRING * %ATM_ADDR_SIZE ' UCHAR[ATM_ADDR_SIZE] /* IA5 digits for E164, BCD encoding for NSAP */
 ' /* format as defined in the ATM Forum UNI 3.1 */
END TYPE
'/*
' * values used for Layer2Protocol in B-LLI
' */
%EQUATE `BLLI_L2_ISO_1745 = &H01 ' /* Basic mode ISO 1745 */
%EQUATE `BLLI_L2_Q921 = &H02 ' /* CCITT Rec. Q.921 */
%EQUATE `BLLI_L2_X25L = &H06 ' /* CCITT Rec. X.25, link layer */
%EQUATE `BLLI_L2_X25M = &H07 ' /* CCITT Rec. X.25, multilink */
%EQUATE `BLLI_L2_ELAPB = &H08 ' /* Extended LAPB; for half duplex operation */
%EQUATE `BLLI_L2_HDLC_ARM = &H09 ' /* HDLC ARM (ISO 4335) */
%EQUATE `BLLI_L2_HDLC_NRM = &H0A ' /* HDLC NRM (ISO 4335) */
%EQUATE `BLLI_L2_HDLC_ABM = &H0B ' /* HDLC ABM (ISO 4335) */
%EQUATE `BLLI_L2_LLC = &H0C ' /* LAN logical link control (ISO 8802/2) */
%EQUATE `BLLI_L2_X75 = &H0D ' /* CCITT Rec. X.75, single link procedure */
%EQUATE `BLLI_L2_Q922 = &H0E ' /* CCITT Rec. Q.922 */
%EQUATE `BLLI_L2_USER_SPECIFIED = &H10 ' /* User Specified */
%EQUATE `BLLI_L2_ISO_7776 = &H11 ' /* ISO 7776 DTE-DTE operation */
'/*
' * values used for Layer3Protocol in B-LLI
' */
%EQUATE `BLLI_L3_X25 = &H06 ' /* CCITT Rec. X.25, packet layer */
%EQUATE `BLLI_L3_ISO_8208 = &H07 ' /* ISO/IEC 8208 (X.25 packet layer for DTE */
%EQUATE `BLLI_L3_X223 = &H08 ' /* X.223/ISO 8878 */
%EQUATE `BLLI_L3_SIO_8473 = &H09 ' /* ISO/IEC 8473 (OSI connectionless) */
%EQUATE `BLLI_L3_T70 = &H0A ' /* CCITT Rec. T.70 min. network layer */
%EQUATE `BLLI_L3_ISO_TR9577 = &H0B ' /* ISO/IEC TR 9577 Network Layer Protocol ID*/
%EQUATE `BLLI_L3_USER_SPECIFIED = &H10 ' /* User Specified */
'/*
' * values used for Layer3IPI in B-LLI
' */
%EQUATE `BLLI_L3_IPI_SNAP = &H80 ' /* IEEE 802.1 SNAP identifier */
%EQUATE `BLLI_L3_IPI_IP = &HCC ' /* Internet Protocol (IP) identifier */
' // Size = 28 bytes
TYPE ATM_BLLI DWORD
 Layer2Protocol AS DWORD ' DWORD /* User information layer 2 protocol */
 Layer2UserSpecifiedProtocol AS DWORD ' DWORD /* User specified layer 2 protocol information */
 Layer3Protocol AS DWORD ' DWORD /* User information layer 3 protocol */
 Layer3UserSpecifiedProtocol AS DWORD ' DWORD /* User specified layer 3 protocol information */
 Layer3IPI AS DWORD ' DWORD /* ISO/IEC TR 9577 Initial Protocol Identifier */
 SnapID AS STRING * 5 ' UCHAR [5] /* SNAP ID consisting of OUI and PID */
END TYPE
'/*
' * values used for the HighLayerInfoType field in ATM_BHLI
' */
%EQUATE `BHLI_ISO = &H00 ' /* ISO */
%EQUATE `BHLI_UserSpecific = &H01 ' /* User Specific */
%EQUATE `BHLI_HighLayerProfile = &H02 ' /* High layer profile (only in UNI3.0) */
%EQUATE `BHLI_VendorSpecificAppId = &H03 ' /* Vendor-Specific Application ID */
' // Size = 16 bytes
TYPE ATM_BHLI DWORD
 HighLayerInfoType AS DWORD ' DWORD /* High Layer Information Type */
 HighLayerInfoLength AS DWORD ' DWORD /* number of bytes in HighLayerInfo */
 HighLayerInfo AS STRING * 8 ' UCHAR[8] /* the value dependent on the */
 ' /* HighLayerInfoType field */
END TYPE
' // Size = 76 bytes
TYPE SOCKADDR_ATM DWORD
 satm_family AS WORD ' u_short /* address family should be AF_ATM */
 satm_number AS ATM_ADDRESS ' /* ATM address */
 satm_blli AS ATM_BLLI ' /* B-LLI */
 satm_bhli AS ATM_BHLI ' /* B-HLI */
END TYPE
' enum Q2931_IE_TYPE
%EQUATE `IE_AALParameters = 0
%EQUATE `IE_TrafficDescriptor = 1
%EQUATE `IE_BroadbandBearerCapability = 2
%EQUATE `IE_BHLI = 3
%EQUATE `IE_BLLI = 4
%EQUATE `IE_CalledPartyNumber = 5
%EQUATE `IE_CalledPartySubaddress = 6
%EQUATE `IE_CallingPartyNumber = 7
%EQUATE `IE_CallingPartySubaddress = 8
%EQUATE `IE_Cause = 9
%EQUATE `IE_QOSClass = 10
%EQUATE `IE_TransitNetworkSelection = 11
' // Size = 12 bytes
TYPE Q2931_IE DWORD
 IEType AS LONG ' Q2931_IE_TYPE enum
 IELength AS DWORD ' ULONG
 IE(0) AS BYTE ' UCHAR[1] - variable-length array
END TYPE
'/*
' * manifest constants for the AALType field in struct AAL_PARAMETERS_IE
' */
' enum AAL_TYPE
%EQUATE `AALTYPE_5 = 5 ' /* AAL 5 */
%EQUATE `AALTYPE_USER = 16 ' /* user-defined AAL */
'/*
' * values used for the Mode field in struct AAL5_PARAMETERS
' */
%EQUATE `AAL5_MODE_MESSAGE = &H01
%EQUATE `AAL5_MODE_STREAMING = &H02
'/*
' * values used for the SSCSType field in struct AAL5_PARAMETERS
' */
%EQUATE `AAL5_SSCS_NULL = &H00
%EQUATE `AAL5_SSCS_SSCOP_ASSURED = &H01
%EQUATE `AAL5_SSCS_SSCOP_NON_ASSURED = &H02
%EQUATE `AAL5_SSCS_FRAME_RELAY = &H04
' // Size = 12 bytes
TYPE AAL5_PARAMETERS DWORD FILL
 ForwardMaxCPCSSDUSize AS DWORD ' ULONG
 BackwardMaxCPCSSDUSize AS DWORD ' ULONG
 Mode AS BYTE ' UCHAR /* only available in UNI 3.0 */
 SSCSType AS BYTE ' UCHAR
 alignment__(1) AS BYTE ' // To keep DWORD alignment
END TYPE
' // Size = 4 bytes
TYPE AALUSER_PARAMETERS DWORD FILL
 UserDefined AS DWORD ' ULONG
END TYPE
' // Size = 12 bytes
UNION AALSpecificParameters DWORD
 AAL5Parameters AS AAL5_PARAMETERS
 AALUserParameters AS AALUSER_PARAMETERS
END UNION
' // Size = 16 bytes
TYPE AAL_PARAMETERS_IE DWORD
 AALType AS LONG ' AAL_TYPE enum
 AALSpecificParameters
END TYPE
' // Size = 28 bytes
TYPE ATM_TD DWORD
 PeakCellRate_CLP0 AS DWORD ' ULONG
 PeakCellRate_CLP01 AS DWORD ' ULONG
 SustainableCellRate_CLP0 AS DWORD ' ULONG
 SustainableCellRate_CLP01 AS DWORD ' ULONG
 MaxBurstSize_CLP0 AS DWORD ' ULONG
 MaxBurstSize_CLP01 AS DWORD ' ULONG
 Tagging AS LONG
END TYPE
' // Size = 60 bytes
TYPE ATM_TRAFFIC_DESCRIPTOR_IE DWORD
 Forward AS ATM_TD
 Backward AS ATM_TD
 BestEffort AS LONG
END TYPE
'/*
' * values used for the BearerClass field in struct ATM_BROADBAND_BEARER_CAPABILITY_IE
' */
%EQUATE `BCOB_A = &H01 ' /* Bearer class A */
%EQUATE `BCOB_C = &H03 ' /* Bearer class C */
%EQUATE `BCOB_X = &H10 ' /* Bearer class X */
'/*
' * values used for the TrafficType field in struct ATM_BROADBAND_BEARER_CAPABILITY_IE
' */
%EQUATE `TT_NOIND = &H00 ' /* No indication of traffic type */
%EQUATE `TT_CBR = &H04 ' /* Constant bit rate */
%EQUATE `TT_VBR = &H08 ' /* Variable bit rate */
'/*
' * values used for the TimingRequirements field in struct ATM_BROADBAND_BEARER_CAPABILITY_IE
' */
%EQUATE `TR_NOIND = &H00 ' /* No timing requirement indication */
%EQUATE `TR_END_TO_END = &H01 ' /* End-to-end timing required */
%EQUATE `TR_NO_END_TO_END = &H02 ' /* End-to-end timing not required */
'/*
' * values used for the ClippingSusceptability field in struct ATM_BROADBAND_BEARER_CAPABILITY_IE
' */
%EQUATE `CLIP_NOT = &H00 ' /* Not susceptible to clipping */
%EQUATE `CLIP_SUS = &H20 ' /* Susceptible to clipping */
'/*
' * values used for the UserPlaneConnectionConfig field in
' * struct ATM_BROADBAND_BEARER_CAPABILITY_IE
' */
%EQUATE `UP_P2P = &H00 ' /* Point-to-point connection */
%EQUATE `UP_P2MP = &H01 ' /* Point-to-multipoint connection */
' // Size = 5 bytes
TYPE ATM_BROADBAND_BEARER_CAPABILITY_IE BYTE
 BearerClass AS BYTE ' UCHAR
 TrafficType AS BYTE ' UCHAR
 TimingRequirements AS BYTE ' UCHAR
 ClippingSusceptability AS BYTE ' UCHAR
 UserPlaneConnectionConfig AS BYTE ' UCHAR
END TYPE
'typedef ATM_BHLI ATM_BHLI_IE;
MACRO ATM_BHLI_IE = ATM_BHLI
'/*
' * values used for the Layer2Mode field in struct ATM_BLLI_IE
' */
%EQUATE `BLLI_L2_MODE_NORMAL = &H40
%EQUATE `BLLI_L2_MODE_EXT = &H80
'/*
' * values used for the Layer3Mode field in struct ATM_BLLI_IE
' */
%EQUATE `BLLI_L3_MODE_NORMAL = &H40
%EQUATE `BLLI_L3_MODE_EXT = &H80
'/*
' * values used for the Layer3DefaultPacketSize field in struct ATM_BLLI_IE
' */
%EQUATE `BLLI_L3_PACKET_16 = &H04
%EQUATE `BLLI_L3_PACKET_32 = &H05
%EQUATE `BLLI_L3_PACKET_64 = &H06
%EQUATE `BLLI_L3_PACKET_128 = &H07
%EQUATE `BLLI_L3_PACKET_256 = &H08
%EQUATE `BLLI_L3_PACKET_512 = &H09
%EQUATE `BLLI_L3_PACKET_1024 = &H0A
%EQUATE `BLLI_L3_PACKET_2048 = &H0B
%EQUATE `BLLI_L3_PACKET_4096 = &H0C
' // Size = 36 bytes
TYPE ATM_BLLI_IE DWORD FILL
 Layer2Protocol AS DWORD ' DWORD /* User information layer 2 protocol */
 Layer2Mode AS BYTE ' UCHAR
 Layer2WindowSize AS BYTE ' UCHAR
 Layer2UserSpecifiedProtocol AS DWORD ' DWORD /* User specified layer 2 protocol information */
 Layer3Protocol AS DWORD ' DWORD /* User information layer 3 protocol */
 Layer3Mode AS BYTE ' UCHAR
 Layer3DefaultPacketSize AS BYTE ' UCHAR
 Layer3PacketWindowSize AS BYTE ' UCHAR
 Layer3UserSpecifiedProtocol AS DWORD ' DWORD /* User specified layer 3 protocol information */
 Layer3IPI AS DWORD ' DWORD /* ISO/IEC TR 9577 Initial Protocol Identifier */
 SnapID AS STRING * 5 ' UCHAR[5] /* SNAP ID consisting of OUI and PID */
 alignment_(2) AS BYTE ' // To keep DWORD alignment
END TYPE
'typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE;
MACRO ATM_CALLED_PARTY_NUMBER_IE = ATM_ADDRESS
'typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE;
MACRO ATM_CALLED_PARTY_SUBADDRESS_IE = ATM_ADDRESS
'/*
' * values used for the Presentation_Indication field in
' * struct ATM_CALLING_PARTY_NUMBER_IE
' */
%EQUATE `PI_ALLOWED = &H00
%EQUATE `PI_RESTRICTED = &H40
%EQUATE `PI_NUMBER_NOT_AVAILABLE = &H80
'/*
' * values used for the Screening_Indicator field in
' * struct ATM_CALLING_PARTY_NUMBER_IE
' */
%EQUATE `SI_USER_NOT_SCREENED = &H00
%EQUATE `SI_USER_PASSED = &H01
%EQUATE `SI_USER_FAILED = &H02
%EQUATE `SI_NETWORK = &H03
' // Size = 32 bytes
TYPE ATM_CALLING_PARTY_NUMBER_IE DWORD FILL
 ATM_Number AS ATM_ADDRESS
 Presentation_Indication AS BYTE ' UCHAR
 Screening_Indicator AS BYTE ' UCHAR
 alignment__(1) AS BYTE ' / To keep DWORD alignment
END TYPE
'typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE;
MACRO ATM_CALLING_PARTY_SUBADDRESS_IE = ATM_ADDRESS
'/*
' * values used for the Location field in struct ATM_CAUSE_IE
' */
%EQUATE `CAUSE_LOC_USER = &H00
%EQUATE `CAUSE_LOC_PRIVATE_LOCAL = &H01
%EQUATE `CAUSE_LOC_PUBLIC_LOCAL = &H02
%EQUATE `CAUSE_LOC_TRANSIT_NETWORK = &H03
%EQUATE `CAUSE_LOC_PUBLIC_REMOTE = &H04
%EQUATE `CAUSE_LOC_PRIVATE_REMOTE = &H05
%EQUATE `CAUSE_LOC_INTERNATIONAL_NETWORK = &H07
%EQUATE `CAUSE_LOC_BEYOND_INTERWORKING = &H0A
'/*
' * values used for the Cause field in struct ATM_CAUSE_IE
' */
%EQUATE `CAUSE_UNALLOCATED_NUMBER = &H01
%EQUATE `CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK = &H02
%EQUATE `CAUSE_NO_ROUTE_TO_DESTINATION = &H03
%EQUATE `CAUSE_VPI_VCI_UNACCEPTABLE = &H0A
%EQUATE `CAUSE_NORMAL_CALL_CLEARING = &H10
%EQUATE `CAUSE_USER_BUSY = &H11
%EQUATE `CAUSE_NO_USER_RESPONDING = &H12
%EQUATE `CAUSE_CALL_REJECTED = &H15
%EQUATE `CAUSE_NUMBER_CHANGED = &H16
%EQUATE `CAUSE_USER_REJECTS_CLIR = &H17
%EQUATE `CAUSE_DESTINATION_OUT_OF_ORDER = &H1B
%EQUATE `CAUSE_INVALID_NUMBER_FORMAT = &H1C
%EQUATE `CAUSE_STATUS_ENQUIRY_RESPONSE = &H1E
%EQUATE `CAUSE_NORMAL_UNSPECIFIED = &H1F
%EQUATE `CAUSE_VPI_VCI_UNAVAILABLE = &H23
%EQUATE `CAUSE_NETWORK_OUT_OF_ORDER = &H26
%EQUATE `CAUSE_TEMPORARY_FAILURE = &H29
%EQUATE `CAUSE_ACCESS_INFORMAION_DISCARDED = &H2B
%EQUATE `CAUSE_NO_VPI_VCI_AVAILABLE = &H2D
%EQUATE `CAUSE_RESOURCE_UNAVAILABLE = &H2F
%EQUATE `CAUSE_QOS_UNAVAILABLE = &H31
%EQUATE `CAUSE_USER_CELL_RATE_UNAVAILABLE = &H33
%EQUATE `CAUSE_BEARER_CAPABILITY_UNAUTHORIZED = &H39
%EQUATE `CAUSE_BEARER_CAPABILITY_UNAVAILABLE = &H3A
%EQUATE `CAUSE_OPTION_UNAVAILABLE = &H3F
%EQUATE `CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED = &H41
%EQUATE `CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS = &H49
%EQUATE `CAUSE_INVALID_CALL_REFERENCE = &H51
%EQUATE `CAUSE_CHANNEL_NONEXISTENT = &H52
%EQUATE `CAUSE_INCOMPATIBLE_DESTINATION = &H58
%EQUATE `CAUSE_INVALID_ENDPOINT_REFERENCE = &H59
%EQUATE `CAUSE_INVALID_TRANSIT_NETWORK_SELECTION = &H5B
%EQUATE `CAUSE_TOO_MANY_PENDING_ADD_PARTY = &H5C
%EQUATE `CAUSE_AAL_PARAMETERS_UNSUPPORTED = &H5D
%EQUATE `CAUSE_MANDATORY_IE_MISSING = &H60
%EQUATE `CAUSE_UNIMPLEMENTED_MESSAGE_TYPE = &H61
%EQUATE `CAUSE_UNIMPLEMENTED_IE = &H63
%EQUATE `CAUSE_INVALID_IE_CONTENTS = &H64
%EQUATE `CAUSE_INVALID_STATE_FOR_MESSAGE = &H65
%EQUATE `CAUSE_RECOVERY_ON_TIMEOUT = &H66
%EQUATE `CAUSE_INCORRECT_MESSAGE_LENGTH = &H68
%EQUATE `CAUSE_PROTOCOL_ERROR = &H6F
'/*
' * values used for the Condition portion of the Diagnostics field
' * in struct ATM_CAUSE_IE, for certain Cause values
' */
%EQUATE `CAUSE_COND_UNKNOWN = &H00
%EQUATE `CAUSE_COND_PERMANENT = &H01
%EQUATE `CAUSE_COND_TRANSIENT = &H02
'/*
' * values used for the Rejection Reason portion of the Diagnostics field
' * in struct ATM_CAUSE_IE, for certain Cause values
' */
%EQUATE `CAUSE_REASON_USER = &H00
%EQUATE `CAUSE_REASON_IE_MISSING = &H04
%EQUATE `CAUSE_REASON_IE_INSUFFICIENT = &H08
'/*
' * values used for the P-U flag of the Diagnostics field
' * in struct ATM_CAUSE_IE, for certain Cause values
' */
%EQUATE `CAUSE_PU_PROVIDER = &H00
%EQUATE `CAUSE_PU_USER = &H08
'/*
' * values used for the N-A flag of the Diagnostics field
' * in struct ATM_CAUSE_IE, for certain Cause values
' */
%EQUATE `CAUSE_NA_NORMAL = &H00
%EQUATE `CAUSE_NA_ABNORMAL = &H04
' // Size = 7 bytes
TYPE ATM_CAUSE_IE BYTE
 Location AS BYTE ' UCHAR
 Cause AS BYTE ' UCHAR
 DiagnosticsLength AS BYTE ' UCHAR
 Diagnostics AS STRING * 4 ' UCHAR[4]
END TYPE
'/*
' * values used for the QOSClassForward and QOSClassBackward
' * field in struct ATM_QOS_CLASS_IE
' */
%EQUATE `QOS_CLASS0 = &H00
%EQUATE `QOS_CLASS1 = &H01
%EQUATE `QOS_CLASS2 = &H02
%EQUATE `QOS_CLASS3 = &H03
%EQUATE `QOS_CLASS4 = &H04
' // Size = 2 bytes
TYPE ATM_QOS_CLASS_IE BYTE
 QOSClassForward AS BYTE ' UCHAR
 QOSClassBackward AS BYTE ' UCHAR
END TYPE
'/*
' * values used for the TypeOfNetworkId field in struct ATM_TRANSIT_NETWORK_SELECTION_IE
' */
%EQUATE `TNS_TYPE_NATIONAL = &H40
'/*
' * values used for the NetworkIdPlan field in struct ATM_TRANSIT_NETWORK_SELECTION_IE
' */
%EQUATE `TNS_PLAN_CARRIER_ID_CODE = &H01
' // Size = 4 bytes
TYPE ATM_TRANSIT_NETWORK_SELECTION_IE BYTE
 TypeOfNetworkId AS BYTE ' UCHAR
 NetworkIdPlan AS BYTE ' UCHAR
 NetworkIdLength AS BYTE ' UCHAR
 NetworkId(0) AS BYTE ' UCHAR[1] - variable-length array
END TYPE
'/*
' * ATM specific Ioctl codes
' */
%EQUATE `SIO_GET_NUMBER_OF_ATM_DEVICES = &H50160001
%EQUATE `SIO_GET_ATM_ADDRESS = &Hd0160002
%EQUATE `SIO_ASSOCIATE_PVC = &H90160003
%EQUATE `SIO_GET_ATM_CONNECTION_ID = &H50160004
' /* ATM Connection Identifier */
' // Size = 12 bytes
TYPE ATM_CONNECTION_ID DWORD
 DeviceNumber AS DWORD
 VPI AS DWORD
 VCI AS DWORD
END TYPE
'/*
' * Input buffer format for SIO_ASSOCIATE_PVC
' */
' // Size = 84 bytes
TYPE ATM_PVC_PARAMS DWORD
 PvcConnectionId AS ATM_CONNECTION_ID
 PvcQos AS QOS
END TYPE
'#include <poppack.h>
#ENDIF
