Windows串口编程
+ -

Windows串口编程的IOCTL和函数

2023-06-15 158 0

下面是常见的IOCTL及对应的Win32 API函数列表,包括COM端口和USB设备的操作。

IOCTRL的宏定义位于文件:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\ntddser.h

IOCTL值 Win32 API函数
IOCTL_SERIAL_GET_DTRRTS GetCommModemStatus
IOCTL_SERIAL_SET_DTR EscapeCommFunction
IOCTL_SERIAL_CLR_DTR EscapeCommFunction
IOCTL_SERIAL_SET_RTS EscapeCommFunction
IOCTL_SERIAL_CLR_RTS EscapeCommFunction
IOCTL_SERIAL_GET_CONFIG GetCommConfig
IOCTL_SERIAL_SET_CONFIG SetCommConfig
IOCTL_SERIAL_SET_BREAK_ON EscapeCommFunction
IOCTL_SERIAL_SET_BREAK_OFF EscapeCommFunction
IOCTL_SERIAL_SET_WAIT_MASK SetCommMask
IOCTL_SERIAL_WAIT_ON_MASK WaitCommEvent
IOCTL_SERIAL_SET_CHAR SetCommState
IOCTL_SERIAL_GET_CHAR GetCommState
IOCTL_SERIAL_SET_TIMEOUTS SetCommTimeouts
IOCTL_SERIAL_GET_TIMEOUTS GetCommTimeouts
IOCTL_SERIAL_GET_PROPERTIES GetCommProperties
IOCTL_SERIAL_GET_MODEMSTATUS GetCommModemStatus
IOCTL_SERIAL_GET_COMMSTATUS GetCommError
IOCTL_SERIAL_XOFF_COUNTER ClearCommError
IOCTL_SERIAL_LSRMST_INSERT DeviceIoControl
IOCTL_SERIAL_LSRMST_ESCAPE EscapeCommFunction
IOCTL_SERIAL_GET_STATS DeviceIoControl
IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION DeviceIoControl
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION DeviceIoControl
IOCTL_USB_GET_NODE_CONNECTION_NAME DeviceIoControl
IOCTL_USB_GET_NODE_INFORMATION DeviceIoControl
IOCTL_USB_GET_DEVICE_DESCRIPTOR DeviceIoControl
IOCTL_USB_GET_DESCRIPTOR_FROM_DEVICE DeviceIoControl
IOCTL_USB_GET_DESCRIPTOR_REQUEST DeviceIoControl
IOCTL_USB_GET_STATUS_REQUEST DeviceIoControl
IOCTL_USB_CYCLE_PORT DeviceIoControl
IOCTL_USB_GET_HUB_CAPABILITIES_EX DeviceIoControl
IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME DeviceIoControl
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX DeviceIoControl
IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES DeviceIoControl
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 DeviceIoControl
IOCTL_USB_GET_POWER_STATE_MAP DeviceIoControl
IOCTL_USB_GET_HUB_CAPABILITIES_EX2 DeviceIoControl

注意:由于DeviceIoControl函数是通用的设备通信函数,例如对于USB设备,您需要设置不同的IOCTL值来获得有关设备的信息。

0 篇笔记 写笔记

使用IOCTL_DISK_GET_LENGTH_INFO获取硬盘大小
使用IOCTL_DISK_GET_LENGTH_INFO获取硬盘大小char buff[512]; sprintf(buff,"\.\PhysicalDrive%d",nId); HANDLE hDevice = CreateFile(buff,GENE......
使用IOCTL_SCSI_PASS_THROUGH_DIRECT获取硬盘的名称
Windows下的物理磁盘名称被命名为PhysicalDrive0~N可以通过IOCTL_SCSI_PASS_THROUGH_DIRECT获取该磁盘的名称BOOL CDisk::GetDiskNameById(int nId, TCHAR* pName){ TCHAR buff[512]......
使用IOCTL_DISK_GET_DRIVE_GEOMETRY获取硬盘的布局
typedef struct _DISK_GEOMETRY { LARGE_INTEGER Cylinders; MEDIA_TYPE MediaType; ULONG TracksPerCylinder; ULONG SectorsPerTra......
擦除磁盘
擦除磁盘BOOL CKDiskInitDlg::EraseDisk(){ CComboBox* pList =(CComboBox*)GetDlgItem(IDC_COMBO_DISK_LIST); int nId = pList->GetCurSel(); cha......
WDDM IOCTL请求
WDDM也支持IOCTL请求,只是现在的作用大幅度下降了 InitialData.DxgkDdiDispatchIoRequest = BddDdiDispatchIoRequest;函数原型为:NTSTATUS DxgkddiDispatchIoRequest(......
Windows IOCTL代码大全
Windows IOCTL Reference 大全 :http://www.pnpon.com/import/ioctl.html备用网址:http://www.ioctls.net/......
判断磁盘是否可擦除
int nId = pList->GetCurSel(); char buff[1024]; sprintf(buff,"\.\PhysicalDrive%d",nId); HANDLE h = CreateFile(buff,GENERIC......
寒江独钓串口过滤驱动程序源代码
comcap_tst.c////// @file comcap_tst.c/// @author crazy_chu/// @date 2008-6-20/// #ifndef _COMCAP_TST_HEADER_#define _COMCAP_......
串口过滤驱动调试过程蓝屏NO_MORE_IRP_STACK_LOCATIONS(35)问题分析
最近在搞一个串口的过滤驱动程序,在调度过程中报了一个蓝屏问题。NO_MORE_IRP_STACK_LOCATIONS (35)A higher level driver has attempted to call a lower level driver throughthe IoCallDr......
Windows串口编程的IOCTL和函数
下面是常见的IOCTL及对应的Win32 API函数列表,包括COM端口和USB设备的操作。IOCTRL的宏定义位于文件:C:Program Files (x86)Windows Kits10Include10.0.18362.0shared tddser.h中IOCTL......
同步方式串口收发数据
以下是一个简单的win32串口通信程序,该程序使用了Windows API中的CreateFile、SetCommTimeouts、SetCommState、WriteFile和ReadFile等函数来进行串口通信。#include #include
以下是一个简单的win32串口异步通信程序,该程序使用了Windows API中的CreateIoCompletionPort、CreateFile、SetCommTimeouts、SetCommState、WriteFile和ReadFileEx等函数来进行串口通信。相较于同步通信,异步通信更加灵......
以下是一个使用WaitCommEvent函数的简单的win32串口通信程序,该程序使用了Windows API中的CreateFile、SetCommTimeouts、SetCommState、.WriteFile和ReadFile等函数来进行串口通信。#include
在Windows系统中,IOCTL_SERIAL_PURGE 是指清空串口设备的读写缓冲区的 IOCTL 码。使用该 IOCTL 命令可以清空串口设备的读写缓冲区并丢弃其中的所有数据。该 IOCTL 命令可以用于以下情况:丢弃全部的写缓冲数据,以确保不会发送任何未完成的数据。丢弃全部的读缓冲数......
在 Windows 操作系统下,IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE 是指撤销等待唤醒(Wait-Wake)操作的内部标识(ioctl command code)。Wait-Wake 操作是指,在计算机系统待机时,通过唤醒设备的方式,让设备执行某些操作。当设......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!