windows-nt/Source/XPSP1/NT/termsrv/drivers/td/tdasync/tdasync.h

91 lines
3.1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/***************************************************************************
*
* TDASYNC.H
*
* This module contains private TDASYNC defines and structures
*
* Copyright 1998, Microsoft
*
****************************************************************************/
//
// Miscellaneous defines... (original files noted)
//
#define EVENT_MODIFY_STATE 0x0002 // winnt.h
#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) // winnt.h
#define INFINITE 0xffffffff // winbase.w
#define WAIT_FAILED (ULONG)0xFFFFFFFF
#define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0 ) + 0 )
#define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0 ) + 0 )
#define WAIT_TIMEOUT STATUS_TIMEOUT
#define WAIT_IO_COMPLETION STATUS_USER_APC
/*
* Modem Status Flags (Copied from \nt\public\sdk\inc\winbase.h)
*/
#define MS_CTS_ON ((ULONG)0x0010)
#define MS_DSR_ON ((ULONG)0x0020)
#define MS_RING_ON ((ULONG)0x0040)
#define MS_RLSD_ON ((ULONG)0x0080)
//
// Events (Copied from \nt\public\sdk\inc\winbase.h)
//
#define EV_RXCHAR 0x0001 // Any Character received
#define EV_RXFLAG 0x0002 // Received certain character
#define EV_TXEMPTY 0x0004 // Transmitt Queue Empty
#define EV_CTS 0x0008 // CTS changed state
#define EV_DSR 0x0010 // DSR changed state
#define EV_RLSD 0x0020 // RLSD changed state
#define EV_BREAK 0x0040 // BREAK received
#define EV_ERR 0x0080 // Line status error occurred
#define EV_RING 0x0100 // Ring signal detected
#define EV_PERR 0x0200 // Printer error occured
#define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full
#define EV_EVENT1 0x0800 // Provider specific event 1
#define EV_EVENT2 0x1000 // Provider specific event 2
//
// File Structures - _OVERLAPPED
//
// Used by ZwDeviceIoControlFile
//
typedef struct _TDIOSTATUS {
ULONG Internal; // InternalHigh must follow immediately
ULONG InternalHigh;
ULONG Offset; // OffsetHigh must follow immediately
ULONG OffsetHigh;
HANDLE hEvent;
PKEVENT pEventObject; // pointer to hEvent's object
} TDIOSTATUS, *PTDIOSTATUS;
/*
* Async endpoint structure
*/
typedef struct _TDASYNC_ENDPOINT {
HANDLE hDevice; // handle for input and output
PFILE_OBJECT pFileObject; // Pointer to hDevice's File Object
PDEVICE_OBJECT pDeviceObject; // Pointer to hDevice's Device Object
PEPROCESS InitProcess; // process which opened endpoint
TDIOSTATUS SignalIoStatus; // TD- or CD-created status event
} TDASYNC_ENDPOINT, * PTDASYNC_ENDPOINT;
/*
* ASYNC TD structure
*/
typedef struct _TDASYNC {
TDASYNC_ENDPOINT Endpoint;
HANDLE hStatusEvent; // handle for status wait
PKEVENT pStatusEventObject; // points to hStatusEvent's object
ULONG EventMask; // input - RS-232 signal mask
ULONG fCommEventIoctl : 1; // Comm Event Ioctl Pending
ULONG fCloseEndpoint : 1; // if set, close endpoint on device close
} TDASYNC, * PTDASYNC;