1/*
  2 * atm.h
  3 *
  4 * ATM support
  5 *
  6 * This file is part of the w32api package.
  7 *
  8 * Contributors:
  9 *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
 10 *
 11 * THIS SOFTWARE IS NOT COPYRIGHTED
 12 *
 13 * This source code is offered for use in the public domain. You may
 14 * use, modify or distribute it freely.
 15 *
 16 * This code is distributed in the hope that it will be useful but
 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 18 * DISCLAIMED. This includes but is not limited to warranties of
 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 20 *
 21 */
 22
 23#pragma once
 24
 25#ifdef __cplusplus
 26extern "C" {
 27#endif
 28
 29typedef ULONG ATM_ADDRESSTYPE;
 30
 31#define SAP_TYPE_NSAP                  1
 32#define SAP_TYPE_E164                  2
 33
 34#define ATM_MEDIA_SPECIFIC             1
 35
 36#define CALLMGR_SPECIFIC_Q2931         1
 37
 38#define ATM_NSAP                       0
 39#define ATM_E164                       1
 40
 41#define ATM_MAC_ADDRESS_LENGTH         6
 42#define ATM_ADDRESS_LENGTH             20
 43
 44typedef ULONG ATM_AAL_TYPE, *PATM_AAL_TYPE;
 45
 46#define AAL_TYPE_AAL0                  1
 47#define AAL_TYPE_AAL1                  2
 48#define AAL_TYPE_AAL34                 4
 49#define AAL_TYPE_AAL5                  8
 50
 51#define ATM_ADDR_BLANK_CHAR            L' '
 52#define ATM_ADDR_E164_START_CHAR       L'+'
 53#define ATM_ADDR_PUNCTUATION_CHAR      L'.'
 54
 55typedef enum _Q2931_IE_TYPE {
 56  IE_AALParameters,
 57  IE_TrafficDescriptor,
 58  IE_BroadbandBearerCapability,
 59  IE_BHLI,
 60  IE_BLLI,
 61  IE_CalledPartyNumber,
 62  IE_CalledPartySubaddress,
 63  IE_CallingPartyNumber,
 64  IE_CallingPartySubaddress,
 65  IE_Cause,
 66  IE_QOSClass,
 67  IE_TransitNetworkSelection,
 68  IE_BroadbandSendingComplete,
 69  IE_LIJCallId,
 70  IE_Raw
 71} Q2931_IE_TYPE;
 72
 73typedef struct _Q2931_IE {
 74  Q2931_IE_TYPE IEType;
 75  ULONG IELength;
 76  UCHAR IE[1];
 77} Q2931_IE, *PQ2931_IE;
 78
 79typedef struct _AAL1_PARAMETERS {
 80  UCHAR Subtype;
 81  UCHAR CBRRate;
 82  USHORT Multiplier;
 83  UCHAR SourceClockRecoveryMethod;
 84  UCHAR ErrorCorrectionMethod;
 85  USHORT StructuredDataTransferBlocksize;
 86  UCHAR PartiallyFilledCellsMethod;
 87} AAL1_PARAMETERS, *PAAL1_PARAMETERS;
 88
 89typedef struct _AAL34_PARAMETERS {
 90  USHORT ForwardMaxCPCSSDUSize;
 91  USHORT BackwardMaxCPCSSDUSize;
 92  USHORT LowestMID;
 93  USHORT HighestMID;
 94  UCHAR SSCSType;
 95} AAL34_PARAMETERS, *PAAL34_PARAMETERS;
 96
 97/* AAL5_PARAMETERS.Mode constants */
 98#define AAL5_MODE_MESSAGE              0x01
 99#define AAL5_MODE_STREAMING            0x02
100
101/* AAL5_PARAMETERS.SSCSType constants */
102#define AAL5_SSCS_NULL                 0x00
103#define AAL5_SSCS_SSCOP_ASSURED        0x01
104#define AAL5_SSCS_SSCOP_NON_ASSURED    0x02
105#define AAL5_SSCS_FRAME_RELAY          0x04
106
107typedef struct _AAL5_PARAMETERS {
108  ULONG ForwardMaxCPCSSDUSize;
109  ULONG BackwardMaxCPCSSDUSize;
110  UCHAR Mode;
111  UCHAR SSCSType;
112} AAL5_PARAMETERS, *PAAL5_PARAMETERS;
113
114typedef struct _AALUSER_PARAMETERS {
115  ULONG UserDefined;
116} AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
117
118typedef struct _AAL_PARAMETERS_IE {
119  ATM_AAL_TYPE AALType;
120  union {
121    AAL1_PARAMETERS AAL1Parameters;
122    AAL34_PARAMETERS AAL34Parameters;
123    AAL5_PARAMETERS AAL5Parameters;
124    AALUSER_PARAMETERS AALUserParameters;
125  } AALSpecificParameters;
126} AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
127
128struct _ATM_AAL5_INFO {
129  BOOLEAN CellLossPriority;
130  UCHAR UserToUserIndication;
131  UCHAR CommonPartIndicator;
132};
133
134struct _ATM_AAL0_INFO {
135  BOOLEAN CellLossPriority;
136  UCHAR PayLoadTypeIdentifier;
137};
138
139typedef struct _ATM_AAL_OOB_INFO {
140  ATM_AAL_TYPE AalType;
141  union {
142    struct _ATM_AAL5_INFO ATM_AAL5_INFO;
143    struct _ATM_AAL0_INFO ATM_AAL0_INFO;
144  };
145} ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
146
147typedef struct _ATM_ADDRESS {
148  ATM_ADDRESSTYPE AddressType;
149  ULONG NumberOfDigits;
150  UCHAR Address[ATM_ADDRESS_LENGTH];
151} ATM_ADDRESS, *PATM_ADDRESS;
152
153#define ATM_PHYS_RATE_SONET_STS3C      155520000
154#define ATM_PHYS_RATE_IBM_25           25600000
155
156#define ATM_CELL_TRANSFER_CAPACITY_SONET_STS3C   149760000
157#define ATM_CELL_TRANSFER_CAPACITY_IBM_25        25125926
158
159#define ATM_USER_DATA_RATE_SONET_155   1356317
160#define ATM_USER_DATA_RATE_IBM_25      227556
161
162/* ATM_BHLI_IE.HighLayerInfoType constants */
163#define BHLI_ISO                       0x00
164#define BHLI_UserSpecific              0x01
165#define BHLI_HighLayerProfile          0x02
166#define BHLI_VendorSpecificAppId       0x03
167
168typedef struct _ATM_BHLI_IE {
169  ULONG HighLayerInfoType;
170  ULONG HighLayerInfoLength;
171  UCHAR HighLayerInfo[8];
172} ATM_BHLI_IE, *PATM_BHLI_IE;
173
174/* ATM_BLLI_IE.Layer2Protocol constants */
175#define BLLI_L2_ISO_1745               0x01
176#define BLLI_L2_Q921                   0x02
177#define BLLI_L2_X25L                   0x06
178#define BLLI_L2_X25M                   0x07
179#define BLLI_L2_ELAPB                  0x08
180#define BLLI_L2_HDLC_ARM               0x09
181#define BLLI_L2_HDLC_NRM               0x0A
182#define BLLI_L2_HDLC_ABM               0x0B
183#define BLLI_L2_LLC                    0x0C
184#define BLLI_L2_X75                    0x0D
185#define BLLI_L2_Q922                   0x0E
186#define BLLI_L2_USER_SPECIFIED         0x10
187#define BLLI_L2_ISO_7776               0x11
188
189/* ATM_BLLI_IE.Layer3Protocol constants */
190#define BLLI_L3_X25                    0x06
191#define BLLI_L3_ISO_8208               0x07
192#define BLLI_L3_X223                   0x08
193#define BLLI_L3_SIO_8473               0x09
194#define BLLI_L3_T70                    0x0A
195#define BLLI_L3_ISO_TR9577             0x0B
196#define BLLI_L3_USER_SPECIFIED         0x10
197
198/* ATM_BLLI_IE.Layer3IPI constants */
199#define BLLI_L3_IPI_SNAP               0x80
200#define BLLI_L3_IPI_IP                 0xCC
201
202typedef struct _ATM_BLLI_IE {
203  ULONG Layer2Protocol;
204  UCHAR Layer2Mode;
205  UCHAR Layer2WindowSize;
206  ULONG Layer2UserSpecifiedProtocol;
207  ULONG Layer3Protocol;
208  UCHAR Layer3Mode;
209  UCHAR Layer3DefaultPacketSize;
210  UCHAR Layer3PacketWindowSize;
211  ULONG Layer3UserSpecifiedProtocol;
212  ULONG Layer3IPI;
213  UCHAR SnapId[5];
214} ATM_BLLI_IE, *PATM_BLLI_IE;
215
216/* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
217#define BCOB_A                         0x00
218#define BCOB_C                         0x01
219#define BCOB_X                         0x02
220
221/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
222#define TT_NOIND                       0x00
223#define TT_CBR                         0x04
224#define TT_VBR                         0x08
225
226/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
227#define TR_NOIND                       0x00
228#define TR_END_TO_END                  0x01
229#define TR_NO_END_TO_END               0x02
230
231/* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
232#define CLIP_NOT                       0x00
233#define CLIP_SUS                       0x20
234
235/* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
236#define UP_P2P                         0x00
237#define UP_P2MP                        0x01
238
239typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
240  UCHAR BearerClass;
241  UCHAR TrafficType;
242  UCHAR TimingRequirements;
243  UCHAR ClippingSusceptability;
244  UCHAR UserPlaneConnectionConfig;
245} ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
246
247typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
248  UCHAR SendingComplete;
249} ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
250
251typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
252  ATM_ADDRESS Number;
253  UCHAR PresentationIndication;
254  UCHAR ScreeningIndicator;
255} ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
256
257/* ATM_CAUSE_IE.Location constants */
258#define ATM_CAUSE_LOC_USER                  0x00
259#define ATM_CAUSE_LOC_PRIVATE_LOCAL         0x01
260#define ATM_CAUSE_LOC_PUBLIC_LOCAL          0x02
261#define ATM_CAUSE_LOC_TRANSIT_NETWORK       0x03
262#define ATM_CAUSE_LOC_PUBLIC_REMOTE         0x04
263#define ATM_CAUSE_LOC_PRIVATE_REMOTE        0x05
264#define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK 0x07
265#define ATM_CAUSE_LOC_BEYOND_INTERWORKING   0x0A
266
267/* ATM_CAUSE_IE.Cause constants */
268#define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
269#define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
270#define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
271#define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
272#define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
273#define ATM_CAUSE_USER_BUSY                         0x11
274#define ATM_CAUSE_NO_USER_RESPONDING                0x12
275#define ATM_CAUSE_CALL_REJECTED                     0x15
276#define ATM_CAUSE_NUMBER_CHANGED                    0x16
277#define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
278#define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
279#define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
280#define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
281#define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
282#define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
283#define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
284#define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
285#define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
286#define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
287#define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
288#define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
289#define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
290#define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
291#define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
292#define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
293#define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
294#define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
295#define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
296#define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
297#define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
298#define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
299#define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
300#define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
301#define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
302#define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
303#define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
304#define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
305#define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
306#define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
307#define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
308#define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
309#define ATM_CAUSE_PROTOCOL_ERROR                    0x6F
310
311/* ATM_CAUSE_IE.Diagnostics constants */
312#define ATM_CAUSE_COND_UNKNOWN            0x00
313#define ATM_CAUSE_COND_PERMANENT          0x01
314#define ATM_CAUSE_COND_TRANSIENT          0x02
315#define ATM_CAUSE_REASON_USER             0x00
316#define ATM_CAUSE_REASON_IE_MISSING       0x04
317#define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
318#define ATM_CAUSE_PU_PROVIDER             0x00
319#define ATM_CAUSE_PU_USER                 0x08
320#define ATM_CAUSE_NA_NORMAL               0x00
321#define ATM_CAUSE_NA_ABNORMAL             0x04
322
323typedef struct _ATM_CAUSE_IE {
324  UCHAR Location;
325  UCHAR Cause;
326  UCHAR DiagnosticsLength;
327  UCHAR Diagnostics[4];
328} ATM_CAUSE_IE, *PATM_CAUSE_IE;
329
330
331typedef ULONG ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
332
333/* ATM_FLOW_PARAMETERS.ServiceCategory constants */
334#define ATM_SERVICE_CATEGORY_CBR       1
335#define ATM_SERVICE_CATEGORY_VBR       2
336#define ATM_SERVICE_CATEGORY_UBR       4
337#define ATM_SERVICE_CATEGORY_ABR       8
338
339/* ATM_FLOW_PARAMETERS.Reserved1 constants */
340#define ATM_FLOW_PARAMS_RSVD1_MPP      0x01
341
342#ifndef SAP_FIELD_ABSENT
343#define SAP_FIELD_ABSENT ((ULONG)0xfffffffe)
344#endif
345
346#ifndef SAP_FIELD_ANY
347#define SAP_FIELD_ANY ((ULONG)0xffffffff)
348#endif
349
350#define SAP_FIELD_ANY_AESA_SEL ((ULONG)0xfffffffa)
351#define SAP_FIELD_ANY_AESA_REST ((ULONG)0xfffffffb)
352
353typedef struct _ATM_FLOW_PARAMETERS {
354  ATM_SERVICE_CATEGORY ServiceCategory;
355  ULONG AverageCellRate;
356  ULONG PeakCellRate;
357  ULONG MinimumCellRate;
358  ULONG InitialCellRate;
359  ULONG BurstLengthCells;
360  ULONG MaxSduSize;
361  ULONG TransientBufferExposure;
362  ULONG CumulativeRMFixedRTT;
363  UCHAR RateIncreaseFactor;
364  UCHAR RateDecreaseFactor;
365  USHORT ACRDecreaseTimeFactor;
366  UCHAR MaximumCellsPerForwardRMCell;
367  UCHAR MaximumForwardRMCellInterval;
368  UCHAR CutoffDecreaseFactor;
369  UCHAR Reserved1;
370  ULONG MissingRMCellCount;
371  ULONG Reserved2;
372  ULONG Reserved3;
373} ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
374
375typedef struct _ATM_VPIVCI {
376  ULONG Vpi;
377  ULONG Vci;
378} ATM_VPIVCI, *PATM_VPIVCI;
379
380typedef struct _ATM_MEDIA_PARAMETERS {
381  ATM_VPIVCI ConnectionId;
382  ATM_AAL_TYPE AALType;
383  ULONG CellDelayVariationCLP0;
384  ULONG CellDelayVariationCLP1;
385  ULONG CellLossRatioCLP0;
386  ULONG CellLossRatioCLP1;
387  ULONG CellTransferDelayCLP0;
388  ULONG CellTransferDelayCLP1;
389  ULONG DefaultCLP;
390  ATM_FLOW_PARAMETERS Transmit;
391  ATM_FLOW_PARAMETERS Receive;
392} ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
393
394typedef struct _ATM_PVC_SAP {
395  ATM_BLLI_IE Blli;
396  ATM_BHLI_IE Bhli;
397} ATM_PVC_SAP, *PATM_PVC_SAP;
398
399/* ATM_QOS_CLASS_IE constants */
400#define QOS_CLASS0                     0x00
401#define QOS_CLASS1                     0x01
402#define QOS_CLASS2                     0x02
403#define QOS_CLASS3                     0x03
404#define QOS_CLASS4                     0x04
405
406typedef struct _ATM_QOS_CLASS_IE {
407  UCHAR QOSClassForward;
408  UCHAR QOSClassBackward;
409} ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
410
411typedef struct _ATM_RAW_IE {
412  ULONG RawIELength;
413  ULONG RawIEType;
414  UCHAR RawIEValue[1];
415} ATM_RAW_IE, *PATM_RAW_IE;
416
417typedef struct _ATM_SAP {
418  ATM_BLLI_IE Blli;
419  ATM_BHLI_IE Bhli;
420  ULONG NumberOfAddresses;
421  UCHAR Addresses[1];
422} ATM_SAP, *PATM_SAP;
423
424typedef struct _ATM_TRAFFIC_DESCRIPTOR {
425  ULONG PeakCellRateCLP0;
426  ULONG PeakCellRateCLP01;
427  ULONG SustainableCellRateCLP0;
428  ULONG SustainableCellRateCLP01;
429  ULONG MaximumBurstSizeCLP0;
430  ULONG MaximumBurstSizeCLP01;
431  BOOLEAN Tagging;
432} ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
433
434typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
435  ATM_TRAFFIC_DESCRIPTOR ForwardTD;
436  ATM_TRAFFIC_DESCRIPTOR BackwardTD;
437  BOOLEAN BestEffort;
438} ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
439
440/* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
441#define TNS_TYPE_NATIONAL              0x40
442
443/* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
444#define TNS_PLAN_CARRIER_ID_CODE       0x01
445
446typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
447  UCHAR TypeOfNetworkId;
448  UCHAR NetworkIdPlan;
449  UCHAR NetworkIdLength;
450  UCHAR NetworkId[1];
451} ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
452
453typedef struct _ATM_LIJ_CALLID_IE {
454  ULONG Identifier;
455} ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
456
457/* Q2931_ADD_PVC.Flags constants */
458#define CO_FLAG_SIGNALING_VC           0x00000001
459#define CO_FLAG_NO_DEST_SAP            0x00000002
460#define CO_FLAG_NO_LOCAL_SAP           0x00000004
461
462typedef struct _Q2931_ADD_PVC {
463  ATM_ADDRESS CalledParty;
464  ATM_ADDRESS CallingParty;
465  ATM_VPIVCI ConnectionId;
466  ATM_AAL_TYPE AALType;
467  ATM_FLOW_PARAMETERS ForwardFP;
468  ATM_FLOW_PARAMETERS BackwardFP;
469  ULONG Flags;
470  ATM_PVC_SAP LocalSap;
471  ATM_PVC_SAP DestinationSap;
472  BOOLEAN LIJIdPresent;
473  ATM_LIJ_CALLID_IE LIJId;
474} Q2931_ADD_PVC, *PQ2931_ADD_PVC;
475
476typedef struct _Q2931_DELETE_PVC {
477  ATM_VPIVCI ConnectionId;
478} Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
479
480typedef struct _CO_GET_CALL_INFORMATION {
481  ULONG CallInfoType;
482  ULONG CallInfoLength;
483  PVOID CallInfoBuffer;
484} CO_GET_CALL_INFORMATION, *PCO_GET_CALL_INFORMATION;
485
486typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE;
487typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE;
488typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE;
489
490typedef struct _Q2931_CALLMGR_PARAMETERS {
491  ATM_ADDRESS CalledParty;
492  ATM_ADDRESS CallingParty;
493  ULONG InfoElementCount;
494  UCHAR InfoElements[1];
495} Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
496
497typedef struct _ATM_VC_RATES_SUPPORTED {
498  ULONG MinCellRate;
499  ULONG MaxCellRate;
500} ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
501
502typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
503
504/* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
505#define ATM_SERVICE_REGISTRY_LECS      1
506#define ATM_SERVICE_REGISTRY_ANS       2
507
508typedef struct _ATM_SERVICE_ADDRESS_LIST {
509  ATM_SERVICE_REGISTRY_TYPE ServiceRegistryType;
510  ULONG NumberOfAddressesAvailable;
511  ULONG NumberOfAddressesReturned;
512  ATM_ADDRESS Address[1];
513} ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
514
515#ifdef __cplusplus
516}
517#endif