24 #undef SERIAL_LSRMST_ESCAPE 25 #undef SERIAL_LSRMST_LSR_DATA 26 #undef SERIAL_LSRMST_LSR_NODATA 27 #undef SERIAL_LSRMST_MST 28 #undef SERIAL_IOC_FCR_FIFO_ENABLE 29 #undef SERIAL_IOC_FCR_RCVR_RESET 30 #undef SERIAL_IOC_FCR_XMIT_RESET 31 #undef SERIAL_IOC_FCR_DMA_MODE 32 #undef SERIAL_IOC_FCR_RES1 33 #undef SERIAL_IOC_FCR_RES2 34 #undef SERIAL_IOC_FCR_RCVR_TRIGGER_LSB 35 #undef SERIAL_IOC_FCR_RCVR_TRIGGER_MSB 36 #undef SERIAL_IOC_MCR_DTR 37 #undef SERIAL_IOC_MCR_RTS 38 #undef SERIAL_IOC_MCR_OUT1 39 #undef SERIAL_IOC_MCR_OUT2 40 #undef SERIAL_IOC_MCR_LOOP 41 #undef IOCTL_SERIAL_LSRMST_INSERT 56 static const WCHAR comW[] = {
'C',
'O',
'M',0};
66 if(*ptr < '1' || *ptr >
'9')
73 if(*
ptr !=
':' && *
ptr !=
' ')
93 if(*ptr < '0' || *ptr >
'9')
return NULL;
148 static const WCHAR stopbits15W[] = {
'1',
'.',
'5',0};
173 static const WCHAR onW[] = {
'o',
'n',0};
174 static const WCHAR offW[] = {
'o',
'f',
'f',0};
301 static const WCHAR baudW[] = {
'b',
'a',
'u',
'd',
'=',0};
302 static const WCHAR parityW[] = {
'p',
'a',
'r',
'i',
't',
'y',
'=',0};
303 static const WCHAR dataW[] = {
'd',
'a',
't',
'a',
'=',0};
304 static const WCHAR stopW[] = {
's',
't',
'o',
'p',
'=',0};
305 static const WCHAR toW[] = {
't',
'o',
'=',0};
306 static const WCHAR xonW[] = {
'x',
'o',
'n',
'=',0};
307 static const WCHAR odsrW[] = {
'o',
'd',
's',
'r',
'=',0};
308 static const WCHAR octsW[] = {
'o',
'c',
't',
's',
'=',0};
309 static const WCHAR dtrW[] = {
'd',
't',
'r',
'=',0};
310 static const WCHAR rtsW[] = {
'r',
't',
's',
'=',0};
311 static const WCHAR idsrW[] = {
'i',
'd',
's',
'r',
'=',0};
497 if(lptimeouts)
timeouts = *lptimeouts;
511 if(lptimeouts) *lptimeouts =
timeouts;
559 DWORD dwBytesReturned;
582 DWORD dwBytesReturned;
605 DWORD dwBytesReturned;
619 ERR(
"Unknown function code (%u)\n",
func);
643 DWORD dwBytesReturned;
666 DWORD dwBytesReturned;
669 &
ss,
sizeof(
ss), &dwBytesReturned,
NULL))
684 memset(lpStat, 0,
sizeof(*lpStat));
721 DWORD dwBytesReturned;
726 &sqs,
sizeof(sqs),
NULL, 0, &dwBytesReturned,
NULL);
746 DWORD dwBytesReturned;
749 NULL, 0, evtmask,
sizeof(*evtmask), &dwBytesReturned,
NULL);
770 DWORD dwBytesReturned;
773 &evtmask,
sizeof(evtmask),
NULL, 0, &dwBytesReturned,
NULL);
778 TRACE(
"bytesize=%d baudrate=%d fParity=%d Parity=%d stopbits=%d\n",
779 lpdcb->ByteSize, lpdcb->BaudRate, lpdcb->fParity, lpdcb->Parity,
782 TRACE(
"%sIXON %sIXOFF\n", (lpdcb->fOutX) ?
"" :
"~", (lpdcb->fInX) ?
"" :
"~");
783 TRACE(
"fOutxCtsFlow=%d fRtsControl=%d\n", lpdcb->fOutxCtsFlow, lpdcb->fRtsControl);
784 TRACE(
"fOutxDsrFlow=%d fDtrControl=%d\n", lpdcb->fOutxDsrFlow, lpdcb->fDtrControl);
813 DWORD dwBytesReturned;
875 &sbr,
sizeof(sbr),
NULL, 0, &dwBytesReturned,
NULL) &&
877 &slc,
sizeof(slc),
NULL, 0, &dwBytesReturned,
NULL) &&
879 &shf,
sizeof(shf),
NULL, 0, &dwBytesReturned,
NULL) &&
881 &sc,
sizeof(sc),
NULL, 0, &dwBytesReturned,
NULL));
908 DWORD dwBytesReturned;
919 NULL, 0, &sbr,
sizeof(sbr), &dwBytesReturned,
NULL) ||
921 NULL, 0, &slc,
sizeof(slc), &dwBytesReturned,
NULL) ||
923 NULL, 0, &shf,
sizeof(shf), &dwBytesReturned,
NULL) ||
925 NULL, 0, &sc,
sizeof(sc), &dwBytesReturned,
NULL))
928 memset(lpdcb, 0,
sizeof(*lpdcb));
998 DWORD dwBytesReturned;
1000 &chTransmit,
sizeof(chTransmit),
NULL, 0, &dwBytesReturned,
NULL);
1021 DWORD dwBytesReturned;
1023 TRACE(
"(%p, %p)\n", hComm, lptimeouts);
1030 NULL, 0, &st,
sizeof(st), &dwBytesReturned,
NULL))
1063 DWORD dwBytesReturned;
1065 TRACE(
"(%p, %p)\n", hComm, lptimeouts);
1067 if (lptimeouts ==
NULL)
1079 &st,
sizeof(st),
NULL, 0, &dwBytesReturned,
NULL);
1099 DWORD dwBytesReturned;
1101 NULL, 0, lpModemStat,
sizeof(
DWORD), &dwBytesReturned,
NULL);
1192 's',
'e',
'r',
'i',
'a',
'l',
'u',
'i',
'.',
'd',
'l',
'l',0 };
1251 if (hConfigModule) {
1252 pCommConfigDialog = (
void *)
GetProcAddress(hConfigModule,
"drvCommConfigDialogW");
1253 if (pCommConfigDialog) {
1254 res = pCommConfigDialog(lpszDevice,
hWnd, lpCommConfig);
1287 if(lpCommConfig ==
NULL)
1350 lpfnSetDefaultCommConfig = (
void *)
GetProcAddress(hConfigModule,
"drvSetDefaultCommConfigW");
1351 if (lpfnSetDefaultCommConfig)
1352 r = lpfnSetDefaultCommConfig(lpszDevice, lpCommConfig,
dwSize);
1412 if (hConfigModule) {
1413 pGetDefaultCommConfig = (
void *)
GetProcAddress(hConfigModule,
"drvGetDefaultCommConfigW");
1414 if (pGetDefaultCommConfig) {
BOOL WINAPI SetupComm(HANDLE handle, DWORD insize, DWORD outsize)
#define ERROR_INVALID_PARAMETER
static LPCWSTR COMM_ParseByteSize(LPCWSTR ptr, LPBYTE lpbytesize)
struct _COMM_CONFIG COMMCONFIG
_Out_writes_bytes_opt_ lpdwSize LPCOMMCONFIG lpCC
static LPCWSTR COMM_ParseNumber(LPCWSTR ptr, LPDWORD lpnumber)
struct _COMM_CONFIG * LPCOMMCONFIG
#define SERIAL_ERROR_PARITY
BOOL WINAPI SetCommMask(HANDLE handle, DWORD evtmask)
#define SERIAL_TX_WAITING_FOR_DSR
BOOL WINAPI SetDefaultCommConfigW(LPCWSTR lpszDevice, LPCOMMCONFIG lpCommConfig, DWORD dwSize)
BOOL WINAPI SetCommState(HANDLE handle, LPDCB lpdcb)
#define RTS_CONTROL_ENABLE
#define IOCTL_SERIAL_RESET_DEVICE
BOOL WINAPI SetCommTimeouts(HANDLE hComm, LPCOMMTIMEOUTS lptimeouts)
#define IOCTL_SERIAL_SET_BAUD_RATE
ULONG WriteTotalTimeoutConstant
#define SERIAL_XOFF_CONTINUE
GLdouble GLdouble GLdouble r
#define DTR_CONTROL_DISABLE
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
#define RTS_CONTROL_HANDSHAKE
ULONG ReadTotalTimeoutConstant
BOOL WINAPI ClearCommError(HANDLE handle, LPDWORD errors, LPCOMSTAT lpStat)
BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR devid, LPDCB lpdcb, LPCOMMTIMEOUTS lptimeouts)
static const WCHAR lpszSerialUI[]
#define IOCTL_SERIAL_CLR_RTS
#define SERIAL_TX_WAITING_FOR_CTS
#define strncmpiW(s1, s2, n)
#define RTS_CONTROL_DISABLE
static const WCHAR deviceW[]
#define SERIAL_TX_WAITING_FOR_DCD
DWORD WriteTotalTimeoutMultiplier
WINE_UNICODE_INLINE int strncmpW(const WCHAR *str1, const WCHAR *str2, int n)
#define IOCTL_SERIAL_SET_LINE_CONTROL
#define SERIAL_DSR_SENSITIVITY
BOOL WINAPI GetCommConfig(HANDLE hFile, LPCOMMCONFIG lpCommConfig, LPDWORD lpdwSize)
static LPCWSTR COMM_ParseParity(LPCWSTR ptr, LPBYTE lpparity)
#define IOCTL_SERIAL_SET_DTR
static LPCWSTR COMM_ParseStopBits(LPCWSTR ptr, LPBYTE lpstopbits)
#define IOCTL_SERIAL_SET_WAIT_MASK
#define IOCTL_SERIAL_GET_LINE_CONTROL
#define SERIAL_ERROR_OVERRUN
#define IOCTL_SERIAL_GET_MODEMSTATUS
#define IOCTL_SERIAL_PURGE
#define DTR_CONTROL_ENABLE
#define SERIAL_TX_WAITING_FOR_XON
#define IOCTL_SERIAL_SET_BREAK_ON
#define SERIAL_DSR_HANDSHAKE
#define SERIAL_NULL_STRIPPING
BOOL WINAPI GetCommMask(HANDLE handle, LPDWORD evtmask)
BOOL WINAPI CommConfigDialogA(LPCSTR lpszDevice, HWND hWnd, LPCOMMCONFIG lpCommConfig)
ULONG ReadTotalTimeoutMultiplier
#define SERIAL_ERROR_CHAR
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
BOOL WINAPI GetCommState(HANDLE handle, LPDCB lpdcb)
BOOL WINAPI GetCommTimeouts(HANDLE hComm, LPCOMMTIMEOUTS lptimeouts)
BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR device, LPDCB lpdcb, LPCOMMTIMEOUTS lptimeouts)
#define IOCTL_SERIAL_SET_XOFF
static LPCWSTR COMM_ParseStart(LPCWSTR ptr)
static BOOL COMM_BuildNewCommDCB(LPCWSTR device, LPDCB lpdcb, LPCOMMTIMEOUTS lptimeouts)
#define SERIAL_ERROR_BREAK
WINE_UNICODE_INLINE WCHAR toupperW(WCHAR ch)
BOOL WINAPI SetCommBreak(HANDLE handle)
#define SERIAL_DTR_CONTROL
ULONG WriteTotalTimeoutMultiplier
#define SERIAL_DTR_HANDSHAKE
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
BOOL WINAPI GetCommProperties(HANDLE hFile, LPCOMMPROP lpCommProp)
unsigned char size_t * outsize
BOOL WINAPI GetDefaultCommConfigW(LPCWSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize)
#define SERIAL_ERROR_QUEUEOVERRUN
static const WCHAR stopW[]
#define IOCTL_SERIAL_GET_WAIT_MASK
ULONG ReadIntervalTimeout
#define PCF_TOTALTIMEOUTS
static void dump_dcb(const DCB *lpdcb)
const unsigned char size_t insize
DWORD ReadTotalTimeoutConstant
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define SERIAL_RTS_HANDSHAKE
static LPCWSTR COMM_ParseOnOff(LPCWSTR ptr, LPDWORD lponoff)
DWORD ReadIntervalTimeout
BOOL WINAPI GetCommModemStatus(HANDLE hFile, LPDWORD lpModemStat)
#define SERIAL_RTS_CONTROL
#define IOCTL_SERIAL_SET_XON
BOOL WINAPI ClearCommBreak(HANDLE handle)
#define IOCTL_SERIAL_GET_CHARS
#define IOCTL_SERIAL_GET_TIMEOUTS
static BOOL COMM_BuildOldCommDCB(LPCWSTR device, LPDCB lpdcb)
#define SERIAL_ERROR_ABORT
static DWORD LPSTR PDWORD lpdwSize
#define IOCTL_SERIAL_SET_CHARS
#define IOCTL_SERIAL_IMMEDIATE_CHAR
BOOL WINAPI EscapeCommFunction(HANDLE handle, DWORD func)
#define SERIAL_ERROR_FRAMING
BOOL WINAPI BuildCommDCBW(LPCWSTR devid, LPDCB lpdcb)
LARGE_INTEGER * PPHYSICAL_ADDRESS
#define IOCTL_SERIAL_GET_HANDFLOW
#define IOCTL_SERIAL_CLR_DTR
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED lpOverlapped
#define RTS_CONTROL_TOGGLE
#define DTR_CONTROL_HANDSHAKE
BOOL WINAPI GetDefaultCommConfigA(LPCSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize)
#define IOCTL_SERIAL_SET_HANDFLOW
#define IOCTL_SERIAL_GET_COMMSTATUS
BOOL WINAPI BuildCommDCBA(LPCSTR device, LPDCB lpdcb)
#define SERIAL_AUTO_TRANSMIT
#define MultiByteToWideChar
BOOL WINAPI TransmitCommChar(HANDLE hComm, CHAR chTransmit)
#define IOCTL_SERIAL_WAIT_ON_MASK
#define IOCTL_SERIAL_SET_QUEUE_SIZE
#define SERIAL_CTS_HANDSHAKE
#define GetProcAddress(x, y)
BOOL WINAPI CommConfigDialogW(LPCWSTR lpszDevice, HWND hWnd, LPCOMMCONFIG lpCommConfig)
#define IOCTL_SERIAL_SET_RTS
BOOL WINAPI WaitCommEvent(HANDLE hFile, LPDWORD lpdwEvents, LPOVERLAPPED lpOverlapped)
#define IOCTL_SERIAL_SET_BREAK_OFF
#define strtoulW(s1, s2, b)
struct timeout * timeouts
DWORD ReadTotalTimeoutMultiplier
DWORD WriteTotalTimeoutConstant
#define SERIAL_TX_WAITING_XOFF_SENT
#define SERIAL_AUTO_RECEIVE
BOOL WINAPI PurgeComm(HANDLE handle, DWORD flags)
#define HeapFree(x, y, z)
#define IOCTL_SERIAL_GET_BAUD_RATE
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define IOCTL_SERIAL_SET_TIMEOUTS
BOOL WINAPI SetDefaultCommConfigA(LPCSTR lpszDevice, LPCOMMCONFIG lpCommConfig, DWORD dwSize)
LARGE_INTEGER PHYSICAL_ADDRESS
BOOL WINAPI SetCommConfig(HANDLE hFile, LPCOMMCONFIG lpCommConfig, DWORD dwSize)