/*++
*******************************************************************************
* Copyright (c) 1990-99 Digi International Inc., All Rights Reserved				*
* 																										*
* This software contains proprietary and confidential information of Digi		*
* International Inc.  By accepting transfer of this copy, Recipient agrees		*
* to retain this software in confidence, to prevent disclosure to others,		*
* and to make no use of this software other than that for which it was			*
* delivered.  This is an unpublished copyrighted work of Digi International	*
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly	*
* prohibited.																						*
* 																										*
* Restricted Rights Legend																		*
*																										*
* Use, duplication, or disclosure by the Government is subject to					*
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in			*
* Technical Data and Computer Software clause at DFARS 252.227-7031 or			*
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -				*
* Restricted Rights at 48 CFR 52.227-19, as applicable.								*
*																										*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343				*
*																										*
*******************************************************************************

Module Name:

   SdxbIsdn.h

Abstract:

   Header file for IOCTL function definitions, typedefs and
   structures for S/Dxb modem calls using ISDN call control.

Author:

   Sandy Haapala

--*/

#ifndef _SDXBISDN_
#define _SDXBISDN_

#ifdef _NTDDK_
#include <devioctl.h>		// Kernelmode drivers need this.  Resides in ddk.
#else
#include <winioctl.h>		// Usermode apps need this.  Resides in msdev\include.
#endif


///////////////////////////////////////////////////////////////////////////////
//
//  API IOCTLs
//

#define IOCTL_DIGI_SDXB_XN_PUT CTL_CODE(FILE_DEVICE_SERIAL_PORT,		\
                               2049,                                 \
                               METHOD_BUFFERED,                      \
                               FILE_ANY_ACCESS)

#define IOCTL_DIGI_SDXB_XN_GET CTL_CODE(FILE_DEVICE_SERIAL_PORT,		\
                               2050,                                 \
                               METHOD_BUFFERED,                      \
                               FILE_ANY_ACCESS)

///////////////////////////////////////////////////////////////////////////////
//
// IOCTL Structures
// 
// These structures define the data passed via IOCTLs defined above.
// Structure field labeling conventions: 
// 
//    IN:   Input to the request.
//    OUT:  Output returned when the request has completed.  Should be
//          initialized to zero.
//    RSVD: Reserved. Must be initialized to zero.
//

typedef struct XN_PUT
{
	IN PVOID       pControl;	// input control buffer
	IN ULONG       cbControl;	// length of control
	IN PVOID       pData;	// input data buffer
	IN ULONG       cbData;	// length of data

	PVOID     pProviderControl;		// locked control for serviceProvider use
	PVOID     pProviderData;			// locked data for service provider use
} XN_PUT, *PXN_PUT;

typedef struct XN_GET
{
	IN OUT PVOID   pControl;	// control buffer
	IN ULONG       cbMaxControl;// length of control buffer
	OUT ULONG      cbControl;	// count of bytes placed in control buffer
	IN OUT PVOID   pData;	// data buffer
	IN ULONG       cbMaxData;	// length of data buffer
	OUT ULONG      cbData;	// count of bytes placed in data buffer

	PVOID     pProviderControl;		// locked control for serviceProvider use
	PVOID     pProviderData;			// locked data for service provider use
} XN_GET, *PXN_GET;


#endif // _SDXBISDN_

