From 13e10c5de9d256f8da159b2a5981a732076c2b8c Mon Sep 17 00:00:00 2001 From: Emmanuel Ledoux Date: Mon, 26 May 2014 16:31:56 +0200 Subject: [PATCH] winpr-comm: identified the ioctl 0x00220034 as IOCTL_USBPRINT_GET_1284_ID (support not yet implemented) --- winpr/include/winpr/comm.h | 7 ++++++- winpr/libwinpr/comm/comm.c | 2 +- winpr/libwinpr/comm/comm.h | 2 +- winpr/libwinpr/comm/comm_ioctl.c | 13 +++++-------- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/winpr/include/winpr/comm.h b/winpr/include/winpr/comm.h index fe9313f10..290f7367d 100644 --- a/winpr/include/winpr/comm.h +++ b/winpr/include/winpr/comm.h @@ -461,6 +461,9 @@ WINPR_API HANDLE CommCreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD /* IOCTL_PAR_QUERY_RAW_DEVICE_ID 0x00160030 */ /* IOCTL_PAR_IS_PORT_FREE 0x00160054 */ +/* http://msdn.microsoft.com/en-us/library/windows/hardware/ff551803(v=vs.85).aspx */ +#define IOCTL_USBPRINT_GET_1284_ID 0x220034 + typedef struct __SERIAL_IOCTL_NAME { @@ -503,7 +506,7 @@ static const _SERIAL_IOCTL_NAME _SERIAL_IOCTL_NAMES[] = // {IOCTL_SERIAL_LSRMST_INSERT, "IOCTL_SERIAL_LSRMST_INSERT"}, // {IOCTL_SERIAL_CONFIG_SIZE, "IOCTL_SERIAL_CONFIG_SIZE"}, // {IOCTL_SERIAL_GET_STATS, "IOCTL_SERIAL_GET_STATS"}, - // {IOCTL_SERIAL_CLEAR_STATS, "IOCTL_SERIAL_CLEAR_STATS"}; + // {IOCTL_SERIAL_CLEAR_STATS, "IOCTL_SERIAL_CLEAR_STATS"}, // {IOCTL_SERIAL_GET_MODEM_CONTROL,"IOCTL_SERIAL_GET_MODEM_CONTROL"}, // {IOCTL_SERIAL_SET_MODEM_CONTROL,"IOCTL_SERIAL_SET_MODEM_CONTROL"}, // {IOCTL_SERIAL_SET_FIFO_CONTROL, "IOCTL_SERIAL_SET_FIFO_CONTROL"}, @@ -521,6 +524,8 @@ static const _SERIAL_IOCTL_NAME _SERIAL_IOCTL_NAMES[] = // {IOCTL_PAR_QUERY_RAW_DEVICE_ID, "IOCTL_PAR_QUERY_RAW_DEVICE_ID"}, // {IOCTL_PAR_IS_PORT_FREE, "IOCTL_PAR_IS_PORT_FREE"}, + {IOCTL_USBPRINT_GET_1284_ID, "IOCTL_USBPRINT_GET_1284_ID"}, + {0, NULL} }; diff --git a/winpr/libwinpr/comm/comm.c b/winpr/libwinpr/comm/comm.c index 5d34fb3d1..a32f4cd7a 100644 --- a/winpr/libwinpr/comm/comm.c +++ b/winpr/libwinpr/comm/comm.c @@ -5,7 +5,7 @@ * Copyright 2011 O.S. Systems Software Ltda. * Copyright 2011 Eduardo Fiss Beloni * Copyright 2014 Marc-Andre Moreau - * Copyright 2014 Hewlett-Packard Development Company, L.P. + * Copyright 2014 Hewlett-Packard Development Company, L.P. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/winpr/libwinpr/comm/comm.h b/winpr/libwinpr/comm/comm.h index e9bc1678a..cbd4b15f0 100644 --- a/winpr/libwinpr/comm/comm.h +++ b/winpr/libwinpr/comm/comm.h @@ -3,7 +3,7 @@ * Serial Communication API * * Copyright 2014 Marc-Andre Moreau - * Copyright 2014 Hewlett-Packard Development Company, L.P. + * Copyright 2014 Hewlett-Packard Development Company, L.P. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/winpr/libwinpr/comm/comm_ioctl.c b/winpr/libwinpr/comm/comm_ioctl.c index e6d52cf9c..b9cddefa3 100644 --- a/winpr/libwinpr/comm/comm_ioctl.c +++ b/winpr/libwinpr/comm/comm_ioctl.c @@ -138,16 +138,13 @@ static BOOL _CommDeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID l switch (dwIoControlCode) { - case 0x220034: - DEBUG_WARN("Undocumented IoControlCode: 0X%X", dwIoControlCode); + case IOCTL_USBPRINT_GET_1284_ID: + { + /* FIXME: http://msdn.microsoft.com/en-us/library/windows/hardware/ff551803(v=vs.85).aspx */ *lpBytesReturned = nOutBufferSize; /* an empty OutputBuffer will be returned */ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - if (pComm->permissive) - return FALSE; - else - return TRUE; - - break; + return FALSE; + } case IOCTL_SERIAL_SET_BAUD_RATE: { if (pRemoteSerialDriver->set_baud_rate)