110 lines
2.9 KiB
C
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;
|
|
|
|
|