ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntddser.h
Go to the documentation of this file.
00001 /*
00002  * ntddser.h
00003  *
00004  * Serial port driver interface
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef _NTDDSER_
00024 #define _NTDDSER_
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 /* GUIDs */
00031 
00032 DEFINE_GUID(GUID_DEVINTERFACE_COMPORT,
00033   0x86e0d1e0L, 0x8089, 0x11d0, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);
00034 
00035 #define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT
00036 
00037 DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,
00038   0x4D36E978L, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
00039 
00040 #define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
00041 
00042 #define IOCTL_SERIAL_CLEAR_STATS \
00043   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 36, METHOD_BUFFERED, FILE_ANY_ACCESS)
00044 #define IOCTL_SERIAL_CLR_DTR \
00045   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
00046 #define IOCTL_SERIAL_CLR_RTS \
00047   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
00048 #define IOCTL_SERIAL_CONFIG_SIZE \
00049   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 32, METHOD_BUFFERED, FILE_ANY_ACCESS)
00050 #define IOCTL_SERIAL_GET_BAUD_RATE \
00051   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
00052 #define IOCTL_SERIAL_GET_CHARS \
00053   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
00054 #define IOCTL_SERIAL_GET_COMMSTATUS \
00055   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 27, METHOD_BUFFERED, FILE_ANY_ACCESS)
00056 #define IOCTL_SERIAL_GET_DTRRTS \
00057   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
00058 #define IOCTL_SERIAL_GET_HANDFLOW \
00059   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
00060 #define IOCTL_SERIAL_GET_LINE_CONTROL \
00061   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
00062 #define IOCTL_SERIAL_GET_MODEM_CONTROL \
00063   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 37, METHOD_BUFFERED, FILE_ANY_ACCESS)
00064 #define IOCTL_SERIAL_GET_MODEMSTATUS \
00065   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
00066 #define IOCTL_SERIAL_GET_PROPERTIES \
00067   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 29, METHOD_BUFFERED, FILE_ANY_ACCESS)
00068 #define IOCTL_SERIAL_GET_STATS \
00069   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 35, METHOD_BUFFERED, FILE_ANY_ACCESS)
00070 #define IOCTL_SERIAL_GET_TIMEOUTS \
00071   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
00072 #define IOCTL_SERIAL_GET_WAIT_MASK \
00073   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 16, METHOD_BUFFERED, FILE_ANY_ACCESS)
00074 #define IOCTL_SERIAL_IMMEDIATE_CHAR \
00075   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
00076 #define IOCTL_SERIAL_LSRMST_INSERT \
00077   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
00078 #define IOCTL_SERIAL_PURGE \
00079   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
00080 #define IOCTL_SERIAL_RESET_DEVICE \
00081   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
00082 #define IOCTL_SERIAL_SET_BAUD_RATE \
00083   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
00084 #define IOCTL_SERIAL_SET_BREAK_ON \
00085   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
00086 #define IOCTL_SERIAL_SET_BREAK_OFF \
00087   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
00088 #define IOCTL_SERIAL_SET_CHARS \
00089   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
00090 #define IOCTL_SERIAL_SET_DTR \
00091   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
00092 #define IOCTL_SERIAL_SET_FIFO_CONTROL \
00093   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
00094 #define IOCTL_SERIAL_SET_HANDFLOW \
00095   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
00096 #define IOCTL_SERIAL_SET_LINE_CONTROL \
00097   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
00098 #define IOCTL_SERIAL_SET_MODEM_CONTROL \
00099   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 38, METHOD_BUFFERED, FILE_ANY_ACCESS)
00100 #define IOCTL_SERIAL_SET_QUEUE_SIZE \
00101   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
00102 #define IOCTL_SERIAL_SET_RTS \
00103   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
00104 #define IOCTL_SERIAL_SET_TIMEOUTS \
00105   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
00106 #define IOCTL_SERIAL_SET_WAIT_MASK \
00107   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
00108 #define IOCTL_SERIAL_SET_XOFF \
00109   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
00110 #define IOCTL_SERIAL_SET_XON \
00111   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
00112 #define IOCTL_SERIAL_WAIT_ON_MASK \
00113   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 18, METHOD_BUFFERED, FILE_ANY_ACCESS)
00114 #define IOCTL_SERIAL_XOFF_COUNTER \
00115   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 28, METHOD_BUFFERED, FILE_ANY_ACCESS)
00116 
00117 #define IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS \
00118   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
00119 #define IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE \
00120   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
00121 #define IOCTL_SERIAL_INTERNAL_DO_WAIT_WAKE \
00122   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
00123 #define IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS \
00124   CTL_CODE (FILE_DEVICE_SERIAL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
00125 
00126 #define IOCTL_SERENUM_PORT_DESC \
00127   CTL_CODE (FILE_DEVICE_SERENUM, 130, METHOD_BUFFERED, FILE_ANY_ACCESS)
00128 #define IOCTL_SERENUM_GET_PORT_NAME \
00129   CTL_CODE (FILE_DEVICE_SERENUM, 131, METHOD_BUFFERED, FILE_ANY_ACCESS)
00130 
00131 #define IOCTL_INTERNAL_SERENUM_REMOVE_SELF \
00132   CTL_CODE (FILE_DEVICE_SERENUM, 129, METHOD_NEITHER, FILE_ANY_ACCESS)
00133 
00134 
00135 typedef struct _SERIAL_BAUD_RATE {
00136   ULONG  BaudRate;
00137 } SERIAL_BAUD_RATE, *PSERIAL_BAUD_RATE;
00138 
00139 /* SERIAL_BAUD_RATE.BaudRate constants */
00140 #define SERIAL_BAUD_075                   0x00000001
00141 #define SERIAL_BAUD_110                   0x00000002
00142 #define SERIAL_BAUD_134_5                 0x00000004
00143 #define SERIAL_BAUD_150                   0x00000008
00144 #define SERIAL_BAUD_300                   0x00000010
00145 #define SERIAL_BAUD_600                   0x00000020
00146 #define SERIAL_BAUD_1200                  0x00000040
00147 #define SERIAL_BAUD_1800                  0x00000080
00148 #define SERIAL_BAUD_2400                  0x00000100
00149 #define SERIAL_BAUD_4800                  0x00000200
00150 #define SERIAL_BAUD_7200                  0x00000400
00151 #define SERIAL_BAUD_9600                  0x00000800
00152 #define SERIAL_BAUD_14400                 0x00001000
00153 #define SERIAL_BAUD_19200                 0x00002000
00154 #define SERIAL_BAUD_38400                 0x00004000
00155 #define SERIAL_BAUD_56K                   0x00008000
00156 #define SERIAL_BAUD_128K                  0x00010000
00157 #define SERIAL_BAUD_115200                0x00020000
00158 #define SERIAL_BAUD_57600                 0x00040000
00159 #define SERIAL_BAUD_USER                  0x10000000
00160 
00161 typedef struct _SERIAL_CHARS {
00162   UCHAR  EofChar;
00163   UCHAR  ErrorChar;
00164   UCHAR  BreakChar;
00165   UCHAR  EventChar;
00166   UCHAR  XonChar;
00167   UCHAR  XoffChar;
00168 } SERIAL_CHARS, *PSERIAL_CHARS;
00169 
00170 typedef struct _SERIAL_STATUS {
00171   ULONG  Errors;
00172   ULONG  HoldReasons;
00173   ULONG  AmountInInQueue;
00174   ULONG  AmountInOutQueue;
00175   BOOLEAN  EofReceived;
00176   BOOLEAN  WaitForImmediate;
00177 } SERIAL_STATUS, *PSERIAL_STATUS;
00178 
00179 typedef struct _SERIAL_HANDFLOW {
00180     ULONG  ControlHandShake;
00181     ULONG  FlowReplace;
00182     LONG  XonLimit;
00183     LONG  XoffLimit;
00184 } SERIAL_HANDFLOW, *PSERIAL_HANDFLOW;
00185 
00186 #define SERIAL_DTR_MASK                   0x00000003
00187 #define SERIAL_DTR_CONTROL                0x00000001
00188 #define SERIAL_DTR_HANDSHAKE              0x00000002
00189 #define SERIAL_CTS_HANDSHAKE              0x00000008
00190 #define SERIAL_DSR_HANDSHAKE              0x00000010
00191 #define SERIAL_DCD_HANDSHAKE              0x00000020
00192 #define SERIAL_OUT_HANDSHAKEMASK          0x00000038
00193 #define SERIAL_DSR_SENSITIVITY            0x00000040
00194 #define SERIAL_ERROR_ABORT                0x80000000
00195 #define SERIAL_CONTROL_INVALID            0x7fffff84
00196 #define SERIAL_AUTO_TRANSMIT              0x00000001
00197 #define SERIAL_AUTO_RECEIVE               0x00000002
00198 #define SERIAL_ERROR_CHAR                 0x00000004
00199 #define SERIAL_NULL_STRIPPING             0x00000008
00200 #define SERIAL_BREAK_CHAR                 0x00000010
00201 #define SERIAL_RTS_MASK                   0x000000c0
00202 #define SERIAL_RTS_CONTROL                0x00000040
00203 #define SERIAL_RTS_HANDSHAKE              0x00000080
00204 #define SERIAL_TRANSMIT_TOGGLE            0x000000c0
00205 #define SERIAL_XOFF_CONTINUE              0x80000000
00206 #define SERIAL_FLOW_INVALID               0x7fffff20
00207 
00208 typedef struct _SERIAL_LINE_CONTROL {
00209   UCHAR  StopBits;
00210   UCHAR  Parity;
00211   UCHAR  WordLength;
00212 } SERIAL_LINE_CONTROL, *PSERIAL_LINE_CONTROL;
00213 
00214 /* SERIAL_LINE_CONTROL.StopBits constants */
00215 #define STOP_BIT_1                        0x00
00216 #define STOP_BITS_1_5                     0x01
00217 #define STOP_BITS_2                       0x02
00218 
00219 /* SERIAL_LINE_CONTROL.Parity constants */
00220 #define NO_PARITY                         0x00
00221 #define ODD_PARITY                        0x01
00222 #define EVEN_PARITY                       0x02
00223 #define MARK_PARITY                       0x03
00224 #define SPACE_PARITY                      0x04
00225 
00226 /* IOCTL_SERIAL_(GET_MODEM_CONTROL, SET_MODEM_CONTROL) flags */
00227 #define SERIAL_IOC_MCR_DTR                0x00000001
00228 #define SERIAL_IOC_MCR_RTS                0x00000002
00229 #define SERIAL_IOC_MCR_OUT1               0x00000004
00230 #define SERIAL_IOC_MCR_OUT2               0x00000008
00231 #define SERIAL_IOC_MCR_LOOP               0x00000010
00232 
00233 typedef struct _SERIAL_COMMPROP {
00234   USHORT  PacketLength;
00235   USHORT  PacketVersion;
00236   ULONG  ServiceMask;
00237   ULONG  Reserved1;
00238   ULONG  MaxTxQueue;
00239   ULONG  MaxRxQueue;
00240   ULONG  MaxBaud;
00241   ULONG  ProvSubType;
00242   ULONG  ProvCapabilities;
00243   ULONG  SettableParams;
00244   ULONG  SettableBaud;
00245   USHORT  SettableData;
00246   USHORT  SettableStopParity;
00247   ULONG  CurrentTxQueue;
00248   ULONG  CurrentRxQueue;
00249   ULONG  ProvSpec1;
00250   ULONG  ProvSpec2;
00251   WCHAR  ProvChar[1];
00252 } SERIAL_COMMPROP, *PSERIAL_COMMPROP;
00253 
00254 /* SERIAL_COMMPROP.SettableParams flags */
00255 #define SERIAL_SP_PARITY                  0x0001
00256 #define SERIAL_SP_BAUD                    0x0002
00257 #define SERIAL_SP_DATABITS                0x0004
00258 #define SERIAL_SP_STOPBITS                0x0008
00259 #define SERIAL_SP_HANDSHAKING             0x0010
00260 #define SERIAL_SP_PARITY_CHECK            0x0020
00261 #define SERIAL_SP_CARRIER_DETECT          0x0040
00262 
00263 /* SERIAL_COMMPROP.ProvCapabilities flags */
00264 #define SERIAL_PCF_DTRDSR                 0x00000001
00265 #define SERIAL_PCF_RTSCTS                 0x00000002
00266 #define SERIAL_PCF_CD                     0x00000004
00267 #define SERIAL_PCF_PARITY_CHECK           0x00000008
00268 #define SERIAL_PCF_XONXOFF                0x00000010
00269 #define SERIAL_PCF_SETXCHAR               0x00000020
00270 #define SERIAL_PCF_TOTALTIMEOUTS          0x00000040
00271 #define SERIAL_PCF_INTTIMEOUTS            0x00000080
00272 #define SERIAL_PCF_SPECIALCHARS           0x00000100
00273 #define SERIAL_PCF_16BITMODE              0x00000200
00274 
00275 /* SERIAL_COMMPROP.SettableData flags */
00276 #define SERIAL_DATABITS_5                 0x0001
00277 #define SERIAL_DATABITS_6                 0x0002
00278 #define SERIAL_DATABITS_7                 0x0004
00279 #define SERIAL_DATABITS_8                 0x0008
00280 #define SERIAL_DATABITS_16                0x0010
00281 #define SERIAL_DATABITS_16X               0x0020
00282 
00283 /* SERIAL_COMMPROP.SettableStopParity flags */
00284 #define SERIAL_STOPBITS_10                0x0001
00285 #define SERIAL_STOPBITS_15                0x0002
00286 #define SERIAL_STOPBITS_20                0x0004
00287 #define SERIAL_PARITY_NONE                0x0100
00288 #define SERIAL_PARITY_ODD                 0x0200
00289 #define SERIAL_PARITY_EVEN                0x0400
00290 #define SERIAL_PARITY_MARK                0x0800
00291 #define SERIAL_PARITY_SPACE               0x1000
00292 
00293 typedef struct _SERIALPERF_STATS {
00294   ULONG  ReceivedCount;
00295   ULONG  TransmittedCount;
00296   ULONG  FrameErrorCount;
00297   ULONG  SerialOverrunErrorCount;
00298   ULONG  BufferOverrunErrorCount;
00299   ULONG  ParityErrorCount;
00300 } SERIALPERF_STATS, *PSERIALPERF_STATS;
00301 
00302 typedef struct _SERIAL_TIMEOUTS {
00303   ULONG  ReadIntervalTimeout;
00304   ULONG  ReadTotalTimeoutMultiplier;
00305   ULONG  ReadTotalTimeoutConstant;
00306   ULONG  WriteTotalTimeoutMultiplier;
00307   ULONG  WriteTotalTimeoutConstant;
00308 } SERIAL_TIMEOUTS, *PSERIAL_TIMEOUTS;
00309 
00310 /* IOCTL_SERIAL_(GET_WAIT_MASK, SET_WAIT_MASK, WAIT_ON_MASK) flags */
00311 #define SERIAL_EV_RXCHAR                  0x0001
00312 #define SERIAL_EV_RXFLAG                  0x0002
00313 #define SERIAL_EV_TXEMPTY                 0x0004
00314 #define SERIAL_EV_CTS                     0x0008
00315 #define SERIAL_EV_DSR                     0x0010
00316 #define SERIAL_EV_RLSD                    0x0020
00317 #define SERIAL_EV_BREAK                   0x0040
00318 #define SERIAL_EV_ERR                     0x0080
00319 #define SERIAL_EV_RING                    0x0100
00320 #define SERIAL_EV_PERR                    0x0200
00321 #define SERIAL_EV_RX80FULL                0x0400
00322 #define SERIAL_EV_EVENT1                  0x0800
00323 #define SERIAL_EV_EVENT2                  0x1000
00324 
00325 /* IOCTL_SERIAL_LSRMST_INSERT constants */
00326 #define SERIAL_LSRMST_LSR_DATA            0x01
00327 #define SERIAL_LSRMST_LSR_NODATA          0x02
00328 #define SERIAL_LSRMST_MST                 0x03
00329 #define SERIAL_LSRMST_ESCAPE              0x00
00330 
00331 /* IOCTL_SERIAL_PURGE constants */
00332 #define SERIAL_PURGE_TXABORT              0x00000001
00333 #define SERIAL_PURGE_RXABORT              0x00000002
00334 #define SERIAL_PURGE_TXCLEAR              0x00000004
00335 #define SERIAL_PURGE_RXCLEAR              0x00000008
00336 
00337 /* IOCTL_SERIAL_SET_FIFO_CONTROL constants */
00338 #define SERIAL_IOC_FCR_FIFO_ENABLE        0x00000001
00339 #define SERIAL_IOC_FCR_RCVR_RESET         0x00000002
00340 #define SERIAL_IOC_FCR_XMIT_RESET         0x00000004
00341 #define SERIAL_IOC_FCR_DMA_MODE           0x00000008
00342 #define SERIAL_IOC_FCR_RES1               0x00000010
00343 #define SERIAL_IOC_FCR_RES2               0x00000020
00344 #define SERIAL_IOC_FCR_RCVR_TRIGGER_LSB   0x00000040
00345 #define SERIAL_IOC_FCR_RCVR_TRIGGER_MSB   0x00000080
00346 
00347 typedef struct _SERIAL_QUEUE_SIZE {
00348   ULONG  InSize;
00349   ULONG  OutSize;
00350 } SERIAL_QUEUE_SIZE, *PSERIAL_QUEUE_SIZE;
00351 
00352 typedef struct _SERIAL_XOFF_COUNTER {
00353     ULONG  Timeout;
00354     LONG  Counter;
00355     UCHAR  XoffChar;
00356 } SERIAL_XOFF_COUNTER, *PSERIAL_XOFF_COUNTER;
00357 
00358 typedef struct _SERIAL_BASIC_SETTINGS {
00359     SERIAL_TIMEOUTS  Timeouts;
00360     SERIAL_HANDFLOW  HandFlow;
00361     ULONG  RxFifo;
00362     ULONG  TxFifo;
00363 } SERIAL_BASIC_SETTINGS, *PSERIAL_BASIC_SETTINGS;
00364 
00365 typedef struct _SERENUM_PORT_DESC {
00366     ULONG  Size;
00367     PVOID  PortHandle;
00368     PHYSICAL_ADDRESS  PortAddress;
00369     USHORT  Reserved[1];
00370 } SERENUM_PORT_DESC, *PSERENUM_PORT_DESC;
00371 
00372 typedef UCHAR
00373 (NTAPI*PSERENUM_READPORT)(
00374   PVOID  SerPortAddress);
00375 
00376 typedef VOID
00377 (NTAPI*PSERENUM_WRITEPORT)(
00378   PVOID  SerPortAddress,
00379   UCHAR  Value);
00380 
00381 typedef enum _SERENUM_PORTION {
00382   SerenumFirstHalf,
00383   SerenumSecondHalf,
00384   SerenumWhole
00385 } SERENUM_PORTION;
00386 
00387 typedef struct _SERENUM_PORT_PARAMETERS {
00388   ULONG  Size;
00389   PSERENUM_READPORT  ReadAccessor;
00390   PSERENUM_WRITEPORT  WriteAccessor;
00391   PVOID  SerPortAddress;
00392   PVOID  HardwareHandle;
00393   SERENUM_PORTION  Portion;
00394   USHORT  NumberAxis;
00395   USHORT  Reserved[3];
00396 } SERENUM_PORT_PARAMETERS, *PSERENUM_PORT_PARAMETERS;
00397 
00398 #define SERIAL_ERROR_BREAK                0x00000001
00399 #define SERIAL_ERROR_FRAMING              0x00000002
00400 #define SERIAL_ERROR_OVERRUN              0x00000004
00401 #define SERIAL_ERROR_QUEUEOVERRUN         0x00000008
00402 #define SERIAL_ERROR_PARITY               0x00000010
00403 
00404 #define SERIAL_SP_UNSPECIFIED             0x00000000
00405 #define SERIAL_SP_RS232                   0x00000001
00406 #define SERIAL_SP_PARALLEL                0x00000002
00407 #define SERIAL_SP_RS422                   0x00000003
00408 #define SERIAL_SP_RS423                   0x00000004
00409 #define SERIAL_SP_RS449                   0x00000005
00410 #define SERIAL_SP_MODEM                   0X00000006
00411 #define SERIAL_SP_FAX                     0x00000021
00412 #define SERIAL_SP_SCANNER                 0x00000022
00413 #define SERIAL_SP_BRIDGE                  0x00000100
00414 #define SERIAL_SP_LAT                     0x00000101
00415 #define SERIAL_SP_TELNET                  0x00000102
00416 #define SERIAL_SP_X25                     0x00000103
00417 #define SERIAL_SP_SERIALCOMM              0x00000001
00418 
00419 #define SERIAL_TX_WAITING_FOR_CTS         0x00000001
00420 #define SERIAL_TX_WAITING_FOR_DSR         0x00000002
00421 #define SERIAL_TX_WAITING_FOR_DCD         0x00000004
00422 #define SERIAL_TX_WAITING_FOR_XON         0x00000008
00423 #define SERIAL_TX_WAITING_XOFF_SENT       0x00000010
00424 #define SERIAL_TX_WAITING_ON_BREAK        0x00000020
00425 #define SERIAL_RX_WAITING_FOR_DSR         0x00000040
00426 
00427 #define SERIAL_DTR_STATE                  0x00000001
00428 #define SERIAL_RTS_STATE                  0x00000002
00429 #define SERIAL_CTS_STATE                  0x00000010
00430 #define SERIAL_DSR_STATE                  0x00000020
00431 #define SERIAL_RI_STATE                   0x00000040
00432 #define SERIAL_DCD_STATE                  0x00000080
00433 
00434 typedef struct _SERIALCONFIG {
00435   ULONG  Size;
00436   USHORT  Version;
00437   ULONG  SubType;
00438   ULONG  ProvOffset;
00439   ULONG  ProviderSize;
00440   WCHAR  ProviderData[1];
00441 } SERIALCONFIG,*PSERIALCONFIG;
00442 
00443 #ifdef __cplusplus
00444 }
00445 #endif
00446 
00447 #endif /* _NTDDSER_ */

Generated on Sat May 26 2012 04:30:52 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.