windows-nt/Source/XPSP1/NT/termsrv/cdmodem/inc/cdmodem.h
2020-09-26 16:20:57 +08:00

110 lines
2.9 KiB
C

/***************************************************************************
*
* CDMODEM.H
*
* This module contains private CD defines and structures
*
* Copyright 1996, Citrix Systems Inc.
*
* Author: Brad Pedersen (7/12/96)
*
* $Log: N:\NT\PRIVATE\CITRIX\CD\CDMODEM\INC\VCS\CDMODEM.H $
*
* Rev 1.1 06 Feb 1997 17:36:16 kurtp
* update
*
* Rev 1.0 16 Oct 1996 11:17:36 brucef
* Initial revision.
*
* Rev 1.3 25 Sep 1996 13:23:40 bradp
* update
*
* Rev 1.2 11 Sep 1996 17:52:20 brucef
* update
*
* Rev 1.1 05 Sep 1996 11:00:48 brucef
* update
*
* Rev 1.0 15 Jul 1996 11:04:00 bradp
* Initial revision.
*
*
*************************************************************************/
/*=============================================================================
== Defines
=============================================================================*/
#ifdef DBG
#define DBGPRINT(_arg) DbgPrint _arg
#else
#define DBGPRINT(_arg) { }
#endif
/*
* these TIMEOUT values should come from the Registry
*/
#define DISCONN_TIMEOUT (10*1000)
#define CALLBACK_TIMEOUT (60*1000)
/*
* Given the total buffer size of a buffer which contains
* a CDMODEM_ENDPOINT at the beginning, return the number of bytes
* following the CDMODEM_ENDPOINT structure.
*/
#define STACK_ENDPOINT_SIZE(_sz) ( \
(_sz) == 0 ? 0 : (_sz) - sizeof(CDMODEM_ENDPOINT) \
)
/*
* Given the address of a buffer which contains a CDMODEM_ENDPOINT
* at the beginning, return the address of the word following the
* CDMODEM_ENDPOINT structure.
*/
#define STACK_ENDPOINT_ADDR(_ep) ( \
(_ep) == NULL ? NULL : (PVOID)((BYTE *)(_ep) + sizeof(CDMODEM_ENDPOINT)) \
)
/*=============================================================================
== Structures
=============================================================================*/
/*
* Modem CD structure
*/
typedef struct _CDMODEM {
HANDLE hStack; // ica device driver stack handle
DEVICENAME DeviceName; // transport driver device name
HANDLE hPort; // modem port handle
HANDLE hCommDevice; // comm port handle
HANDLE hDiscEvent; // disconnect event handle, used by TAPI
} CDMODEM, * PCDMODEM;
/*
* The CDMODEM_ENDPOINT prefixes the ICA_STACK_ENDOINT on device
* connections that utilize a modem. The Length element must
* include not only the size of CDMODEM_ENDPOINT, but also the
* Endpoint which it preceeds.
*
* !!! WARNING !!!
* The length field must be in the same position within this
* structure as it is in the ICA_STACK_ENDPOINT structure (icadd.h>.
*/
typedef struct _CDMODEM_ENDPOINT {
ULONG Length; // length of ALL endpoint data
HANDLE hPort; // modem port handle
HANDLE hCommDevice; // comm port handle
HANDLE hDiscEvent; // disconnect event handle, used by TAPI
} CDMODEM_ENDPOINT, * PCDMODEM_ENDPOINT;