使用WriteFile() GetLastError()的返回值是5,如何提升权限?谢谢

a3622041 a3622041 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我自己写了1个OCX 然后再写了JS调用这个OCX来打开串口,但是发送数据需要使用WriteFile函数。结果数据发不出来,调试发现GetLastError返回值是5,拒绝访问,都说是权限不够。如何解决,再VC VB中使用这两个却没有问题。 来高人!!
ComHandle=CreateFile(Port,
GENERIC_READ||GENERIC_WRITE,
0,NULL,OPEN_EXISTING,NULL,NULL);
if(ComHandle==INVALID_HANDLE_VALUE){MessageBox("1"); return 0;}
char tmpP[11]="9600,n,8,1";//设置通讯参数
DCB dcb;
if(GetCommState(ComHandle,&dcb)==0){MessageBox("2");return -1;}
if(BuildCommDCB(tmpP,&dcb)==0){MessageBox("3");return -1;}
if(SetCommState(ComHandle,&dcb)==0){MessageBox("4");return -1;}
COMMTIMEOUTS TimeOuts;//设置超时时间
GetCommTimeouts(ComHandle,&TimeOuts);
TimeOuts.ReadIntervalTimeout=2000;
TimeOuts.ReadTotalTimeoutConstant=400;
TimeOuts.ReadTotalTimeoutMultiplier=400;
TimeOuts.WriteTotalTimeoutMultiplier=40;
TimeOuts.WriteTotalTimeoutConstant=400;
if(SetCommTimeouts(ComHandle,&TimeOuts)==0){MessageBox("6");return -2;}
if(SetupComm(ComHandle,2048,1024)==0){MessageBox("7");return -3;}//设置缓冲区
//PurgeComm(ComHandle,PURGE_RXABORT||PURGE_RXCLEAR);
//PurgeComm(ComHandle,PURGE_TXABORT||PURGE_TXCLEAR);
if(ComHandle<0){MessageBox("111");return 111;}
BYTE m_SendBuffer[1];
DWORD m_Number;
m_SendBuffer[0]=0x06;
if(WriteFile(ComHandle, m_SendBuffer, 1 , &m_Number,NULL)==0)
{
DWORD ErrorCode;
ErrorCode=GetLastError();
char temp[5];
sprintf(temp,"%d",ErrorCode);
MessageBox(temp);
MessageBox("here!");
return -5;
}
CloseHandle(ComHandle);
// Write();
MessageBox(Port);
return 0;
...全文

相关推荐

如何使用系统API函数

如何使用系统API函数实例源码

胡万山

Windows远程线程注入实战:七步原理、Debug陷阱与杀软绕过

远程线程注入是Windows进程内存操作的核心技术,本质是在目标进程地址空间动态分配可执行内存并启动代码,涉及权限提升、跨进程内存管理、API地址解析与NX保护绕过等底层机制。其技术价值在于实现无文件落地的静默控制,广泛应用于系统调试、软件热更新和安全研究场景。实践中,Debug模式下的ILT跳转表、/RTC栈检查、0xCC填充等编译器行为极易导致远程崩溃;而杀软检测主要基于ETW行为日志(如CreateRemoteThread+VirtualAllocEx+WriteProcessMemory序列),非文

a6t2007

Windows本地提权:内核驱动漏洞与命名管道攻击链剖析

本地提权是操作系统安全领域的核心议题,指攻击者在已获得普通用户权限后,通过利用系统漏洞或设计缺陷,将权限提升至系统最高级别。其原理通常涉及绕过内核与用户态之间的安全边界,利用驱动漏洞或进程间通信机制中的逻辑缺陷。从技术价值看,理解本地提权有助于深入掌握操作系统的安全模型、内存管理和权限隔离机制。在实际应用场景中,此类技术常被用于渗透测试、漏洞研究及红蓝对抗演练,以评估系统在面对高级威胁时的韧性。本文聚焦于Windows环境下,结合内核驱动漏洞与命名管道构建的经典攻击链,详细解析如何通过驱动漏洞和命名管道实现

weixin_30781775

串口通信功能的实现小结

利用VC++实现串口通信的方法有多种,我们采取直接调用Window API中的一系列标准的串口通信函数,直接用这些标准函数来完成Windows下面的串口通信编程[11]。利用WindowsAPI函数控制利用API 函数实现对RS232串口通信的访问,在实现控制通信中,我们必定要调动3个函数来实现对串口的控制: CreatFile&#40;&#41;函数实现串口初始化并打开串口;

weixin_38591223

如何使用VC实现串口通信

详细介绍了怎么用VC做串口通信,并附有详细代码。

rackey001
评论 8
收藏 已收藏
分享
返回顶部
a3622041
ATL 3,248 成员 48,530 内容