182 lines
4.3 KiB
C
182 lines
4.3 KiB
C
//****************************************************************************
|
|
//
|
|
// Microsoft NT Remote Access Service
|
|
//
|
|
// Copyright (C) 1992-93 Microsft Corporation. All rights reserved.
|
|
//
|
|
// Filename: serialpr.h
|
|
//
|
|
// Revision History
|
|
//
|
|
// Sep 3, 1992 J. Perry Hannah Created
|
|
//
|
|
//
|
|
// Description: This file contains structure and constant definitions
|
|
// SERIAL.DLL. This file is used used only by SERIAL.DLL
|
|
// source files, and is not public in any way.
|
|
//
|
|
//****************************************************************************
|
|
|
|
|
|
#ifndef _SERIAL_DLL_PRIVATE_
|
|
#define _SERIAL_DLL_PRIVATE_
|
|
|
|
|
|
|
|
|
|
//* Defines ****************************************************************
|
|
//
|
|
|
|
#define RAS_PATH "\\ras\\" //*
|
|
#define SERIAL_INI_FILENAME "serial.ini"
|
|
#define ASYNCMAC_FILENAME L"\\\\.\\ASYNCMAC"
|
|
#define ASYNCMAC_BINDING_NAME "\\DEVICE\\ASYNCMAC01"
|
|
|
|
#define FILE_EXCLUSIVE_MODE 0
|
|
#define HANDLE_EXCEPTION 1L
|
|
#define CONTINUE_SEARCH 0
|
|
#define EXCEPT_RAS_MEDIA 0x00A00002 //*
|
|
|
|
#define INPUT_QUEUE_SIZE 1514 // ???
|
|
#define OUTPUT_QUEUE_SIZE 1514 // ???
|
|
#define FROM_TOP_OF_FILE TRUE
|
|
|
|
#define USE_DEVICE_INI_DEFAULT '\x01'
|
|
#define INVALID_RASENDPOINT 0xffff
|
|
|
|
|
|
|
|
|
|
//* Enumeration Types ******************************************************
|
|
//
|
|
|
|
// typedef enum DEVICETYPE DEVICETYPE; //*
|
|
|
|
enum DEVICETYPE
|
|
{
|
|
MODEM = 0,
|
|
PAD = 1,
|
|
SWITCH = 2
|
|
};
|
|
|
|
|
|
|
|
|
|
//* Macros *****************************************************************
|
|
//
|
|
|
|
#ifdef DEBUG
|
|
|
|
#define DebugPrintf(_args_) DbgPrntf _args_ //*
|
|
|
|
#else
|
|
|
|
#define DebugPrintf(_args_)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//* Data Structures ********************************************************
|
|
//
|
|
|
|
typedef struct SERIALPCB SERIALPCB;
|
|
|
|
struct SERIALPCB
|
|
{
|
|
SERIALPCB *pNextSPCB;
|
|
HANDLE hIOPort;
|
|
TCHAR szPortName[MAX_PORT_NAME];
|
|
|
|
HANDLE hAsyMac;
|
|
|
|
BOOL bErrorControlOn;
|
|
HANDLE uRasEndpoint;
|
|
|
|
DWORD dwActiveDSRMask ; // Stores whether DSR was active when the port
|
|
// was opened. (this is fixed)
|
|
DWORD dwMonitorDSRMask; // Used to store whether DSR should be
|
|
// monitored.(this may change during connection)
|
|
DWORD dwEventMask; //Used by WaitCommEvent
|
|
DWORD dwPreviousModemStatus; // used to detect changes in state
|
|
RAS_OVERLAPPED MonitorDevice; //Used by WaitCommEvent
|
|
RAS_OVERLAPPED SendReceive; //Used by WriteFile and ReadFile
|
|
|
|
DWORD Stats[NUM_RAS_SERIAL_STATS];
|
|
|
|
TCHAR szDeviceType[MAX_DEVICETYPE_NAME + 1];
|
|
TCHAR szDeviceName[MAX_DEVICE_NAME + 1];
|
|
TCHAR szCarrierBPS[MAX_BPS_STR_LEN];
|
|
TCHAR szDefaultOff[RAS_MAXLINEBUFLEN];
|
|
};
|
|
|
|
|
|
|
|
//* Error Return Codes for Internal Errors *********************************
|
|
//
|
|
// Internal errors are not expected after shipping. These errors are not
|
|
// normally reported to the user except as an internal error number.
|
|
//
|
|
|
|
#ifndef _INTERROR_
|
|
#include "interror.h"
|
|
#endif
|
|
|
|
|
|
#define ISER_BASE RAS_INTERNAL_ERROR_BASE + RIEB_ASYNCMEDIADLL
|
|
|
|
#define ERROR_SPCB_NOT_ON_LIST ISER_BASE + 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//* Local Prototypes *******************************************************
|
|
//
|
|
|
|
//* From serutil.c ---------------------------------------------------------
|
|
//
|
|
|
|
void AddPortToList(HANDLE hIOPort, char *pszPortName);
|
|
|
|
SERIALPCB* FindPortInList(HANDLE hIOPort, SERIALPCB **ppPrevSPCB);
|
|
|
|
SERIALPCB* FindPortNameInList(TCHAR *pszPortName);
|
|
|
|
void GetDefaultOffStr(HANDLE hIOPort, TCHAR *pszPortName);
|
|
|
|
void GetIniFileName(char *pszFileName, DWORD dwNameLen);
|
|
|
|
void GetMem(DWORD dSize, BYTE **ppMem); //*
|
|
|
|
void GetValueFromFile(TCHAR *pzPortName, TCHAR szKey[], TCHAR *pszValue);
|
|
|
|
DWORD InitCarrierBps(char *pszPortName, char *pszMaxCarrierBps);
|
|
|
|
void SetCommDefaults(HANDLE hIOPort, char *pszPortName);
|
|
|
|
void SetDcbDefaults(DCB *pDCB);
|
|
|
|
BOOL StrToUsage(char *pszStr, RASMAN_USAGE *peUsage);
|
|
|
|
DWORD UpdateStatistics(SERIALPCB *pSPCB);
|
|
|
|
DWORD ValueToNum(RAS_PARAMS *p);
|
|
|
|
BOOL ValueToBool(RAS_PARAMS *p);
|
|
|
|
|
|
|
|
#ifdef DEBUG
|
|
|
|
void DbgPrntf(const char * format, ...); //*
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif // _SERIAL_DLL_PRIVATE_
|