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